Steam doesn't detect (nvidia) graphics device after update

I did an update (on the nixos unstable channel) a few days ago for the first time in over a month. All of my steam games have stopped launching, they all provides errors like (error loading directx, unable to detect graphics device). For example, Hades gives the following error exactly

Hades was unable to detect a graphics device. Please ensure one is connected and has up-to-date drivers, then try again

and gives the following output in terminal

>>> Adding process 4351 for game ID 1145360
>>> Adding process 4352 for game ID 1145360
>>> Adding process 4353 for game ID 1145360
>>> Adding process 4356 for game ID 1145360
ERROR: ld.so: object '/home/dalvescb/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/dalvescb/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
>>> Adding process 4358 for game ID 1145360
>>> Adding process 4361 for game ID 1145360
ERROR: ld.so: object '/home/dalvescb/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
>>> Adding process 4368 for game ID 1145360
ERROR: ld.so: object '/home/dalvescb/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
>>> Adding process 4380 for game ID 1145360
Game update: AppID 1145360 "", ProcID 4352, IP 0.0.0.0:0
RecordSteamInterfaceCreation (PID 4352): SteamUtils009 / Utils
Setting breakpad minidump AppID = 1145360
RecordSteamInterfaceCreation (PID 4352): SteamUser019 / User
Steam_SetMinidumpSteamID:  Caching Steam ID:  76561198981915761 [API loaded no]
RecordSteamInterfaceCreation (PID 4352): SteamUser019 / User
RecordSteamInterfaceCreation (PID 4352): SteamFriends015 / Friends
RecordSteamInterfaceCreation (PID 4352): SteamUtils009 / Utils
RecordSteamInterfaceCreation (PID 4352): SteamMatchMaking009 / Matchmaking
RecordSteamInterfaceCreation (PID 4352): SteamMatchMakingServers002 / MatchmakingServers
RecordSteamInterfaceCreation (PID 4352): STEAMUSERSTATS_INTERFACE_VERSION011 / UserStats
RecordSteamInterfaceCreation (PID 4352): STEAMAPPS_INTERFACE_VERSION008 / Apps
RecordSteamInterfaceCreation (PID 4352): SteamNetworking005 / Networking
RecordSteamInterfaceCreation (PID 4352): STEAMREMOTESTORAGE_INTERFACE_VERSION014 / RemoteStorage
RecordSteamInterfaceCreation (PID 4352): STEAMSCREENSHOTS_INTERFACE_VERSION003 / Screenshots
RecordSteamInterfaceCreation (PID 4352): STEAMHTTP_INTERFACE_VERSION002 / HTTP
RecordSteamInterfaceCreation (PID 4352): SteamController006 / Controller
RecordSteamInterfaceCreation (PID 4352): STEAMUGC_INTERFACE_VERSION010 / UGC
RecordSteamInterfaceCreation (PID 4352): STEAMAPPLIST_INTERFACE_VERSION001 / AppList
RecordSteamInterfaceCreation (PID 4352): STEAMMUSIC_INTERFACE_VERSION001 / Music
RecordSteamInterfaceCreation (PID 4352): STEAMMUSICREMOTE_INTERFACE_VERSION001 / MusicRemote
RecordSteamInterfaceCreation (PID 4352): STEAMHTMLSURFACE_INTERFACE_VERSION_004 / HTMLSurface
RecordSteamInterfaceCreation (PID 4352): STEAMINVENTORY_INTERFACE_V002 / Inventory
RecordSteamInterfaceCreation (PID 4352): STEAMVIDEO_INTERFACE_V002 / Video
RecordSteamInterfaceCreation (PID 4352): STEAMPARENTALSETTINGS_INTERFACE_VERSION001 / ParentalSettings
ERROR: ld.so: object '/home/dalvescb/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
>>> Adding process 4535 for game ID 1145360
2021-03-14 17:26:38 [MainThread     ]                log.cpp:279   INFO| Opened log file Hades.log
2021-03-14 17:26:38 [MainThread     ]            program.cpp:1431   DBG| Previous stack guard size was 0 bytes
2021-03-14 17:26:38 [MainThread     ]          optionset.cpp:157   INFO| argument: /c=..\
2021-03-14 17:26:38 [MainThread     ]          optionset.cpp:157   INFO| argument: /steampowered
2021-03-14 17:26:38 [MainThread     ]          optionset.cpp:157   INFO| argument: /DirectLoadShell=true
2021-03-14 17:26:38 [MainThread     ]          optionset.cpp:157   INFO| argument: /DebugMessages=false
2021-03-14 17:26:38 [MainThread     ]          optionset.cpp:157   INFO| argument: /DebugKeysEnabled=false
2021-03-14 17:26:38 [MainThread     ]          optionset.cpp:157   INFO| argument: /ShowFPS=false
2021-03-14 17:26:38 [MainThread     ]          optionset.cpp:157   INFO| argument: /PerfDashWarnings=false
2021-03-14 17:26:38 [MainThread     ]          optionset.cpp:157   INFO| argument: /VerboseScriptLogging=false
2021-03-14 17:26:38 [MainThread     ]          optionset.cpp:157   INFO| argument: /UnsafeDebugKeysEnabled=false
2021-03-14 17:26:38 [MainThread     ]          optionset.cpp:157   INFO| argument: /LiveCreateTextures=false
2021-03-14 17:26:38 [MainThread     ]    platformservice.cpp:386    DBG| Processor Count : 16
2021-03-14 17:26:38 [MainThread     ]            program.cpp:1637   DBG| TotalRam: 42196746240
2021-03-14 17:26:38 [MainThread     ]            program.cpp:1638   DBG| Running Hades in 64-bit
2021-03-14 17:26:38 [MainThread     ]       pcsavedevice.cpp:249   INFO| Opening save file for reading: activeProfile
2021-03-14 17:26:38 [MainThread     ]     binaryloaddata.cpp:12    INFO| Reading 16 bytes
2021-03-14 17:26:38 [MainThread     ]     profilemanager.cpp:40    INFO| Loading default profile C:\users\steamuser\My Documents\Saved Games\Hades Profile1
2021-03-14 17:26:38 [MainThread     ]     profilemanager.cpp:187   INFO| ProfileManager::Load(): Profile1.sjson
2021-03-14 17:26:38 [MainThread     ]  windowsfilesystem.cpp:209    ERR| Error opening file: C:\users\steamuser\My Documents\Saved Games\Hades\Profile1.sjson -- rb (error: No such file or directory)
2021-03-14 17:26:38 [MainThread     ]       pcsavedevice.cpp:267   INFO| Unable to find save file: Profile1.sjson
2021-03-14 17:26:38 [MainThread     ]     profilemanager.cpp:203    ERR| Load profile Profile1.sjson failed! Load status: 1
2021-03-14 17:26:38 [MainThread     ]  windowsfilesystem.cpp:209    ERR| Error opening file: C:\users\steamuser\My Documents\Saved Games\Hades\NIXMACHINE.sjson -- rb (error: No such file or directory)
2021-03-14 17:26:38 [MainThread     ]  windowsfilesystem.cpp:209    ERR| Error opening file: Z:\mnt\HD4\SteamLibrary\steamapps\common\Hades\Content\ConfigOptions\NIXMACHINE.sjson -- rb (error: No such file or directory)
2021-03-14 17:26:38 [MainThread     ]      configoptions.cpp:1483  INFO| ConfigOption: NextUpdateDate = NextUpdateCountdownCustom
2021-03-14 17:26:38 [MainThread     ]      configoptions.cpp:1483  INFO| ConfigOption: LastUpdateDate = 07-03-2020
2021-03-14 17:26:38 [MainThread     ]      configoptions.cpp:1483  INFO| ConfigOption: UpdateWarningDate = 11-01-2020
2021-03-14 17:26:38 [MainThread     ]      configoptions.cpp:1483  INFO| ConfigOption: SaveCollectionBeginDate = 10-05-2020
2021-03-14 17:26:38 [MainThread     ]      configoptions.cpp:1483  INFO| ConfigOption: SaveCollectionEndDate = 10-09-2020
2021-03-14 17:26:38 [MainThread     ]     binarysavedata.cpp:17    INFO| Writing 16 bytes
2021-03-14 17:26:38 [MainThread     ]            program.cpp:1754   DBG| Initial startup in 0.1 msec
2021-03-14 17:26:38 [MainThread     ]            program.cpp:1755   DBG| Profile load in 0.0 msec
2021-03-14 17:26:38 [MainThread     ]         filesystem.cpp:682   WARN| Resource directory {9} already set on:'C:\users\steamuser\My Documents\Saved Games\Hades'
2021-03-14 17:26:38 [MainThread     ]        windowsbase.cpp:641   INFO| Created window app Hades
2021-03-14 17:26:38 [MainThread     ]          sdlwindow.cpp:54     DBG| SDL Initialized with UseNativeGaInputNoControllers
2021-03-14 17:26:38 [MainThread     ]         resolution.cpp:141    DBG| Monitor modes:
2021-03-14 17:26:38 [MainThread     ]            program.cpp:1997  INFO| DisplayModes Configured
2021-03-14 17:26:38 [MainThread     ]            program.cpp:2254   DBG| Initializing steam
Game update: AppID 1145360 "", ProcID 4535, IP 0.0.0.0:0
RecordSteamInterfaceCreation (PID 4535): SteamUtils009 / Utils
Setting breakpad minidump AppID = 1145360
RecordSteamInterfaceCreation (PID 4535): SteamUser020 / User
Steam_SetMinidumpSteamID:  Caching Steam ID:  76561198981915761 [API loaded no]
RecordSteamInterfaceCreation (PID 4535): SteamUtils009 /
RecordSteamInterfaceCreation (PID 4535): SteamController007 /
RecordSteamInterfaceCreation (PID 4535): STEAMUSERSTATS_INTERFACE_VERSION011 /
RecordSteamInterfaceCreation (PID 4535): SteamUser020 /
2021-03-14 17:26:39 [MainThread     ]            program.cpp:2260   DBG| Steam initialized
2021-03-14 17:26:39 [MainThread     ]     discord_client.cpp:70    INFO| [Discord SDK] Discord init error: 4
2021-03-14 17:26:39 [MainThread     ]            program.cpp:2009  INFO| PlatformService Initialized
2021-03-14 17:26:39 [MainThread     ]     inputsystemsdl.cpp:738    DBG| InputSystemSDL Initialized with UseNativeGaInputNoControllers
2021-03-14 17:26:39 [MainThread     ]  windowsfilesystem.cpp:209    ERR| Error opening file: Z:\mnt\HD4\SteamLibrary\steamapps\common\Hades\Content\gamecontrollerdb.txt -- rb (error: No such file or directory)
2021-03-14 17:26:39 [MainThread     ]            program.cpp:2016  INFO| InputSystem Initialized
2021-03-14 17:26:39 [MainThread     ]         direct3d11.cpp:828    ERR| Could not create DXGI factory.
2021-03-14 17:26:39 [MainThread     ]            program.cpp:2020   ERR| Failed to initialize ForgeRenderer.
2021-03-14 17:26:39 [MainThread     ]            program.cpp:2021  INFO| Showing MessageBox: No Graphics Device
1483  INFO| ConfigOption: SaveCollectionBeginDate = 10-05-2020
2021-03-14 17:26:38 [MainThread     ]      configoptions.cpp:1483  INFO| ConfigOption: SaveCollectionEndDate = 10-09-2020
2021-03-14 17:26:38 [MainThread     ]     binarysavedata.cpp:17    INFO| Writing 16 bytes
2021-03-14 17:26:38 [MainThread     ]            program.cpp:1754   DBG| Initial startup in 0.1 msec
2021-03-14 17:26:38 [MainThread     ]            program.cpp:1755   DBG| Profile load in 0.0 msec
2021-03-14 17:26:38 [MainThread     ]         filesystem.cpp:682   WARN| Resource directory {9} already set on:'C:\users\steamuser\My Documents\Saved Games\Hades'
2021-03-14 17:26:38 [MainThread     ]        windowsbase.cpp:641   INFO| Created window app Hades
2021-03-14 17:26:38 [MainThread     ]          sdlwindow.cpp:54     DBG| SDL Initialized with UseNativeGaInputNoControllers
2021-03-14 17:26:38 [MainThread     ]         resolution.cpp:141    DBG| Monitor modes:
2021-03-14 17:26:38 [MainThread     ]            program.cpp:1997  INFO| DisplayModes Configured
2021-03-14 17:26:38 [MainThread     ]            program.cpp:2254   DBG| Initializing steam
Game update: AppID 1145360 "", ProcID 4535, IP 0.0.0.0:0
RecordSteamInterfaceCreation (PID 4535): SteamUtils009 / Utils
Setting breakpad minidump AppID = 1145360
RecordSteamInterfaceCreation (PID 4535): SteamUser020 / User
Steam_SetMinidumpSteamID:  Caching Steam ID:  76561198981915761 [API loaded no]
RecordSteamInterfaceCreation (PID 4535): SteamUtils009 /
RecordSteamInterfaceCreation (PID 4535): SteamController007 /
RecordSteamInterfaceCreation (PID 4535): STEAMUSERSTATS_INTERFACE_VERSION011 /
RecordSteamInterfaceCreation (PID 4535): SteamUser020 /
2021-03-14 17:26:39 [MainThread     ]            program.cpp:2260   DBG| Steam initialized
2021-03-14 17:26:39 [MainThread     ]     discord_client.cpp:70    INFO| [Discord SDK] Discord init error: 4
2021-03-14 17:26:39 [MainThread     ]            program.cpp:2009  INFO| PlatformService Initialized
2021-03-14 17:26:39 [MainThread     ]     inputsystemsdl.cpp:738    DBG| InputSystemSDL Initialized with UseNativeGaInputNoControllers
2021-03-14 17:26:39 [MainThread     ]  windowsfilesystem.cpp:209    ERR| Error opening file: Z:\mnt\HD4\SteamLibrary\steamapps\common\Hades\Content\gamecontrollerdb.txt -- rb (error: No such file or directory)
2021-03-14 17:26:39 [MainThread     ]            program.cpp:2016  INFO| InputSystem Initialized
2021-03-14 17:26:39 [MainThread     ]         direct3d11.cpp:828    ERR| Could not create DXGI factory.
2021-03-14 17:26:39 [MainThread     ]            program.cpp:2020   ERR| Failed to initialize ForgeRenderer.
2021-03-14 17:26:39 [MainThread     ]            program.cpp:2021  INFO| Showing MessageBox: No Graphics Device

