Default Vulkan driver selection

Hello community,
recently I am experiencing an issue with the selection of the right Vulkan driver on my machine for some apps. The ones most affected are of course Lutris and Steam.

If I open a terminal and check the Vulkan environment variables, I can see that they are set exactly as per what I have set in the file /etc/environment:

$ echo $VK_DRIVER_FILES 
/usr/share/vulkan/icd.d/radeon_icd.i686.json:/usr/share/vulkan/icd.d/radeon_icd.x86_64.json

$ echo  $AMD_VULKAN_ICD
RADV

However, when I run a game in either Lutris or Steam, I get the error message that the system doesn’t support Vulkan (or DirectX, according to the game). In order to make sure to pick the RADV driver, I have always to specify the prefix command vk_radv before any executable.

Is there any way for defaulting the selection of the RADV driver, therefore avoiding to specify always the vk_radv command prefix?

Here below my /etc/environment file settings:

AMD_VULKAN_ICD=RADV
DISABLE_LAYER_AMD_SWITCHABLE_GRAPHICS_1=1
VK_DRIVER_FILES=/usr/share/vulkan/icd.d/radeon_icd.i686.json:/usr/share/vulkan/icd.d/radeon_icd.x86_64.json 

and here below my system setup:

OS: Manjaro Linux x86_64 
Kernel: 6.12.17-1-MANJARO 
Resolution: 2560x1440 
DE: GNOME 47.5 
WM: Mutter
CPU: AMD Ryzen 7 5800X (16) @ 5.234GHz 
GPU: AMD ATI Radeon RX 6800/6800 XT / 6900 XT 
Memory: 8127MiB / 64207MiB 

Could you please advise?

All the best.

I have a 58000X + RX 6800 like you. I have no VK or VULKAN environment variables at all and everything works fine including Steam.

$ env | grep VK
$ env | grep VULKAN
$

What vulkan packages do you have installed? The important ones are vulkan-radeon and vulkan-icd-loader (I have no idea why vulkan-intel is there to be honest).

$ pacman -Q | grep vulkan
lib32-vulkan-icd-loader 1.4.304.1-1
lib32-vulkan-intel 1:24.3.4-1
lib32-vulkan-radeon 1:24.3.4-1
vulkan-headers 1:1.4.304.1-2
vulkan-icd-loader 1.4.304.1-1
vulkan-intel 1:24.3.4-1
vulkan-radeon 1:24.3.4-1
vulkan-tools 1.4.304.1-1

Tbf, quite a few of them, due to several experiments I have been doing in the past:

$ pacman -Q | grep vulkan                                                                  
amd-vulkan-prefixes 2-1
lib32-vulkan-icd-loader 1.4.304.1-1
lib32-vulkan-mesa-layers 1:24.3.4-1
lib32-vulkan-radeon 1:24.3.4-1
lib32-vulkan-validation-layers 1.4.304.1-1
lib32-vulkan-virtio 1:24.3.4-1
vulkan-extra-layers 1.4.304.1-2
vulkan-extra-tools 1.4.304.1-2
vulkan-headers 1:1.4.304.1-2
vulkan-html-docs 1:1.4.304-1
vulkan-icd-loader 1.4.304.1-1
vulkan-mesa-layers 1:24.3.4-1
vulkan-radeon 1:24.3.4-1
vulkan-tools 1.4.304.1-1
vulkan-utility-libraries 1.4.304.1-2
vulkan-validation-layers 1.4.304.1-2
vulkan-virtio 1:24.3.4-1
waifu2x-ncnn-vulkan 20220728-3

So you also have other Vulkan drivers like amdvlk installed? Is there a reason why you need other Vulkan drivers? If not then removing them would be the simplest solution.

Otherwise I have no idea. You’ve done exactly what the ArchWiki suggests so I don’t know why Steam and Lutris aren’t using RADV. If it was working before and now isn’t then I guess something changed somewhere but I have no idea where.

Yes I had to install temporarily amdvlk in the past for some specific compatibility. As reported in the script vk_radv code, when amdvlk is installed, then VK_DRIVER_FILES is ignored and AMD_VULKAN_ICD is read instead.

I uninstalled the amdvlk driver, but the issue still persist. Specifically, Lutris has the following output:

2025-03-07 16:37:15,373: Starting Lutris 0.5.19
WARNING: [Loader Message] Code 0 : Layer VK_LAYER_MESA_device_select uses API version 1.3 which is older than the application specified API version of 1.4. May cause issues.
2025-03-07 16:37:15,412: "card0" is AMD Radeon RX 6900 XT (1002:73bf 1002:0e3a amdgpu) Driver 24.3.4
2025-03-07 16:37:15,412: Vulkan is not available or your system isn't Vulkan capable

While Steam reports this warning message:

pressure-vessel-wrap[47937]: W: Failed to load Vulkan ICD #1 from /usr/share/vulkan/icd.d/radeon_icd.x86_64.json : openat(/usr/share/vulkan/icd.d/radeon_icd.x86_64.json ): No such file or directory

I checked and the files are actually there. I’m not sure if there is some additional configuration which is still selecting the wrong driver (amdvlk) as default.

In addition to what I wrote above, I also got the following now:

$ ls -l /usr/share/vulkan/icd.d/
total 8
-rw-r--r-- 1 root root 149 Jan 23 00:24 radeon_icd.i686.json
-rw-r--r-- 1 root root 147 Jan 23 00:24 radeon_icd.x86_64.json

$ vulkaninfo --summary
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/vulkaninfo/./vulkaninfo.h:456:vkCreateInstance failed with ERROR_INCOMPATIBLE_DRIVER

but if I run the same command above with the prefix, the outcome changes:

$ vk_radv vulkaninfo --summary
WARNING: [Loader Message] Code 0 : Layer VK_LAYER_MESA_device_select uses API version 1.3 which is older than the application specified API version of 1.4. May cause issues.
==========
VULKANINFO
==========

Vulkan Instance Version: 1.4.304


Instance Extensions: count = 24
-------------------------------

Well given the error message about VK_LAYER_MESA_device_select I’d uninstall all those *-layer packages next.

Worse case, uninstall everything vulkan-related and remove any related environment variables, then reinstall vulkan-radeon and vulkan-icd-loader (and the lib32 versions of those packages).

Thanks. That sorted out the issue.

In summary I proceeded as such:

  1. Removed all the *layer packages
  2. Cleared all the env variables from /etc/environment file

And now the system identifies immediately the right driver without any additional hack.

All the best

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.