Files
nixos/modules/gpu-amd.nix
Melvin Ragusa aa54b7c40b refactoring
2026-02-02 10:54:48 +01:00

65 lines
1.7 KiB
Nix

# modules/gpu-amd.nix
# AMD GPU configuration: drivers, Vulkan, VA-API hardware acceleration, CoreCtrl
{ config, pkgs, lib, ... }:
{
# Enable OpenGL/Vulkan
hardware.graphics = {
enable = true;
enable32Bit = true; # For Steam and 32-bit games
extraPackages = with pkgs; [
# VA-API for hardware video acceleration
vaapiVdpau
libvdpau-va-gl
# AMD-specific
amdvlk # AMD's official Vulkan driver (alternative to RADV)
rocmPackages.clr.icd # OpenCL support
];
extraPackages32 = with pkgs.driversi686Linux; [
# 32-bit VA-API support for older games
vaapiVdpau
libvdpau-va-gl
amdvlk
];
};
# Use RADV (Mesa) as default Vulkan driver - generally better for gaming
# AMDVLK is available as fallback via VK_ICD_FILENAMES
environment.variables = {
AMD_VULKAN_ICD = "RADV"; # Use RADV by default
};
# CoreCtrl for fan curves, overclocking, and GPU monitoring
programs.corectrl = {
enable = true;
gpuOverclock.enable = true; # Enable overclocking capabilities
};
# Add user to corectrl group for full access without password
users.users.pinj.extraGroups = [ "corectrl" ];
# Kernel parameters for AMD GPU
boot.kernelParams = [
# Enable all power management features
"amdgpu.ppfeaturemask=0xffffffff"
];
# GPU monitoring tools
environment.systemPackages = with pkgs; [
# Monitoring
radeontop # AMD GPU monitoring (like nvidia-smi)
nvtopPackages.amd # Modern GPU monitor with AMD support
# Vulkan tools
vulkan-tools # vulkaninfo, etc.
vulkan-loader
# Video acceleration verification
libva-utils # vainfo - verify VA-API
vdpauinfo # Verify VDPAU
];
}