nixos-lib/hardware/amd.nix
Antoine Viallon 9cbbc8ec6f
[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
2022-06-09 01:14:55 +02:00

49 lines
1.2 KiB
Nix

{ config, pkgs, lib, ... }:
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 = {
# for Southern Islands (SI ie. GCN 1) cards
"radeon.si_support" = 0;
"amdgpu.si_support" = 1;
# for Sea Islands (CIK ie. GCN 2) cards
"radeon.cik_support" = 0;
"amdgpu.cik_support" = 1;
"amdgpu.freesync_video" = 1;
"amdgpu.mes" = mkIf generalCfg.unsafeOptimizations 1;
};
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
];
};
}