Files
nix-config/modules/hardware/amd-gpu.nix
2025-04-14 17:42:21 +02:00

69 lines
2.1 KiB
Nix

{ lib, config, pkgs, inputs, pkgsVersion, ... }:
let cfg = config.custom.hardware.amd-gpu;
in {
options.custom.hardware.amd-gpu = {
enable = lib.mkEnableOption "Enables amd gpus";
};
config =
let
mesa-new = pkgs.mesa.overrideAttrs (oldAttrs: {
src = pkgs.fetchFromGitLab {
domain = "gitlab.freedesktop.org";
owner = "mesa";
repo = "mesa";
rev = "f23b376e847602d4fe7976f3bbb877dfd9d8b417";
hash = "sha256-prPhezquh63OFkFdYNCRN1OkdwA+CTu88hUoHQD5kCw=";
};
});
#mesa-new = pkgs.mesa-git.mesa.overrideAttrs (oldAttrs: {
# src = pkgs.fetchFromGitLab {
# domain = "gitlab.freedesktop.org";
# owner = "hakzsam";
# repo = "mesa";
# rev = "9238ae542f15e4566430a540817e15a8ec079a59";
# hash = "sha256-c/iV/V7m3GuatEuybaetHVIPm66/a6lC1wvV/GGtvnQ=";
# };
#});
in
lib.mkIf cfg.enable {
boot.kernelParams =
[ "amdgpu.ppfeaturemask=0xfff7ffff" "split_lock_detect=off" ];
hardware.graphics = {
enable = true;
enable32Bit = true;
package = lib.mkForce mesa-new.drivers;
#extraPackages = with pkgs; [ mesa-git.amdvlk ];
#extraPackages = with pkgs; [ rocmPackages.clr.icd ];
};
hardware.amdgpu.initrd.enable = lib.mkDefault true;
services.xserver.videoDrivers = [ "amdgpu" ];
# controller (overclock, undervolt, fan curves)
environment.systemPackages = with pkgs; [
lact
nvtopPackages.amd
amdgpu_top
];
systemd.packages = with pkgs; [ lact ];
systemd.services.lactd.wantedBy = [ "multi-user.target" ];
#rocm
#systemd.tmpfiles.rules =
# let
# rocmEnv = pkgs.symlinkJoin {
# name = "rocm-combined";
# paths = with pkgs.rocmPackages; [
# rocblas
# hipblas
# clr
# ];
# };
# in
# [
# "L+ /opt/rocm - - - - ${rocmEnv}"
# ];
};
}