AMD GPU: Difference between revisions
imported>Artturin clarify amdvlk |
imported>Thornycrackers No edit summary |
||
Line 18: | Line 18: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== Enable Southern Islands (SI) and Sea Islands (CIK) support == | |||
The linux package enables AMDGPU support [https://en.wikipedia.org/wiki/Radeon_HD_7000_series Southern Island (si)] and [https://en.wikipedia.org/wiki/Radeon_HD_8000_series Sea Island(cik)]. You can set kernel params to enable support | |||
<syntaxhighlight lang="nix"> | |||
# for Southern Islands (SI) cards | |||
boot.kernelParams = [ "radeon.si_support=0" "amdgpu.si_support=1" ]; | |||
# for Sea Islands (CIK) cards | |||
boot.kernelParams = [ "radeon.cik_support=0" "amdgpu.cik_support=1" ]; | |||
</syntaxhighlight> | |||
== OpenCL == | == OpenCL == |
Revision as of 15:44, 8 December 2020
This guide is about setting up NixOS to correctly use your Amd Graphics card if it is relatively new (aka, after the GCN architecture).
Make the kernel use the correct driver early
The kernel can load the correct driver right away (in hardware-configuration.nix):
boot.initrd.kernelModules = [ "amdgpu" ];
XServer
Make sure Xserver uses the `amdgpu` driver in your configuration.nix:
services.xserver.enable = true;
services.xserver.videoDrivers = [ "amdgpu" ];
Enable Southern Islands (SI) and Sea Islands (CIK) support
The linux package enables AMDGPU support Southern Island (si) and Sea Island(cik). You can set kernel params to enable support
# for Southern Islands (SI) cards
boot.kernelParams = [ "radeon.si_support=0" "amdgpu.si_support=1" ];
# for Sea Islands (CIK) cards
boot.kernelParams = [ "radeon.cik_support=0" "amdgpu.cik_support=1" ];
OpenCL
From 20.09, add this to your hardware-configuration.nix:
hardware.opengl.extraPackages = with pkgs; [
rocm-opencl-icd
rocm-opencl-runtime
];
You should also install the clinfo package to verify that Open CL is correctly setup (or check in the program you use to see if it is now available, such as in Darktable).
Vulkan
To enable vulkan
hardware.opengl.driSupport = true;
# For 32 bit applications
hardware.opengl.driSupport32Bit = true;
Starting from 20.09, the amdvlk drivers can be used in addition to the mesa radv drivers, the program will choose which one to use:
hardware.opengl.extraPackages = with pkgs; [
amdvlk
];
# For 32 bit applications
# Only available on unstable
hardware.opengl.extraPackages32 = with pkgs; [
driversi686Linux.amdvlk
];
more information can be found here https://nixos.org/manual/nixos/unstable/index.html#sec-gpu-accel-vulkan