这台电脑不是我自己的,尽管我对它很熟悉。在所有者的 Windows 7 驱动器上,Vulkan 可以正常工作,但在我自己的 Debian 驱动器上却不能。我按照 Debian.org 上的说明进行操作,即启用 contrib & non-free,并安装
firmware-linux, firmware-linux-nonfree, libgl1-mesa-dri, xserver-xorg-video-ati
并安装了以下软件包:
libvulkan-dev, libvulkan1, vulkan-tools, vulkan-utils, vulkan-validationlayers, vulkan-validationlayers-dev, mesa-vulkan-drivers
OpenGL 在 Steam 及其游戏内外都工作得很好(涵盖 i386 和 amd64 支持),但 Vulkan 无法启动(尽管根据 dpkg/apt 正确安装)。我主要对运行 Serious Sam Fusion (2017) 感兴趣,但也能够使用要求较低的 GZDoom 来测试 Vulkan 的功能。
一些信息:
AMD Radeon HD 295X2(兼容 Vulkan)
Ryzen 1700X
16 GB RAM (DDR4)
(任何其他必要信息始终可用)
$ vkcube
vkcube: /build/vulkan-tools-6bmpQy/vulkan-tools-1.1.97+dfsg1/cube/cube.c:3148:
demo_init_vk: Assertion `!err' failed.
Aborted
$ vulkaninfo
Vulkan Instance Version: 1.1.97
/build/vulkan-tools-6bmpQy/vulkan-tools-1.1.97+dfsg1/vulkaninfo/vulkaninfo.c:3845:
failed with VK_ERROR_INITIALIZATION_FAILED
$ dpkg -l | dpkg -l grep AMDGPU
ii libdrm-amdgpu1:amd64 2.4.97-1
ii libdrm-amdgpu1:i386 2.4.97-1
ii libgbm1-amdgpu-pro-base 16.40-348864
ii libgl1-amdgpu-pro-appprofiles 16.40-348864
ii libgl1-amdgpu-pro-dri:amd64 16.40-348864
ic libgl1-amdgpu-pro-glx:amd64 16.40-348864
ii opencl-amdgpu-pro-icd:amd64 16.40-348864
ii xserver-xorg-video-amdgpu 18.1.99+git20190207-1
$ glxinfo | grep OpenGL
OpenGL vendor string: X.Org
OpenGL renderer string: AMD HAWAII (DRM 2.50.0, 4.19.0-8-amd64, LLVM 7.0.1)
OpenGL core profile version string: 4.5 (Core Profile) Mesa 18.3.6
OpenGL core profile shading language version string: 4.50
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 4.5 (Compatibility Profile) Mesa 18.3.6
OpenGL shading language version string: 4.50
OpenGL context flags: (none)
OpenGL profile mask: compatibility profile
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 3.2 Mesa 18.3.6
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20
答案1
我最终从 AMD 网站安装了最新的 amdgpu(不是 amdgpu-pro)。如果执行此操作,请确保下载比“Radeon Crimson 15.12”更新的驱动程序,因为这是fglrx
(不是您想要的)的最后一个版本,而是更新的版本。
事实证明,原因是AMD有一系列显卡(大约是Radeon HD 7000系列到R9 Fury X),其中旧radeon
内核驱动程序和新amdgpu
内核驱动程序都支持,让用户可以选择使用其中一种。解释了如何从一种切换到另一种在这个 Debian Wiki 页面上(它只是 GRUB 的几个命令)。
然而,我的解决方案是从 AMD 站点安装最新的amdgpu
内核驱动程序,而不是依赖 Debian 内核提供的有些过时的驱动程序。