perf: change offload to nvidia-offload

This commit is contained in:
DACHXY 2025-04-01 12:25:58 +08:00
parent 3ddbca3f7c
commit 67826a3658
17 changed files with 163 additions and 254 deletions

View file

@ -1,5 +1,6 @@
{
lib,
pkgs,
...
}:
@ -28,6 +29,11 @@
remotePlay.openFirewall = true;
dedicatedServer.openFirewall = true;
localNetworkGameTransfers.openFirewall = true;
extraPackages = with pkgs; [
mangohud
gamescope
];
};
};

View file

@ -7,7 +7,7 @@
}:
let
pkgs-unstable = inputs.hyprland.inputs.nixpkgs.legacyPackages.${system};
pkgs-hyprland = inputs.hyprland.inputs.nixpkgs.legacyPackages.${system};
in
{
hardware = {
@ -29,8 +29,8 @@ in
graphics = {
enable = true;
enable32Bit = true;
package32 = pkgs-unstable.pkgsi686Linux.mesa.drivers;
package = pkgs-unstable.mesa.drivers;
package32 = pkgs-hyprland.pkgsi686Linux.mesa;
package = pkgs-hyprland.mesa;
extraPackages = with pkgs; [
intel-media-driver # LIBVA_DRIVER_NAME=iHD
vaapiVdpau

View file

@ -17,14 +17,9 @@ in
lib,
...
}:
# Nvidia offload mode
let
offload = import ./offload.nix { inherit pkgs; };
in
lib.checkListOfEnum "Nvidia Prime Mode" validModes [ nvidia-mode ] {
environment.systemPackages = with pkgs; [
offload
nvtopPackages.nvidia
vulkan-loader
vulkan-validation-layers

View file

@ -1,10 +0,0 @@
{
pkgs,
}:
pkgs.writeShellScriptBin "offload" ''
export __NV_PRIME_RENDER_OFFLOAD=1
export __NV_PRIME_RENDER_OFFLOAD_PROVIDER=NVIDIA-G0
export __GLX_VENDOR_LIBRARY_NAME=nvidia
export __VK_LAYER_NV_optimus=NVIDIA_only
exec "$@"
''

View file

@ -27,7 +27,10 @@
xserver = {
enable = false;
xkb.layout = "us";
xkb = {
layout = "us";
options = "caps:swapescape";
};
};
# USB auto mount

View file

@ -3,12 +3,11 @@
offload ? false,
...
}:
{ pkgs, lib, ... }:
{ lib, ... }:
let
wallpaper = "3029865244";
assetsDir = "/mnt/windows/Users/danny/scoop/apps/steam/current/steamapps/common/wallpaper_engine/assets";
contentDir = "/mnt/windows/Users/danny/scoop/apps/steam/current/steamapps/workshop/content/431960";
offloadScript = import ./offload.nix { inherit pkgs; };
in
{
imports = [ ../extra/wallpaper-engine.nix ];
@ -16,7 +15,7 @@ in
enable = true;
assetsDir = assetsDir;
contentDir = contentDir;
extraPrefix = lib.mkIf offload "${offloadScript}/bin/offload";
extraPrefix = lib.mkIf offload "nvidia-offload";
fps = 30;
monitors = {
"DP-3" = {