From 973a31859d75de905bcdec43e3b1a51f0746d3c2 Mon Sep 17 00:00:00 2001 From: NullBite Date: Thu, 28 Dec 2023 01:03:46 -0500 Subject: [PATCH] convert nvidia-optimus.nix to specialisation --- hosts/slab/nvidia-optimus.nix | 61 ++++++++++++++++------------------- 1 file changed, 28 insertions(+), 33 deletions(-) diff --git a/hosts/slab/nvidia-optimus.nix b/hosts/slab/nvidia-optimus.nix index 3b74772..52aa6b5 100644 --- a/hosts/slab/nvidia-optimus.nix +++ b/hosts/slab/nvidia-optimus.nix @@ -3,44 +3,39 @@ { services.supergfxd.enable = true; - # Load nvidia driver for Xorg and Wayland - services.xserver.videoDrivers = ["amdgpu" "nvidia"]; + specialisation = { + nvidia.configuration = { + system.nixos.tags = [ "NVIDIA" ] - hardware.nvidia = { + # Load nvidia driver for Xorg and Wayland + services.xserver.videoDrivers = ["amdgpu" "nvidia"]; - # Modesetting is required. - modesetting.enable = false; + hardware.nvidia = { + # Use the NVidia open source kernel module (not to be confused with the + # independent third-party "nouveau" open source driver). + # Support is limited to the Turing and later architectures. Full list of + # supported GPUs is at: + # https://github.com/NVIDIA/open-gpu-kernel-modules#compatible-gpus + # Only available from driver 515.43.04+ + # Currently alpha-quality/buggy, so false is currently the recommended setting. + open = false; - # Nvidia power management. Experimental, and can cause sleep/suspend to fail. - powerManagement.enable = false; - # Fine-grained power management. Turns off GPU when not in use. - # Experimental and only works on modern Nvidia GPUs (Turing or newer). - powerManagement.finegrained = false; + # Enable the Nvidia settings menu, + # accessible via `nvidia-settings`. + nvidiaSettings = true; - # Use the NVidia open source kernel module (not to be confused with the - # independent third-party "nouveau" open source driver). - # Support is limited to the Turing and later architectures. Full list of - # supported GPUs is at: - # https://github.com/NVIDIA/open-gpu-kernel-modules#compatible-gpus - # Only available from driver 515.43.04+ - # Currently alpha-quality/buggy, so false is currently the recommended setting. - open = false; + # Optionally, you may need to select the appropriate driver version for your specific GPU. + package = config.boot.kernelPackages.nvidiaPackages.stable; - # Enable the Nvidia settings menu, - # accessible via `nvidia-settings`. - nvidiaSettings = true; - - # Optionally, you may need to select the appropriate driver version for your specific GPU. - package = config.boot.kernelPackages.nvidiaPackages.stable; - - prime = { - offload = { - enable = true; - enableOffloadCmd = true; - }; - amdgpuBusId = "PCI:07:00:0"; - nvidiaBusId = "PCI:01:00:0"; + prime = { + offload = { + enable = true; + enableOffloadCmd = true; + }; + amdgpuBusId = "PCI:07:00:0"; + nvidiaBusId = "PCI:01:00:0"; + }; + } }; }; } -