As I mentioned I’m following the nixos unstable branch (just updated) and I have my 2080 ti nvidia card configured with the following

  services.xserver.videoDrivers = [ "nvidia" ];
  # services.xserver.dpi = 96;
  hardware.opengl = {
    enable = true;
    extraPackages = with pkgs; [
        vaapiIntel
        vaapiVdpau
        libvdpau-va-gl
      ];
    setLdLibraryPath = true;
    driSupport32Bit = true;
  };

any clues as to what’s going on here? Also I should note the same errors persist no matter what version of proton i seem to select.

2 Likes

Curtis D’Alves via NixOS Discourse nixos1@discoursemail.com
writes:

any clues as to what’s going on here? Also I should note the
same errors persist no matter what version of proton i seem to
select.

As part of getting proton 5.13 and later
working
,
programs.steam.enable
must be set to true in your configuration.

I am not sure if this is permanent or only temporary.

This is likely due to the new video drivers being built against a newer version of glibc, and so it will fail when trying to load them. Restarting the system should fix your issues. Unfortunately, video drivers can’t be as pure as the rest of nixpkgs, since it can’t be determined ahead of time which drivers you need. Or even if you did, you would have to rebuild quite a bit.

Added to my configuration.nix but no change :frowning_face: also the problem is with older versions of proton as well

