diff --git a/nixos/modules/programs/steam.nix b/nixos/modules/programs/steam.nix index 6e9b7729ad6..6b805c374a0 100644 --- a/nixos/modules/programs/steam.nix +++ b/nixos/modules/programs/steam.nix @@ -17,6 +17,7 @@ in { config = mkIf cfg.enable { hardware.opengl = { # this fixes the "glXChooseVisual failed" bug, context: https://github.com/NixOS/nixpkgs/issues/47932 enable = true; + driSupport = true; driSupport32Bit = true; }; diff --git a/pkgs/games/steam/fhsenv.nix b/pkgs/games/steam/fhsenv.nix index 42faaf287d7..6692f9bd9b2 100644 --- a/pkgs/games/steam/fhsenv.nix +++ b/pkgs/games/steam/fhsenv.nix @@ -140,6 +140,7 @@ in buildFHSUserEnv rec { # dependencies for mesa drivers, needed inside pressure-vessel mesa.drivers + vulkan-loader expat wayland xlibs.libxcb @@ -232,7 +233,14 @@ in buildFHSUserEnv rec { libvdpau ] ++ steamPackages.steam-runtime-wrapped.overridePkgs) ++ extraLibraries pkgs; - extraBuildCommands = if (!nativeOnly) then '' + extraBuildCommands = '' + if [ -f $out/usr/share/vulkan/icd.d/nvidia_icd.json ]; then + cp $out/usr/share/vulkan/icd.d/nvidia_icd{,32}.json + nvidia32Lib=$(realpath $out/lib32/libGLX_nvidia.so.0 | cut -d'/' -f-4) + escapedNvidia32Lib="''${nvidia32Lib//\//\\\/}" + sed -i "s/\/nix\/store\/.*\/lib\/libGLX_nvidia\.so\.0/$escapedNvidia32Lib\/lib\/libGLX_nvidia\.so\.0/g" $out/usr/share/vulkan/icd.d/nvidia_icd32.json + fi + '' + (if (!nativeOnly) then '' mkdir -p steamrt ln -s ../lib/steam-runtime steamrt/${steam-runtime-wrapped.arch} ${lib.optionalString (steam-runtime-wrapped-i686 != null) '' @@ -245,7 +253,7 @@ in buildFHSUserEnv rec { ${lib.optionalString (steam-runtime-wrapped-i686 != null) '' ln -s /usr/lib32/libbz2.so usr/lib32/libbz2.so.1.0 ''} - ''; + ''); extraInstallCommands = '' mkdir -p $out/share/applications