{ config , lib , pkgs , inputs , ... }: { programs.corectrl = { enable = true; gpuOverclock.enable = true; }; systemd.tmpfiles.rules = [ "L+ /opt/rocm/hip - - - - ${pkgs.rocmPackages.clr}" "L+ /opt/rocm/rocblas - - - - ${pkgs.rocmPackages.rocblas}" "L+ /opt/rocm/hipblas - - - - ${pkgs.rocmPackages.hipblas}" "L+ /opt/rocm/clang - - - - ${pkgs.rocmPackages.llvm.clang}" "L+ /opt/rocm/runtime - - - - ${pkgs.rocmPackages.rocm-runtime}" ]; chaotic.mesa-git = { enable = true; extraPackages = with pkgs; [ mesa_git.opencl libva-vdpau-driver obs-studio-plugins.obs-vaapi # TODO check if obs is enabled gst_all_1.gstreamer gst_all_1.gst-vaapi ]; extraPackages32 = with pkgs; [ mesa32_git.opencl driversi686Linux.libva-vdpau-driver ]; }; hardware = { amdgpu = { opencl.enable = true; initrd.enable = true; }; graphics = { extraPackages = with pkgs; [ # rocmPackages.clr.icd libva-vdpau-driver obs-studio-plugins.obs-vaapi # TODO check if obs is enabled gst_all_1.gstreamer gst_all_1.gst-vaapi ]; extraPackages32 = with pkgs; [ driversi686Linux.libva-vdpau-driver ]; }; }; systemd.services.lactd = { enable = false; description = "Radeon GPU monitor"; after = [ "syslog.target" "systemd-modules-load.service" ]; unitConfig = { ConditionPathExists = "${pkgs.lact}/bin/lact"; }; serviceConfig = { User = "root"; ExecStart = "${pkgs.lact}/bin/lact daemon"; }; wantedBy = [ "multi-user.target" ]; }; # Force radv # environment.variables.AMD_VULKAN_ICD = "RADV"; environment.systemPackages = with pkgs; [ ## MONITORING TOOLS ## # nvtopPackages.amd # for AMD GPUs # broken ? # lact vulkan-tools libva-utils glxinfo # TODO right place here or in desktop ? clinfo wayland-utils # TODO move somewhere better ? # nixgl.nixGLIntel # nixgl.nixVulkanIntel ]; }