From 40c0028586d51af9ba8afed995c8db9cc5d6ad6d Mon Sep 17 00:00:00 2001 From: LarsZauberer Date: Sun, 21 Apr 2024 22:02:51 +0200 Subject: [PATCH] Added nvidia driver 535 config --- options/common/gpu/nvidia_535_wayland.nix | 59 +++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 options/common/gpu/nvidia_535_wayland.nix diff --git a/options/common/gpu/nvidia_535_wayland.nix b/options/common/gpu/nvidia_535_wayland.nix new file mode 100644 index 0000000..30108f4 --- /dev/null +++ b/options/common/gpu/nvidia_535_wayland.nix @@ -0,0 +1,59 @@ +{ pkgs, config, libs, ... }: + +{ + + environment.variables = { + GBM_BACKEND = "nvidia-drm"; + WLR_NO_HARDWARE_CURSORS = "1"; + LIBVA_DRIVER_NAME = "nvidia"; + __GLX_VENDOR_LIBRARY_NAME = "nvidia"; + }; + + environment.systemPackages = with pkgs; [ + vulkan-loader + vulkan-validation-layers + vulkan-tools + ]; + +# Enable OpenGL + hardware.opengl = { + enable = true; + driSupport = true; + driSupport32Bit = true; + extraPackages = with pkgs; [ nvidia-vaapi-driver ]; + }; + +# Load nvidia driver for Xorg and Wayland + services.xserver.videoDrivers = ["nvidia"]; + + hardware.nvidia.modesetting.enable = true; + hardware.nvidia.powerManagement.enable = false; + hardware.nvidia.powerManagement.finegrained = false; + hardware.nvidia.open = false; + hardware.nvidia.nvidiaSettings = true; + hardware.nvidia.forceFullCompositionPipeline = false; + # package = config.boot.kernelPackages.nvidiaPackages.beta; +# Special config to load the latest (535 or 550) driver for the support of the 4070 SUPER + hardware.nvidia.package = let + rcu_patch = pkgs.fetchpatch { + url = "https://github.com/gentoo/gentoo/raw/c64caf53/x11-drivers/nvidia-drivers/files/nvidia-drivers-470.223.02-gpl-pfn_valid.patch"; + hash = "sha256-eZiQQp2S/asE7MfGvfe6dA/kdCvek9SYa/FFGp24dVg="; + }; + in config.boot.kernelPackages.nvidiaPackages.mkDriver { + version = "535.154.05"; + sha256_64bit = "sha256-fpUGXKprgt6SYRDxSCemGXLrEsIA6GOinp+0eGbqqJg="; + sha256_aarch64 = "sha256-G0/GiObf/BZMkzzET8HQjdIcvCSqB1uhsinro2HLK9k="; + openSha256 = "sha256-wvRdHguGLxS0mR06P5Qi++pDJBCF8pJ8hr4T8O6TJIo="; + settingsSha256 = "sha256-9wqoDEWY4I7weWW05F4igj1Gj9wjHsREFMztfEmqm10="; + persistencedSha256 = "sha256-d0Q3Lk80JqkS1B54Mahu2yY/WocOqFFbZVBh+ToGhaE="; + + #version = "550.40.07"; + #sha256_64bit = "sha256-KYk2xye37v7ZW7h+uNJM/u8fNf7KyGTZjiaU03dJpK0="; + #sha256_aarch64 = "sha256-AV7KgRXYaQGBFl7zuRcfnTGr8rS5n13nGUIe3mJTXb4="; + #openSha256 = "sha256-mRUTEWVsbjq+psVe+kAT6MjyZuLkG2yRDxCMvDJRL1I="; + #settingsSha256 = "sha256-c30AQa4g4a1EHmaEu1yc05oqY01y+IusbBuq+P6rMCs="; + #persistencedSha256 = "sha256-11tLSY8uUIl4X/roNnxf5yS2PQvHvoNjnd2CB67e870="; + + patches = [ rcu_patch ]; + }; +}