我使用的是 Debian 11
我有一个通过覆盖 tty1 来工作的程序。因此,当启动我的计算机时,该程序立即运行。这工作正常,但我使用 Gnome 作为我的 GUI 来开发和测试程序。在 Gnome 中运行程序时,我得到:
WARNING: lavapipe is not a conformant vulkan implementation, testing use only.
Segmentation fault
在 tty 输出上运行 vulkaninfo --summary
Devices:
========
GPU0:
apiVersion = 420641 (1.2.145)
driverVersion = 83898373
vendorID = 0x10002
deviceID = 0x1508
deviceType = PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU
deviceName = AMD_RADV_RAVEN *ACO)
driverID = DRIVER_ID_MESA_RADV
driverName = radv
driverInfo = Mesa 20.3.5 (ACO)
conformanceVersion = 1.2.3.0
GPU1:
apiVersion = 4194306 (1.0.2)
driverVersion = 1 (0x0001)
vendorID = 0x10005
deviceID = 0x0000
deviceType = PHYSICAL_DEVICE_TYPE_CPU
deviceName = llvmpipe (LLVM 11.0.1, 256 bits)
driverID = DRIVER_ID_MESA_LLVMPIPE
driverName = llvmpipe
但在 gnome 输出上运行 vulkaninfo --summary
Devices:
========
GPU0:
apiVersion = 4194306 (1.0.2)
driverVersion = 1 (0x0001)
vendorID = 0x10005
deviceID = 0x0000
deviceType = PHYSICAL_DEVICE_TYPE_CPU
deviceName = llvmpipe (LLVM 11.0.1, 256 bits)
driverID = DRIVER_ID_MESA_LLVMPIPE
driverName = llvmpipe
driverInfo = Mesa 20.3.5 (LLVM 11.0.1)
conformanceVersion = 1.0.0.0
driverInfo = Mesa 20.3.5 (LLVM 11.0.1)
conformanceVersion = 1.0.0.0
所以我可以看到在 Gnome 中它只是使用我的 CPU。有没有办法配置 vulkan 也使用我的 GPU?
答案1
所以回答我自己的问题:
我跑了
lspci -k
检查 Gnome 是否识别出我的 GPU,并且我在那里看到了我的 GPU 及其内核驱动程序。
所以我意识到问题可能出在 Vulkan 本身,所以我跑了
ls /usr/share/vulkan/icd.d/
这给了我输出
intel_icd.x86_64.json lvp_icd.x86_64.json radeon_icd.x86_64.json
radeon_icd.x86_64.json
是我的 AMD GPU 的可安装客户端驱动程序
然后我跑了
export VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/radeon_icd.x86_64.json
然后运行我的程序并且它起作用了。