testing nvidia prime offloading

This commit is contained in:
Gerg-L 2023-03-22 20:29:01 -04:00
parent ee95fa7ead
commit 70d19cb60f
5 changed files with 32 additions and 16 deletions

8
flake.lock generated
View file

@ -218,17 +218,17 @@
"nixpkgs-regression": "nixpkgs-regression" "nixpkgs-regression": "nixpkgs-regression"
}, },
"locked": { "locked": {
"lastModified": 1677045134, "lastModified": 1677713084,
"narHash": "sha256-jUc2ccTR8f6MGY2pUKgujm+lxSPNGm/ZAP+toX+nMNc=", "narHash": "sha256-5aCmGZbsFcLIckCDfvnPD4clGPQI7qYAqHYlttN/Wkg=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nix", "repo": "nix",
"rev": "4acc684ef7b3117c6d6ac12837398a0008a53d85", "rev": "70d01bdec1f9e2d9deba8198e99f2ad0a663d08c",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "NixOS", "owner": "NixOS",
"ref": "latest-release",
"repo": "nix", "repo": "nix",
"rev": "70d01bdec1f9e2d9deba8198e99f2ad0a663d08c",
"type": "github" "type": "github"
} }
}, },

View file

@ -4,8 +4,8 @@
master.url = "github:NixOS/nixpkgs"; master.url = "github:NixOS/nixpkgs";
unstable.url = "github:NixOS/nixpkgs/nixos-unstable"; unstable.url = "github:NixOS/nixpkgs/nixos-unstable";
stable.url = "github:NixOS/nixpkgs/nixos-22.11"; stable.url = "github:NixOS/nixpkgs/nixos-22.11";
#nix #nix 2.14
nix.url = "github:NixOS/nix/latest-release"; nix.url = "github:NixOS/nix/70d01bdec1f9e2d9deba8198e99f2ad0a663d08c";
#utilites --maybe flake-parts soon? #utilites --maybe flake-parts soon?
flake-utils.url = "github:numtide/flake-utils"; flake-utils.url = "github:numtide/flake-utils";
nixos-generators = { nixos-generators = {

View file

@ -35,28 +35,33 @@ EndSection
Section "ServerLayout" Section "ServerLayout"
Identifier "Layout[all]" Identifier "Layout[all]"
Screen "Screen-nvidia[0]"
Inactive "Device-amdgpu[0]"
Option "AllowNVIDIAGPUScreens" Option "AllowNVIDIAGPUScreens"
Screen "Screen-amdgpu[0]"
EndSection EndSection
Section "Device" Section "Device"
Identifier "Device-amdgpu[0]" Identifier "Device-amdgpu[0]"
Driver "amdgpu" Driver "amdgpu"
BusID "PCI:15:0:0" BusID "PCI:15:0:0"
EndSection
Section "Screen"
Identifier "Screen-amdgpu[0]"
Device "Device-amdgpu[0]"
EndSection EndSection
Section "Device" Section "Device"
Identifier "Device-nvidia[0]" Identifier "Device-nvidia[0]"
Driver "nvidia" Driver "nvidia"
BusID "PCI:1:0:0" BusID "PCI:1:0:0"
EndSection
Section "Screen"
Identifier "Screen-nvidia[0]"
Device "Device-nvidia[0]"
EndSection EndSection
@ -64,4 +69,3 @@ EndSection

View file

@ -40,6 +40,7 @@ inputs: {
services.xserver = { services.xserver = {
videoDrivers = ["nvidia" "amdgpu"]; videoDrivers = ["nvidia" "amdgpu"];
}; };
nixpkgs.config.allowUnfree = true; nixpkgs.config.allowUnfree = true;
environment.systemPackages = [ environment.systemPackages = [
@ -65,6 +66,13 @@ inputs: {
wrapProgram "$out/bin/webcord" --run 'rm $HOME/.config/WebCord/windowState.json' wrapProgram "$out/bin/webcord" --run 'rm $HOME/.config/WebCord/windowState.json'
''; '';
}) })
(pkgs.writeShellScriptBin "nvidia-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 "$@"
'')
]; ];
environment.etc."xdg/alacritty/alacritty.yml".source = "${self}/misc/alacritty.yml"; environment.etc."xdg/alacritty/alacritty.yml".source = "${self}/misc/alacritty.yml";

View file

@ -74,12 +74,16 @@ in {
users.users."${settings.username}".extraGroups = ["kvm" "libvirtd"]; users.users."${settings.username}".extraGroups = ["kvm" "libvirtd"];
#xrandr --setprovideroutputsource "AMD Radeon Graphics @ pci:0000:0f:00.0" NVIDIA-0
#xrandr --output DP-0 --mode 3440x1440 --rate 120 --primary --pos 0x0
#xrandr --output HDMI-A-1-0 --mode 1920x1080 --rate 144 --set TearFree on --pos 3440x360
#xset -dpms
#prime sync
services.xserver.displayManager.xserverArgs = lib.mkAfter ["-config /tmp/xorg.conf"]; services.xserver.displayManager.xserverArgs = lib.mkAfter ["-config /tmp/xorg.conf"];
services.xserver.displayManager.sessionCommands = lib.mkBefore '' services.xserver.displayManager.sessionCommands = lib.mkBefore ''
if ! (test -e "/tmp/ONE_MONITOR"); then if ! (test -e "/tmp/ONE_MONITOR"); then
xrandr --setprovideroutputsource "AMD Radeon Graphics @ pci:0000:0f:00.0" NVIDIA-0 xrandr --output DP-1-0 --auto --mode 3440x1440 --rate 120 --primary --pos 0x0
xrandr --output DP-0 --mode 3440x1440 --rate 120 --primary --pos 0x0 xrandr --output HDMI-A-0 --auto --mode 1920x1080 --rate 144 --set TearFree on --pos 3440x360
xrandr --output HDMI-A-1-0 --mode 1920x1080 --rate 144 --set TearFree on --pos 3440x360
xset -dpms xset -dpms
fi fi
''; '';