Restarting did nothing unfortunately, is there anyway to force a build with the correct version of glibc? Or any other ideas?

Shouldn’t be an issue here, since NVIDIA’s OpenGL, Vulkan, etc. libraries are built against an old glibc.

@dalvescb do OpenGL, Vulkan, etc. work outside Steam? I think it would be useful to determine first whether this is a Steam problem or not.

2 Likes

Running glmark2 works fine, vulkininfo detects my GPU and lists it and vkcube runs fine, I’m unsure how to test if directx works without steam

Ah, didn’t realize that we made that changes. Great! :slight_smile:

So I nuked my steam, uninstalled it, garbage collected, deleted all my steam directories (.steam,.local/share/Steam) and all my steam games then reinstalled with a channel update (unstable) … same issue. Like I mentioned in my last reply glmark2 and vkcube work so it’s not an inherent opengl or vulkan issue, any ideas how to further diagnose this??

I’ve had issues with Nvidia devices not being found because the binary lacked the RUNPATH entry to /run/opengl-driver/lib. Maybe LD_LIBRARY_PATH=/run/opengl-driver/lib works?
You might also get some more info when starting this with LD_DEBUG=libs

Unfortunately calling LD_LIBRARY_PATH=/run/opengl-driver/lib steam does nothing

I tried calling LD_DEBUG=libs steam and I think something interesting popped up

     28976:	calling init: /nix/store/77rdvhmw2byg3mi7vxg1jwczdixzs88j-mesa-20.3.4-drivers/lib/libvulkan_intel.so
     28976:	
     28976:	/nix/store/77rdvhmw2byg3mi7vxg1jwczdixzs88j-mesa-20.3.4-drivers/lib/libvulkan_lvp.so: error: symbol lookup error: undefined symbol: vk_icdNegotiateLoaderICDInterfaceVersion (fatal)
     28976:	find library=libdrm_amdgpu.so.1 [0]; searching
     28976:	 search path=/mnt/HD4/SteamLibrary/steamapps/common/Proton 5.0/dist/lib64:/mnt/HD4/SteamLibrary/steamapps/common/Proton 5.0/dist/lib:/lib64:/lib32:/steamrt/amd64/lib/x86_64-linux-gnu:/steamrt/amd64/lib:/steamrt/amd64/usr/lib/x86_64-linux-gnu:/steamrt/amd64/usr/lib:/steamrt/i386/lib/i386-linux-gnu:/steamrt/i386/lib:/steamrt/i386/usr/lib/i386-linux-gnu:/steamrt/i386/usr/lib:/run/opengl-driver/lib:/run/opengl-driver-32/lib:/usr/lib:/usr/lib32:/mnt/HD4/SteamLibrary/steamapps/common/Temtem		(LD_LIBRARY_PATH)
     28976:	  trying file=/mnt/HD4/SteamLibrary/steamapps/common/Proton 5.0/dist/lib64/libdrm_amdgpu.so.1
     28976:	  trying file=/mnt/HD4/SteamLibrary/steamapps/common/Proton 5.0/dist/lib/libdrm_amdgpu.so.1
     28976:	  trying file=/lib64/libdrm_amdgpu.so.1
     28976:	
     28976:	find library=libelf.so.0 [0]; searching
     28976:	 search path=/mnt/HD4/SteamLibrary/steamapps/common/Proton 5.0/dist/lib64:/mnt/HD4/SteamLibrary/steamapps/common/Proton 5.0/dist/lib:/lib64:/lib32:/steamrt/amd64/lib/x86_64-linux-gnu:/steamrt/amd64/lib:/steamrt/amd64/usr/lib/x86_64-linux-gnu:/steamrt/amd64/usr/lib:/steamrt/i386/lib/i386-linux-gnu:/steamrt/i386/lib:/steamrt/i386/usr/lib/i386-linux-gnu:/steamrt/i386/usr/lib:/run/opengl-driver/lib:/run/opengl-driver-32/lib:/usr/lib:/usr/lib32:/mnt/HD4/SteamLibrary/steamapps/common/Temtem		(LD_LIBRARY_PATH)
     28976:	  trying file=/mnt/HD4/SteamLibrary/steamapps/common/Proton 5.0/dist/lib64/libelf.so.0
     28976:	  trying file=/mnt/HD4/SteamLibrary/steamapps/common/Proton 5.0/dist/lib/libelf.so.0
     28976:	  trying file=/lib64/libelf.so.0
     28976:	
     28976:	
     28976:	calling init: /lib64/libelf.so.0
     28976:	
     28976:	
     28976:	calling init: /lib64/libdrm_amdgpu.so.1
     28976:	
     28976:	
     28976:	calling init: /nix/store/77rdvhmw2byg3mi7vxg1jwczdixzs88j-mesa-20.3.4-drivers/lib/libvulkan_radeon.so
     28976:	
     28976:	/nix/store/77rdvhmw2byg3mi7vxg1jwczdixzs88j-mesa-20.3.4-drivers/lib/libvulkan_lvp.so: error: symbol lookup error: undefined symbol: vk_icdNegotiateLoaderICDInterfaceVersion (fatal)
     28976:	/nix/store/77rdvhmw2byg3mi7vxg1jwczdixzs88j-mesa-20.3.4-drivers/lib/libvulkan_lvp.so: error: symbol lookup error: undefined symbol: vk_icdNegotiateLoaderICDInterfaceVersion (fatal)
     28976:	/nix/store/77rdvhmw2byg3mi7vxg1jwczdixzs88j-mesa-20.3.4-drivers/lib/libvulkan_lvp.so: error: symbol lookup error: undefined symbol: vk_icdNegotiateLoaderICDInterfaceVersion (fatal)
     28976:	/nix/store/77rdvhmw2byg3mi7vxg1jwczdixzs88j-mesa-20.3.4-drivers/lib/libvulkan_lvp.so: error: symbol lookup error: undefined symbol: vk_icdNegotiateLoaderICDInterfaceVersion (fatal)
     28976:	/nix/store/77rdvhmw2byg3mi7vxg1jwczdixzs88j-mesa-20.3.4-drivers/lib/libvulkan_lvp.so: error: symbol lookup error: undefined symbol: vk_icdNegotiateLoaderICDInterfaceVersion (fatal)
     28976:	
     28976:	calling init: /home/dalvescb/.local/share/Steam/ubuntu12_64/libVkLayer_steam_fossilize.so
     28976:	
     28976:	/home/dalvescb/.local/share/Steam/ubuntu12_64/libVkLayer_steam_fossilize.so: error: symbol lookup error: undefined symbol: vkNegotiateLoaderLayerInterfaceVersion (fatal)
     28976:	
     28976:	calling init: /home/dalvescb/.local/share/Steam/ubuntu12_64/steamoverlayvulkanlayer.so
     28976:	
     28976:	/home/dalvescb/.local/share/Steam/ubuntu12_64/steamoverlayvulkanlayer.so: error: symbol lookup error: undefined symbol: vkNegotiateLoaderLayerInterfaceVersion (fatal)
     28976:	

