mirror of
				https://github.com/NixOS/nixos-hardware.git
				synced 2025-11-04 17:27:14 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			27 lines
		
	
	
		
			766 B
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			27 lines
		
	
	
		
			766 B
		
	
	
	
		
			Nix
		
	
	
	
	
	
{ lib, pkgs, ... }:
 | 
						|
 | 
						|
# This creates a new 'nvidia-offload' program that runs the application passed to it on the GPU
 | 
						|
# As per https://nixos.wiki/wiki/Nvidia
 | 
						|
let
 | 
						|
  nvidia-offload = 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 -a "$0" "$@"
 | 
						|
  '';
 | 
						|
in
 | 
						|
{
 | 
						|
  services.xserver.videoDrivers = lib.mkDefault [ "nvidia" ];
 | 
						|
  environment.systemPackages = [ nvidia-offload ];
 | 
						|
 | 
						|
  hardware.nvidia.prime = {
 | 
						|
    offload.enable = lib.mkDefault true;
 | 
						|
    # Hardware should specify the bus ID for intel/nvidia devices
 | 
						|
  };
 | 
						|
 | 
						|
  hardware.opengl.extraPackages = with pkgs; [
 | 
						|
    vaapiVdpau
 | 
						|
  ];
 | 
						|
}
 |