问题标签 [moltenvk]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
macos - 我的 mac 报告了 4 个 Vulkan 队列系列,但参考资料说它有 1 个
我的家用电脑是 2012 年末的 Mac Mini,它配备了第三代英特尔 IvyBridge 处理器(出于某种原因只有 Apple 知道的移动型号)。
LunarG SDK 中的“vulkaninfo.app”报告了集成 GPU 上的 4 个队列族,但公开信息显示它应该只有 1 个。发生了什么?
macos - Vulkan macOS 实例无法加载
我正在按照vulkan 教程在 macOS 上创建一个实例。我略有分歧,因为我使用的是 Clion 和 CMake,而不是 XCode。当我尝试运行程序时,我无法创建 Vulkan 实例并且进程退出并出现错误。
我已经检查过,我的 GLFW 库(3.3,安装了自制--HEAD
标志)支持 Vulkan。
我的代码:
我的 CMakeLists.txt 文件:
在我的 CLion 设置中,我定义了以下环境变量:
DYLD_LIBRARY_PATH
VK_LAYER_PATH
VK_ICD_FILENAMES
VULKAN_SDK
除了VULKAN_SDK
被要求获得vulkaninfo
:
任何人都可以提供一些启示和帮助吗?
xcode - Xcode 无法加载 libvulkan.1.dylib
我正在通过 MoltenVK 包装器在 OS X 上为 Vulkan 设置开发环境。我使用 Xcode IDE。
- 我从 lunarG 网站下载了 VulkanSDK。
配置了包含。
添加(复制)
libvulkan.1.1.121.dylib
到libvulkan.1.dylib
项目中,然后将它们添加到Build Phases -> Link Binary With Libraries of the target。
示例代码是:
我没有收到链接器错误。
当我启动应用程序时,我不断收到:
dyld:库未加载:@rpath/libvulkan.1.dylib 引用自:/Users/xxxxx/Library/Developer/Xcode/DerivedData/VulkanApp-aybsxkpxiqbshfebkfpcwaoiuige/Build/Products/Debug/VulkanApp 原因:找不到图像
然后 Xcode 向我展示了以下反汇编:
我的硬件设置是:
MacBook Pro。macOS 10.14.6
两个 GPU:
- Radeon Pro 555
- 英特尔核芯显卡 630
macos - vulkan 管道布局兼容性
如果使用相同的推送常量范围创建两个管道布局,则它们被定义为“与推送常量兼容”。两个管道布局被定义为“与集合 N 兼容”,如果它们是用定义相同的描述符集合布局创建的,用于集合 0 到 N,并且如果它们是用相同的推送常量范围创建的。
vkCmdBindDescriptorSets 使编号为 [firstSet..firstSet+descriptorSetCount-1] 的集合使用存储在 pDescriptorSets[0..descriptorSetCount-1] 中的绑定用于后续渲染命令(根据 pipelineBindPoint 计算或图形)。以前通过这些集合应用的任何绑定都不再有效。
假设有两个流水线布局,第一个流水线布局包含一个集合#0,第二个流水线布局包含两个集合#0 #1。第一个集合0和第二个集合0是相同的描述符集布局。它们也有相同的推送常量范围,因此为上面的分布,两个流水线布局的set#0都兼容吗?</p>
之后,在绘制时调用 vkCmdBindDescriptorSets 进行绑定。
在该验证层之后:VkPipeline 0x42 使用 set #0 但该 set 未绑定。
为什么会出现错误?我哪里弄错了?
c++ - VK_ERROR_INCOMPATIBLE_DRIVER 与 Mac OS 和 Vulkan MoltenVK
我正在尝试在我的 mac OS 上使用 Vulkan API(使用我的 Intel HD Graphics 5000 1536 Mo)。但是当我创建一个实例时VkCreateInstance(...)
结果 VkCreateInstance(...)
是 VK_ERROR_INCOMPATIBLE_DRIVER。
这是我初始化 VkInstance 的代码:
所以我的问题是 vulkan API 在我的带有 MoltenVK 的 Mac OS 上可用吗?如果是,我该怎么做才能使我的应用程序正常工作?
c++ - Vulkan --- vkAcquireNextImageKHR 在使用某些队列族时抛出 std::out_of_range
TL;博士
vkAcquireNextImageKHR
std::out_of_range
使用某些队列族时抛出。这是预期的行为吗?如何调试?
详细说明
我使用的 Vulkan 程序基于vulkan-tutorial.com。我发现我VkPhysicalDevice
有三个队列系列,每个都带有VK_QUEUE_GRAPHICS_BIT
并提供支持:
这些稍后在创建逻辑设备、交换链(队列系列都具有当前功能)和命令池时使用。后来程序调用
但使用除此之外的任何其他方法
但是使用以下的当前和图形队列索引的任意组合会导致此 API 调用抛出未捕获的0
都会导致此 API 调用抛出未捕获的std::out_of_range
(输出为 的输出lldb
):std::out_of_range
: (1, 1)
, (1, 2)
, (2, 1)
, (2, 2)
。
lldb
输出如下:
使用甚至不引用队列的索引时也会导致相同的错误,例如123
. 我正在使用该VK_LAYER_KHRONOS_validation
层,它没有任何抱怨。
问题
(1) 这是将错误的队列族索引传递给 Vk 的预期行为吗?
(2) 是否有能够捕获此错误并使其更详细的验证层?
(3) 为什么队列族的这些选择会导致这个错误?
细节
(1, 1)
在逻辑设备创建期间对图形使用队列族索引并呈现队列族,而0
对其他所有事物使用索引已经导致vkAcquireNextImage
引发错误。当然,VK_LAYER_KHRONOS_validation
在创建命令池时会引发以下警告:
我在 macOS Catalina 10.15.1 上使用 MoltenVK(来自 Vulkan SDK,版本 1.1.126.0)。
解决方法
使用 SDK 1.1.121.1 版本可防止发生抛出。
在可能需要的任何其他设备队列旁边创建具有索引的设备队列系列
0
可以防止发生抛出。
GitHub 上的问题
这现在已在 GitHub [此处]上作为问题提出。
macos - 在 MoltenVK 中启用实例扩展
我想使用 MoltenVK 1.0.38 中支持的扩展,目前在初始化 Vulkan 实例时会打印 47 个。有趣的是,当我打电话时vkEnumerateInstanceExtensionProperties
,我只得到了其中的 9 个:
我特别感兴趣VK_EXT_hdr_metadata
,但那个没有出现在这个列表中。以下是 MoltenVK 表示支持但我不可用的受支持扩展的完整列表:
c++ - Qt-5.14.0:QML 下的 Vulkan 导致 std::system_error:: 互斥锁失败
QML 示例下的Vulkan最多运行几秒钟,然后崩溃并出现以下错误:
虽然动画在操作过程中看起来正确,但 QML 标签显示不正确:
我正在使用 MoltenVK 1.1.130 (LunarG Vulkan SDK) 和 Qt 5.14.0 运行 macOS Catalina。我也尝试过 MoltenVK 1.2.131,结果相同。使用启用的 MoltenVK 时,每帧MVK_LOG_LEVEL_INFO
打印两次以下消息:
问题
有谁知道这可能是什么原因?这是一个错误吗?有人成功运行这个例子吗?
尽管 Qt 的 Vulkan 集成已损坏,但 MVK 错误消息看起来像是:不仅每帧vkCreateMacOSSurfaceMVK
调用两次,而且似乎从渲染线程(不是 GUI 线程/主线程)调用。
细节
为了将 Qt 与 Vulkan 一起使用,您必须从源代码编译 Qt 并提供 Vulkan 头文件。我用来编译 Qt 的配置调用是:
我的环境变量是根据 LunarG 文档设置的:
(Qt 需要QT_VULKAN_LIB
库dlopen
。)
lldb 回溯:
glfw - Vulkan、glfw 和 macOS:vkCreateInstance 返回 VK_ERROR_INITIALIZATION_FAILED
我正在阅读 Vulkan 教程并坚持创建一个 我在 MacBook Pro 15 (2019) 上使用 macOS 10.15.6 (19G2021) 的实例,所有环境变量如 VK_ICD_FILENAMES 和 VK_LAYER_PATH 均按照教程正确设置。
glfwVulkanSupported() 返回 True glfwGetRequiredInstanceExtensions(&glfwExtensionCount) 返回 NULL
这是我的 main.cpp:
macos - MacOS - 当 VkPhysicalDeviceFeatures wideLines = VK_TURE 并且也不支持 vkCmdSetLineWidth API 时,Vulkan 在运行时 vkCreateDevice() 失败
我是 Vulkan 的新手,最近开始学习 .
我面临问题,在运行时vkCreateDevice()
失败,VkPhysicalDeviceFeatures
何时启用
VkPhysicalDeviceFeatures 功能 {}; features.wideLines = VK_TRUE; 错误 - [mvk-error] VK_ERROR_FEATURE_NOT_PRESENT: vkCmdSetLineWidth(): 当前设备不支持宽线
当 features.wideLines = VK_FALSE; vkCreateDevice() 创建成功,但我无法使用 - vkCmdSetLineWidth (command_buffer, line_width) 修改 LineWidth;这给了我
error- [mvk-error] VK_ERROR_FEATURE_NOT_PRESENT: vkCmdSetLineWidth(): 当前设备不支持宽线。
这是一些细节-
MacOS - 10.14 (Mojave) 显卡 - 显卡 - 英特尔 UHD 显卡 630 1536 MB LunarG Vulkan 实例版本:1.2.154 注意 - 当 features.wideLines = 时,Windows 上相同版本的“LunarG Vulkan 实例版本:1.2.154”工作正常VK_TRUE; 并且能够使用 vkCmdSetLineWidth (command_buffer, line_width);此处提到的 VulkanInfo 的一些细节与 WideLines 功能相关 -
VkPhysicalDevice特点:
我在 Vulkan 文档/谷歌上进行了一些搜索,但找不到任何报告类似问题的人。任何帮助,将不胜感激。