it looks to me like it’s looking for an amd gpu … but I have a nvidia gpu with the nvidia driver installed …

unfortunately calling LD_LIBRARY_PATH=/run/opengl-driver/lib steam does nothing, but calling LD_DEBUG=libs steam gives alot of information

Just for clarification: we didn’t. The closed-source driver just provides its own libraries for OpenGL, Vulkan, etc. I guess NVIDIA compiles it against an old glibc to support a wide range of distributions.

It would still be nice to make this change for open source, Mesa-based drivers.

1 Like

So adding programs.steam.enable turns out to be the solution with a caveat, I had to remove steam from my system packages and garbage collect first, also this seems to be necessary for all versions of proton not just 5.13 and later

1 Like

remove system package, nix-collect-garbage -d, delete all ~/.local/share/Steam , add programs.steam.enable = true; And proton games not working.

May be it work only for unstable installation ?

yes you have to be following unstable, the pull requests hasn’t (and won’t?) be brought into the 20.09 branch. That being said, I believe on the 20.09 branch you should be able to get your games working as long as you use a version of proton older than 5.13

I stumbled across the same issue, and the solution was also to install steam via programs.steam.enable = true. This was strange, because I replicated everything that option does for the steam installation in my profile (actually pulled in via users.users.*.packages in configuration.nix, so the actual package should be the same as the one pulled in via programs.steam.enable). However, a bit of digging revealed some strangeness. A number of collisions from the nvidia driver caught my attention in the logs, and I noticed the following differences between the non-working and the working version:

