{ config, pkgs, lib, inputs, ... }: { nixpkgs.overlays = [ inputs.nvidia-patch.overlays.default ]; imports = [ ./display.nix ]; hardware = { enableAllFirmware = true; cpu = { cores = 8; threads = 16; amd.updateMicrocode = true; }; nvidia = { # FIXME: https://github.com/icewind1991/nvidia-patch-nixos/issues/9 package = let nvidiaStable = config.boot.kernelPackages.nvidiaPackages.stable; maybeFbc = if builtins.hasAttr nvidiaStable.version pkgs.nvidia-patch-list.fbc then pkgs.nvidia-patch.patch-fbc nvidiaStable else nvidiaStable; nvidiaStableFinal = if builtins.hasAttr nvidiaStable.version pkgs.nvidia-patch-list.nvenc then pkgs.nvidia-patch.patch-nvenc maybeFbc else maybeFbc; in nvidiaStableFinal; open = true; powerManagement.enable = true; dynamicBoost.enable = true; prime = { offload = { enable = true; enableOffloadCmd = true; }; nvidiaBusId = "PCI:1:0:0"; amdgpuBusId = "PCI:6:0:0"; }; }; graphics = { enable32Bit = true; extraPackages = with pkgs; [ amdvlk driversi686Linux.amdvlk rocmPackages.clr rocmPackages.clr.icd ]; }; nvidia-container-toolkit.enable = config.virtualisation.containerd.enable || config.virtualisation.podman.enable; }; boot = { kernelParams = [ "amd_pstate=active" ]; kernelModules = [ "kvm-amd" ]; initrd.kernelModules = [ "nvme" "ahci" "usbhid" "amdgpu" "xhci_pci" "usb_storage" "usbcore" "sd_mod" "uas" "vfat" "nls_cp437" "nls_iso8859_1" ]; }; nixpkgs.config = { cudaSupport = true; rocmSupport = true; }; services = { xserver.videoDrivers = [ "nvidia" ]; fstrim.enable = true; tlp.settings.DISK_DEVICES = lib.mkDefault "nvme0n1 nvme1n1"; logind.lidSwitch = "ignore"; }; }