Upgrading Nvidia drivers causes games to stop working

Ok, this seems odd. Two Vulkan devices are reported. For a single NVIDIA graphics card, I’d expect to see only the first device present. This is likely what is causing Proton games to default to software Mesa rendering. Let’s see if any knowledgeable members can interpret this more meaningfully.

Does nvidia_icd.json exist in the /usr/share/vulkan/icd.d/ directory? I did see a suggestion to set the VK_ICD_FILENAMES environment variable with `export VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/nvidia_icd.json, (can be added to ~/.profile), but this feels like another workaround to me.

Yes.

λ ls /usr/share/vulkan/icd.d/
intel_hasvk_icd.i686.json  lvp_icd.x86_64.json   nvidia_icd.x86_64.json
intel_icd.i686.json        nvidia_icd.i686.json  radeon_icd.i686.json

I added export VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/nvidia_icd.x86_64.json to my ~/.profile (and later ~/.bashrc, just to be sure) but it didn’t solve anything.

I also tried launching the Steam game with the launch parameter VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/nvidia_icd.x86_64.json %command%, but it also didn’t solve anything.


Unrelated, but I noticed that in a broken state after reboot, simply querying for the persistence mode (which does say it’s “Enabled”) will “fix” the issue as well:

λ nvidia-smi --format=noheader --query-gpu=persistence_mode
Enabled

Yes, that is to be expected as it probes the driver.

@daunk then if it’s using llvmpipe that’s a Vulkan device select issue. So you need to see where to set MESA_VK_DEVICE_SELECT="10de:2684" as an environment variable. In Proton (like Steam) there should be an option to set? Else you may need to set system wide via adding that to a /etc/environment file (needs a reboot).

λ cat /etc/environment
MANGOHUD=1
MESA_VK_DEVICE_SELECT="10de:2684"

λ systemctl reboot

This sadly did not solve anything.

You can use MESA_VK_DEVICE_SELECT=10de:2684 %command% as the launch parameter for the game.

However, this also did not fix anything.

I still need to call nvidia-smi for it to work.


Out of curiosity I removed MangoHud (the entire package, and the env variable) to see if it made any difference, but it did not.

So I updated the NVida drivers:

Driver Version: 580.95.05

I restarted my computer, and ran Dune: Awakening as an experiment, but Steam decided I needed to rebuild some Vulkan shaders.
The game then launched correctly, without having to use the nvidia-smitrick.

However, after another computer, and when Steam did not run a shader rebuild, the game once again complained about missing DirectX 12.
I’m assuming that Steam rebuilding the shaders will initialize the drivers, just like nvidia-smi.
Simply calling nvidia-smi at startup still works.

So the issue still exists on the newest NVidia driver version.

I’m also still having the same issue, although I have not tried any of the fixes above, but just putting it in here as an FYI.

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