2023-06-25 23:11:52 +02:00
|
|
|
{ config,
|
|
|
|
lib,
|
|
|
|
pkgs,
|
|
|
|
...
|
|
|
|
}:
|
|
|
|
|
|
|
|
let
|
|
|
|
inherit (lib) mkDefault mkEnableOption mkIf mkMerge;
|
|
|
|
cfg = config.hardware.asus.zephyrus.ga402x;
|
|
|
|
|
|
|
|
in {
|
|
|
|
imports = [
|
|
|
|
../shared.nix
|
|
|
|
];
|
|
|
|
|
|
|
|
options.hardware.asus.zephyrus.ga402x.amdgpu = {
|
|
|
|
recovery.enable = (mkEnableOption "Enable amdgpu.gpu_recovery kernel boot param") // { default = false; };
|
|
|
|
sg_display.enable = (mkEnableOption "Enable amdgpu.gpu_recovery kernel boot param") // { default = true; };
|
|
|
|
psr.enable = (mkEnableOption "Enable amdgpu.dcdebugmask=0x10 kernel boot param") // { default = true; };
|
|
|
|
};
|
|
|
|
|
|
|
|
config = mkMerge [
|
|
|
|
{
|
|
|
|
# AMD RX680
|
|
|
|
services.xserver.videoDrivers = mkDefault [ "amdgpu" ];
|
|
|
|
|
|
|
|
hardware = {
|
|
|
|
amdgpu.loadInInitrd = true;
|
2024-06-21 15:44:42 +02:00
|
|
|
graphics.extraPackages = with pkgs; [
|
2023-06-25 23:11:52 +02:00
|
|
|
vaapiVdpau
|
|
|
|
libvdpau-va-gl
|
|
|
|
];
|
|
|
|
};
|
|
|
|
}
|
|
|
|
|
|
|
|
(mkIf cfg.amdgpu.recovery.enable {
|
|
|
|
# Hopefully fixes for where the kernel sometimes hangs when suspending or hibernating
|
|
|
|
# (Though, I'm very suspicious of the Mediatek Wifi...)
|
|
|
|
boot.kernelParams = [
|
|
|
|
"amdgpu.gpu_recovery=1"
|
|
|
|
];
|
|
|
|
})
|
|
|
|
|
|
|
|
(mkIf (!cfg.amdgpu.sg_display.enable) {
|
|
|
|
# Can help solve flickering/glitching display issues since Scatter/Gather code was reenabled
|
|
|
|
boot.kernelParams = [
|
|
|
|
"amdgpu.sg_display=0"
|
|
|
|
];
|
|
|
|
})
|
|
|
|
|
|
|
|
(mkIf (!cfg.amdgpu.psr.enable) {
|
|
|
|
# Can help solve flickering/glitching display issues since Scatter/Gather code was reenabled
|
|
|
|
boot.kernelParams = [
|
|
|
|
"amdgpu.dcdebugmask=0x10"
|
|
|
|
];
|
|
|
|
})
|
|
|
|
];
|
|
|
|
}
|