In the working version, inside the bwrap (access by Game-properties, browse local files, start terminal from Dolphin in my case, but you can just check the fhs-env in the store), /usr/share/vulkan/icd.d/nvidia_icd32.json looks like this:

{
    "file_format_version" : "1.0.0",
    "ICD": {
        "library_path": "/nix/store/c8bnpaq5myvs34472vcmybl13sijg4b9-nvidia-x11-460.73.01-5.10.37-lib32/lib/libGLX_nvidia.so.0",
        "api_version" : "1.2.155"
    }
}

which correctly points to the 32-Bit path.

However, in the non-working version, it looks exactly like the file nvidia_icd.json, which points to the 64-Bit version of the driver? I suspect that may have to do with how collisions are resolved before the code from steam: add missing 32 bit nvidia ICD · NixOS/nixpkgs@877135d · GitHub is invoked. Neither sure though if 1. Having an incorrect nvidia_icd32.json is the actual problem and 2. This is actually caused by the collision issue though…

For those having issues with Steam Play games crashing not able to find Graphics/Direct X.
The following fixed issues involving not able to use a Proton version above 5.0-5.13 and issues above.
I did not need to delete anything from the ~/.steam folder.

  1. I then removed all Steam mentions from configuration, commenting out will do.

  2. Upgraded to NixOS 21.05, make sure to boot first into 21.05 and that your NixOS is running as normal.

  3. I then started from a clean slate by running:
    nix-collect-garbage -d
    sudo nix-collect-garbage -d

  4. Enabled steam again by itself with no other options enabled.

  5. Checked everything was working correctly.

  6. Played Games!

1 Like

this worked ^

  • but I had to nuke old proton files to reinstall proton compatibility layer
    I endup moving all the games from common/ to elsewhere
    deleting .local/share/steam completely
    and moving back all the games to common/

(had same issues but with AMD gpu)

potentially related, Steam incorrectly inherits VK_ICD_FILENAMES · Issue #126428 · NixOS/nixpkgs · GitHub