Add the option of whether to install the opencl environment and whether to use amdvlk for amdgpu

This commit is contained in:
ChaosAttractor 2023-01-28 23:46:56 +08:00
parent b7ac0a5602
commit 5af4dc5d52

View file

@ -6,11 +6,30 @@
) // { ) // {
default = true; default = true;
}; };
options.hardware.amdgpu.amdvlk = lib.mkEnableOption (lib.mdDoc
"use amdvlk drivers instead mesa radv drivers"
) // {
default = true;
};
options.hardware.amdgpu.opencl = lib.mkEnableOption (lib.mdDoc
"rocm opencl runtime (Install rocm-opencl-icd and rocm-opencl-runtime)"
) // {
default = true;
};
config = lib.mkMerge [ config = lib.mkMerge [
{ {
services.xserver.videoDrivers = lib.mkDefault [ "amdgpu" ]; services.xserver.videoDrivers = lib.mkDefault [ "amdgpu" ];
hardware.opengl = {
driSupport = lib.mkDefault true;
driSupport32Bit = lib.mkDefault true;
};
}
(lib.mkIf config.hardware.amdgpu.loadInInitrd {
boot.initrd.kernelModules = [ "amdgpu" ];
})
(lib.mkIf config.hardware.amdgpu.amdvlk {
hardware.opengl.extraPackages = with pkgs; [ hardware.opengl.extraPackages = with pkgs; [
rocm-opencl-icd rocm-opencl-icd
rocm-opencl-runtime rocm-opencl-runtime
@ -21,15 +40,13 @@
driversi686Linux.amdvlk driversi686Linux.amdvlk
]; ];
hardware.opengl = {
driSupport = lib.mkDefault true;
driSupport32Bit = lib.mkDefault true;
};
environment.variables.AMD_VULKAN_ICD = lib.mkDefault "RADV"; environment.variables.AMD_VULKAN_ICD = lib.mkDefault "RADV";
} })
(lib.mkIf config.hardware.amdgpu.loadInInitrd { (lib.mkIf config.hardware.amdgpu.opencl {
boot.initrd.kernelModules = [ "amdgpu" ]; hardware.opengl.extraPackages = with pkgs; [
rocm-opencl-icd
rocm-opencl-runtime
];
}) })
]; ];
} }