diff options
| -rw-r--r-- | hosts/shinji/default.nix | 1 | ||||
| -rw-r--r-- | options.nix | 1 | ||||
| -rw-r--r-- | pkgs/default.nix | 1 | ||||
| -rw-r--r-- | pkgs/low-latency-layer/default.nix | 37 | ||||
| -rw-r--r-- | system/amdgpu.nix | 28 | ||||
| -rw-r--r-- | system/default.nix | 1 |
6 files changed, 69 insertions, 0 deletions
diff --git a/hosts/shinji/default.nix b/hosts/shinji/default.nix index 0750d29..cbe6834 100644 --- a/hosts/shinji/default.nix +++ b/hosts/shinji/default.nix @@ -94,6 +94,7 @@ }; # modules + amdgpu.enable = true; battery.enable = true; bluetooth.enable = true; network.enable = true; diff --git a/options.nix b/options.nix index e3ab592..d1bb7cb 100644 --- a/options.nix +++ b/options.nix @@ -270,6 +270,7 @@ in { # # System modules # + amdgpu.enable = mkEnableOption "Enable amdgpu optimizations"; battery.enable = mkEnableOption "Install battery and power system services and programs."; bluetooth.enable = mkEnableOption "Install bluetooth system services and programs."; fingerprint.enable = mkEnableOption "Install fingerprint system services and programs."; diff --git a/pkgs/default.nix b/pkgs/default.nix index 3a31acf..032285b 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -6,6 +6,7 @@ astal = final.callPackage ./astal {}; libfprint-2-tod1-vfs0090 = final.callPackage ./libfprint-2-tod1-vfs0090 {inherit (prev) libfprint-2-tod1-vfs0090;}; solaar-udev-rules = final.callPackage ./solaar-udev-rules {}; + low-latency-layer = final.callPackage ./low-latency-layer {}; # change default jdk openjdk = final.openjdk25; diff --git a/pkgs/low-latency-layer/default.nix b/pkgs/low-latency-layer/default.nix new file mode 100644 index 0000000..c2ee993 --- /dev/null +++ b/pkgs/low-latency-layer/default.nix @@ -0,0 +1,37 @@ +{ + stdenv, + fetchFromGitHub, + cmake, + glslang, + vulkan-headers, + vulkan-loader, + vulkan-utility-libraries, + shaderc, +}: +stdenv.mkDerivation (finalAttrs: { + pname = "low_latency_layer"; + version = "0.2.0"; + + src = fetchFromGitHub { + owner = "Korthos-Software"; + repo = "low_latency_layer"; + tag = "v${finalAttrs.version}"; + hash = "sha256-mnGAH0m19wOkWEowpcPRHXQSc6HGYW+CFYxjPF2onk4="; + }; + + nativeBuildInputs = [ + cmake + glslang + ]; + + buildInputs = [ + vulkan-headers + vulkan-loader + vulkan-utility-libraries + shaderc + ]; + + cmakeFlags = [ + "-DCMAKE_BUILD_TYPE=Release" + ]; +}) diff --git a/system/amdgpu.nix b/system/amdgpu.nix new file mode 100644 index 0000000..de58a62 --- /dev/null +++ b/system/amdgpu.nix @@ -0,0 +1,28 @@ +{ + lib, + config, + pkgs, + ... +}: let + inherit (lib) mkIf; + cfg = config.amdgpu; +in { + config = mkIf cfg.enable { + # kernel modules + boot = { + initrd.kernelModules = ["amdgpu"]; + kernelModules = ["kvm-amd"]; + }; + + # AMD Anti-Lag + environment.systemPackages = [ pkgs.low-latency-layer ]; + environment.etc."vulkan/implicit_layer.d/low_latency_layer.json".source = "${pkgs.low-latency-layer}/share/vulkan/implicit_layer.d/low_latency_layer.json"; + + # Configuration + environment.variables = { + AMD_VULKAN_ICD = "RADV"; + RADV_ANTILAG = "1"; + LOW_LATENCY_LAYER = "1"; + }; + }; +} diff --git a/system/default.nix b/system/default.nix index 40ef029..39d41bc 100644 --- a/system/default.nix +++ b/system/default.nix @@ -16,6 +16,7 @@ in { ./desktops ./gaming ./virt + ./amdgpu.nix ./battery.nix ./bluetooth.nix ./desktop.nix |