common/gpu/nvidia*: Migrate to common/gpu/nvidia/* and add non-prime

Fixes #338
This commit is contained in:
Tristan Daniël Maat
2022-11-13 01:32:01 +00:00
parent 062c3cca46
commit 7e60458d86
6 changed files with 57 additions and 29 deletions

View File

@@ -0,0 +1,8 @@
{ lib, pkgs, ... }:
{
services.xserver.videoDrivers = lib.mkDefault [ "nvidia" ];
hardware.opengl.extraPackages = with pkgs; [
vaapiVdpau
];
}

View 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" ];
}

View 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
};
}