Vulkan 在 linux 上找不到物理设备

Vulkan cannot find physical devices on linux

我一直想使用 Vulkan,新图形 API 并且已经搞定了 运行 在 Windows 7 上没问题。但是我无法使用 Vulkan在 linux 上工作。当我尝试 运行 任何 LunarG 示例,甚至我自己的代码时,vkEnumeratePhysicalDevices 总是说没有物理设备。这是我的设置:

OS: Ubuntu 16.04 (LTS) [x64]
GPU: Nvidia Geforce GT 730 2GB GDDR5
Driver: NVIDIA Binary driver - version 364.19 from nvidia-364 (open source)
Vulkan SDK: LunarG v1.0.17.0 [ latest version]

我想知道是否有我的 GPU 需要设置环境变量的文件,但我真的不知道。正如我之前所说,这在 Windows 7 上运行得很好,但我似乎无法让它在上述配置上运行。我能够使用 LunarG 标准验证层和正确的扩展创建一个实例,但是 vkEnumeratePhysicalDevices 没有找到任何物理设备。它没有给出错误,只是说找不到任何物理设备。这真的让我感到难过,我真的很感激你的帮助。谢谢!

如果驱动程序安装正确,您不必设置环境变量。

检查安装是否正确的一种方法是查找识别驱动程序的 JSON 文件。例如,nvidia 驱动程序将在 /etc/vulkan/icd.d/ 中放置一个名为 nvidia_icd.json 的文件。 /usr/share/vulkan/icd.d/ 是另一个标准,但不太常见的位置。

也可能是你的GPU不支持Vulkan。请务必查看 GPU 供应商的网页以确认支持。您可能想直接从供应商的网站下载驱动程序,以获得他们所说的支持 Vulkan 的驱动程序。

你确定使用 "Additional Drivers" 页面应该会给你一个 Vulkan 驱动程序吗?

您可以参考 https://vulkan.lunarg.com 文档部分中的加载程序文档以获取更多信息。

根据您的发行版,您可能必须安装 nvidia-utils 包。参见 this issue on my Vulkan repo for details

如果不是这种情况,请检查 Karl 提到的目录,并检查是否有其他 ICD(可能来自 Intel)可能会导致问题。如果您使用的是带有双 GPU 的 optimus 系统,您可能需要明确激活 NVIDIA GPU。

730 应该可以在 Linux 上正常工作,至少从 Linux 硬件报告来看我在数据库中得到的 this one