From 1fb21a05439b34d3d8d2982ba9505eaf6217c72d Mon Sep 17 00:00:00 2001 From: Emmet Date: Sun, 16 Mar 2025 17:27:01 -0500 Subject: [PATCH] Better performance with alt gamescope session --- modules/system/gaming/default.nix | 55 +++++++++++++++++++++++++++++-- modules/user/hyprland/default.nix | 1 - 2 files changed, 53 insertions(+), 3 deletions(-) diff --git a/modules/system/gaming/default.nix b/modules/system/gaming/default.nix index df05ae57..e0f5a217 100644 --- a/modules/system/gaming/default.nix +++ b/modules/system/gaming/default.nix @@ -12,6 +12,22 @@ in { config = lib.mkIf cfg.enable { nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [ "steam" "steam-unwrapped" ]; + nixpkgs.config.packageOverrides = pkgs: { + steam = pkgs.steam.override { + extraPkgs = pkgs: with pkgs; [ + xorg.libXcursor + xorg.libXi + xorg.libXinerama + xorg.libXScrnSaver + libpng + libpulseaudio + libvorbis + stdenv.cc.cc.lib + libkrb5 + keyutils + ]; + }; + }; hardware.opengl.driSupport32Bit = true; programs.steam.enable = true; environment.systemPackages = with pkgs; @@ -24,8 +40,43 @@ in { ]; programs.gamemode.enable = true; programs.gamescope.enable = true; - programs.gamescope.capSysNice = true; - programs.steam.gamescopeSession.enable = true; + programs.gamescope.capSysNice = false; + programs.steam.gamescopeSession = { + enable = true; + env = { + WLR_RENDERER = "vulkan"; + DXVK_HDR = "1"; + ENABLE_GAMESCOPE_WSI = "1"; + WINE_FULLSCREEN_FSR = "1"; + # Games allegedly prefer X11 + #SDL_VIDEODRIVER = "x11"; + }; + args = [ + "--xwayland-count 2" + "--expose-wayland" + + "-e" # Enable steam integration + "--steam" + + "--adaptive-sync" + "--hdr-enabled" + "--hdr-itm-enable" + + # External monitor + "--prefer-output eDP-1" + "--output-width 1920" + "--output-height 1080" + # "-r 75" + + # Laptop display + # "--prefer-output eDP-1" + # "--output-width 2560" + # "--output-height 1600" + # "-r 120" + + "--prefer-vk-device 1002:1638" # lspci -nn | grep VGA + ]; + }; systemSettings.bluetooth.enable = true; hardware.bluetooth = { enable = true; diff --git a/modules/user/hyprland/default.nix b/modules/user/hyprland/default.nix index eaeb9f07..f46dc003 100644 --- a/modules/user/hyprland/default.nix +++ b/modules/user/hyprland/default.nix @@ -61,7 +61,6 @@ in "hyprprofile Default" "ydotoold" "GOMAXPROCS=1 syncthing --no-browser" - "STEAM_FRAME_FORCE_CLOSE=1 steam -silent" "protonmail-bridge --noninteractive" "sleep 5 && libinput-gestures" "obs-notification-mute-daemon"