64 lines
		
	
	
	
		
			1.9 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			64 lines
		
	
	
	
		
			1.9 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
| {
 | |
|   config,
 | |
|   lib,
 | |
|   pkgs,
 | |
|   ...
 | |
| }: let
 | |
|   inherit (config.ooknet.hardware) gpu;
 | |
|   inherit (lib) mkIf mkDefault;
 | |
|   inherit (builtins) attrValues;
 | |
|   # production = config.boot.kernelPackages.nvidiaPackages.production;
 | |
|   inherit (config.boot.kernelPackages.nvidiaPackages) beta;
 | |
| in {
 | |
|   config = mkIf (gpu.type == "nvidia") {
 | |
|     # need this even if using wayland
 | |
|     services.xserver.videoDrivers = ["nvidia"];
 | |
|     hardware = {
 | |
|       nvidia = {
 | |
|         open = false;
 | |
|         package = beta;
 | |
|         forceFullCompositionPipeline = true;
 | |
|         nvidiaSettings = false;
 | |
|         nvidiaPersistenced = true;
 | |
|         modesetting.enable = true;
 | |
|         powerManagement = {
 | |
|           enable = mkDefault false;
 | |
|           finegrained = mkDefault false;
 | |
|         };
 | |
|       };
 | |
|       graphics = {
 | |
|         extraPackages = [pkgs.nvidia-vaapi-driver];
 | |
|         extraPackages32 = [pkgs.pkgsi686Linux.nvidia-vaapi-driver];
 | |
|       };
 | |
|     };
 | |
|     environment.systemPackages = attrValues {
 | |
|       inherit
 | |
|         (pkgs)
 | |
|         libva
 | |
|         libva-utils
 | |
|         vulkan-loader
 | |
|         vulkan-validation-layers
 | |
|         vulkan-tools
 | |
|         vulkan-extension-layer
 | |
|         mesa
 | |
|         ;
 | |
|       inherit (pkgs.nvtopPackages) nvidia;
 | |
|     };
 | |
|     environment.sessionVariables = {
 | |
|       LIBVA_DRIVER_NAME = "nvidia";
 | |
|       NVD_BACKEND = "direct";
 | |
|     };
 | |
| 
 | |
|     # https://github.com/ventureoo/nvidia-tweaks
 | |
|     services.udev.extraRules = ''
 | |
|       ACTION=="bind", SUBSYSTEM=="pci", DRIVERS=="nvidia", ATTR{vendor}=="0x10de", ATTR{class}=="0x03[0-9]*", TEST=="power/control", ATTR{power/control}="auto"
 | |
|       ACTION=="unbind", SUBSYSTEM=="pci", DRIVERS=="nvidia", ATTR{vendor}=="0x10de", ATTR{class}=="0x03[0-9]*", TEST=="power/control", ATTR{power/control}="on"
 | |
|     '';
 | |
|     boot.kernelParams = [
 | |
|       "nvidia.NVreg_UsePageAttributeTable=1"
 | |
|       "nvidia.NVreg_InitializeSystemMemoryAllocations=0"
 | |
|       "nvidia.NVreg_EnableStreamMemOPs=1"
 | |
|       "nvidia.NVreg_RegistryDwords=__REGISTRYDWORDS"
 | |
|     ];
 | |
|   };
 | |
| }
 |