mirror of
https://github.com/NixOS/nixos-hardware.git
synced 2025-11-05 01:37:24 +08:00
common/gpu/nvidia*: Migrate to common/gpu/nvidia/* and add non-prime
Fixes #338
This commit is contained in:
8
common/gpu/nvidia/default.nix
Normal file
8
common/gpu/nvidia/default.nix
Normal file
@@ -0,0 +1,8 @@
|
||||
{ lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
services.xserver.videoDrivers = lib.mkDefault [ "nvidia" ];
|
||||
hardware.opengl.extraPackages = with pkgs; [
|
||||
vaapiVdpau
|
||||
];
|
||||
}
|
||||
9
common/gpu/nvidia/disable.nix
Normal file
9
common/gpu/nvidia/disable.nix
Normal file
@@ -0,0 +1,9 @@
|
||||
{ lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
# This runs only intel/amdgpu igpus and nvidia dgpus do not drain power.
|
||||
|
||||
##### disable nvidia, very nice battery life.
|
||||
hardware.nvidiaOptimus.disable = lib.mkDefault true;
|
||||
boot.blacklistedKernelModules = lib.mkDefault [ "nouveau" "nvidia" ];
|
||||
}
|
||||
22
common/gpu/nvidia/prime.nix
Normal file
22
common/gpu/nvidia/prime.nix
Normal file
@@ -0,0 +1,22 @@
|
||||
{ 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 "$@"
|
||||
'';
|
||||
in {
|
||||
imports = [ ./. ];
|
||||
|
||||
environment.systemPackages = [ nvidia-offload ];
|
||||
|
||||
hardware.nvidia.prime = {
|
||||
offload.enable = lib.mkDefault true;
|
||||
# Hardware should specify the bus ID for intel/nvidia devices
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user