about summary refs log tree commit diff
path: root/pkgs/tools/graphics/mangohud
diff options
context:
space:
mode:
authorKira Bruneau <kira.bruneau@pm.me>2023-04-13 23:20:12 -0400
committerKira Bruneau <kira.bruneau@pm.me>2023-04-14 11:48:58 -0400
commit62bad427ffb0104cf5c577ca45557f7d3bce7faf (patch)
treed164950131e4b8c9628f6880f76bbe748dc41e1f /pkgs/tools/graphics/mangohud
parentd9cb109138cb32c7441794072e6fc122e8b08473 (diff)
mangohud: suport nvidia cards when directly using vulkan layer
Before this change, NVIDIA GPUs were only supported when using the
mangohud & mangoapp binaries.

This extends support to direct use of the Vulkan layer
(enabled through `MANGOHUD=1`).
Diffstat (limited to 'pkgs/tools/graphics/mangohud')
-rw-r--r--pkgs/tools/graphics/mangohud/default.nix20
1 files changed, 10 insertions, 10 deletions
diff --git a/pkgs/tools/graphics/mangohud/default.nix b/pkgs/tools/graphics/mangohud/default.nix
index 891f8806fab4f..82f2c65009a20 100644
--- a/pkgs/tools/graphics/mangohud/default.nix
+++ b/pkgs/tools/graphics/mangohud/default.nix
@@ -12,6 +12,7 @@
 , dbus
 , hwdata
 , mangohud32
+, addOpenGLRunpath
 , appstream
 , glslang
 , makeWrapper
@@ -28,7 +29,6 @@
 , glfw
 , nlohmann_json
 , xorg
-, addOpenGLRunpath
 , gamescopeSupport ? true # build mangoapp and mangohudctl
 }:
 
@@ -134,6 +134,7 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   nativeBuildInputs = [
+    addOpenGLRunpath
     appstream
     glslang
     makeWrapper
@@ -167,18 +168,17 @@ stdenv.mkDerivation (finalAttrs: {
       "$out/share/vulkan/implicit_layer.d/MangoHud.x86.json"
   '';
 
-  # Support Nvidia cards by adding OpenGL path and support overlaying
-  # Vulkan applications without requiring MangoHud to be installed
   postFixup = ''
+    # Add OpenGL driver path to RUNPATH to support NVIDIA cards
+    addOpenGLRunpath "$out/lib/mangohud/libMangoHud.so"
+    ${lib.optionalString gamescopeSupport ''
+      addOpenGLRunpath "$out/bin/mangoapp"
+    ''}
+
+    # Prefix XDG_DATA_DIRS to support overlaying Vulkan apps without
+    # requiring MangoHud to be installed
     wrapProgram "$out/bin/mangohud" \
-      --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ addOpenGLRunpath.driverLink ]} \
       --prefix XDG_DATA_DIRS : "$out/share"
-  '' + lib.optionalString (gamescopeSupport) ''
-    if [[ -e "$out/bin/mangoapp" ]]; then
-      wrapProgram "$out/bin/mangoapp" \
-        --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ addOpenGLRunpath.driverLink ]} \
-        --prefix XDG_DATA_DIRS : "$out/share"
-    fi
   '';
 
   meta = with lib; {