From 62bad427ffb0104cf5c577ca45557f7d3bce7faf Mon Sep 17 00:00:00 2001 From: Kira Bruneau Date: Thu, 13 Apr 2023 23:20:12 -0400 Subject: 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`). --- pkgs/tools/graphics/mangohud/default.nix | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) (limited to 'pkgs/tools/graphics/mangohud') 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; { -- cgit 1.4.1