From 9cbbc8ec6f3c38cc65a7f5a2f82230cee22849bd Mon Sep 17 00:00:00 2001 From: Antoine Viallon Date: Thu, 9 Jun 2022 01:14:55 +0200 Subject: [PATCH] [Hardware/AMD] Add performance tuning + rocm-smi Enable amdgpu support for two new class of GPUs Enable freesync Use new GPU scheduler if unsafeOptimizations is enabled Add amdvlk for vulkan support Allow to use proprietary AMD drivers if the user so wishes --- hardware/amd.nix | 35 ++++++++++++++++++++++++++++------- 1 file changed, 28 insertions(+), 7 deletions(-) diff --git a/hardware/amd.nix b/hardware/amd.nix index 102a357..626fac4 100644 --- a/hardware/amd.nix +++ b/hardware/amd.nix @@ -2,27 +2,48 @@ with lib; let cfg = config.aviallon.hardware.amd; + generalCfg = config.aviallon.general; in { options.aviallon.hardware.amd = { enable = mkEnableOption "AMD gpus"; + useProprietary = mkEnableOption "Use proprietary AMDGPU Pro"; }; config = mkIf (cfg.enable) { boot.initrd.kernelModules = [ "amdgpu" ]; - aviallon.boot.cmdline = {} + aviallon.boot.cmdline = { # for Southern Islands (SI ie. GCN 1) cards - // { "radeon.si_support" = 0; - "amdgpu.si_support" = 1; } + "radeon.si_support" = 0; + "amdgpu.si_support" = 1; # for Sea Islands (CIK ie. GCN 2) cards - // { "radeon.cik_support" = 0; - "amdgpu.cik_support" = 1; } - ; + "radeon.cik_support" = 0; + "amdgpu.cik_support" = 1; + "amdgpu.freesync_video" = 1; + "amdgpu.mes" = mkIf generalCfg.unsafeOptimizations 1; + }; - hardware.opengl.extraPackages = with pkgs; [ + environment.systemPackages = with pkgs; [ + rocm-smi + ]; + + services.xserver.videoDrivers = [] + ++ optional cfg.useProprietary "amdgpu-pro" + ++ [ + "amdgpu" + "radeon" + ]; + + hardware.opengl.extraPackages = with pkgs; mkIf (!cfg.useProprietary) [ rocm-opencl-icd rocm-opencl-runtime + amdvlk + ]; + + hardware.opengl.extraPackages32 = with pkgs.driversi686Linux; mkIf (!cfg.useProprietary) [ + amdvlk + mesa ]; }; }