我正在 macOS (10.14.6) 上开始使用 Vulkan (vulkansdk-macos-1.1.126.0),并按照教程设置了一个似乎一切顺利的实例,但是当我调用 vkEnumerateInstanceLayerProperties
时,我得到一个返回的层数的 0。
起初我认为这可能是我的构建参数/变量,但是当我运行随 tar.gz 提供的 vulkanInfo 应用程序时,它还会报告那里没有层( Layers: count = 0
)。然后我尝试添加环境变量:
PATH=$PATH:$VULKAN_ROOT/bin
export VK_LAYER_PATH=$VULKAN_ROOT/etc/vulkan/explicit_layers.d
export VK_ICD_FILENAMES=$VULKAN_ROOT/etc/vulkan/icd.d/MoltenVK_icd.json
export VK_LAYER_PATH=$VULKAN_ROOT/etc/vulkan/explicit_layers.d
export VK_INSTANCE_LAYERS=VK_LAYER_LUNARG_standard_validation vulkaninfo
#export VK_INSTANCE_LAYERS=VK_LAYER_KHRONOS_validation vulkaninfo
并从终端启动 vulkanInfo。也许是 Mac 试图过于安全或与文件权限有关。感谢任何建议,因为这将严重妨碍调试。
最佳答案
因此,正如您所期望的那样,我做错了什么,只是做错了两件事:
- 为了从终端启动 vulkanInfo,您可以看到我没有导出 PATH
变量。
- 对于 VSCode(我在其中构建应用程序),我将 VK_ICD_FILENAMES
和 VK_LAYER_PATH
作为预处理器定义,而不是作为启动环境变量(在 launch.json 中设置的环境名称/值映射)。
关于MacOS VulkanInfo 报告 0 验证层,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59063372/