Hey,
haven’t booted the system in a while except for the occasional updates and today I noticed that X11 would only login into a black screen.
Console would say something about KWIN_11 dying and OpenGL initialization failing.
So far so bad, so I went into Wayland and everything appeared to be fine at first. Except, no game ran. Period, full stop.
I have done some digging but am hopelessly lost as I haven’t done anything to the system and it used to just work.
Core issue: Games are complaining that there isn’t a DX12 device.
Vulkaninfo:
[derp@linux-destop vulkan]$ vulkaninfo
ERROR: [Loader Message] Code 0 : vkCreateInstance: Found no drivers!
Cannot create Vulkan instance.
This problem is often caused by a faulty installation of the Vulkan driver or attempting to use a GPU that does not support Vulkan.
ERROR at /usr/src/debug/vulkan-tools/Vulkan-Tools-1.3.269/vulkaninfo/./vulkaninfo.h:688:vkCreateInstance failed with ERROR_INCOMPATIBLE_DRIVER
As you can see, it is dead.
lspci claims amdgpu driver to be in use.
03:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Navi 31 [Radeon RX 7900 XT/7900 XTX/7900M] (rev c8)
Subsystem: Advanced Micro Devices, Inc. [AMD/ATI] RX 7900 GRE [XFX]
Kernel driver in use: amdgpu
ICDs are present:
[derp@linux-destop ~]$ pacman -Qo /usr/share/vulkan/icd.d/*
/usr/share/vulkan/icd.d/radeon_icd.i686.json is owned by lib32-vulkan-radeon 1:24.1.3-1
/usr/share/vulkan/icd.d/radeon_icd.x86_64.json is owned by vulkan-radeon 1:24.1.3-1
and configured in /etc/environment:
VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/radeon_icd.i686.json:/usr/share/vulkan/icd.d/radeon_icd.x86_64.json
No amdvlk packages are installed and I am slightly stumped as to how to proceed, let alone where to begin.
[derp@linux-destop icd.d]$ pacman -Qq | grep -E "amd|vulkan|nvidia"
amd-ucode
lib32-vulkan-icd-loader
lib32-vulkan-radeon
vulkan-headers
vulkan-icd-loader
vulkan-radeon
vulkan-tools
vulkan-utility-libraries
xf86-video-amdgpu
I suspect the OpenGL / KWIN_X11 issue ties into the same root issue, whatever that may be.
Both current kernel and LTS exhibit this behavior.
EDIT / SOLUTION: Running an app specifically with the dedicated prefix of
VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/radeon_icd.i686.json:/usr/share/vulkan/icd.d/radeon_icd.x86_64.json app
seems to work just fine. Steam, games and vukaninfo work this way.
Was there a change in how ICDs are to be defined?
Seems like I solved it by a lucky shot.
In addition to VK_ICD_FILENAMES I added
VK_DRIVER_FILES=/usr/share/vulkan/icd.d/radeon_icd.i686.json:/usr/share/vulkan/icd.d/radeon_icd.x86_64.json
to /etc/environment as well and things seem to now be back in order, for now.