feat(pstate): opt in changes and sooooo

This commit is contained in:
2025-09-29 19:28:33 +02:00
parent 725a3ed27e
commit 688e23d229
4 changed files with 45 additions and 37 deletions

View File

@@ -5,6 +5,7 @@
variant = "latest"; variant = "latest";
hardware = [ "amd" ]; hardware = [ "amd" ];
extraKernelParams = [ ]; extraKernelParams = [ ];
amdOverdrive.enable = true;
}; };
loader = { loader = {
default = { default = {

View File

@@ -5,7 +5,12 @@
... ...
}: }:
let let
inherit (lib) mkOption types; inherit (lib)
mkOption
types
mkEnableOption
mkIf
;
cfg = config.nixos.boot.kernel; cfg = config.nixos.boot.kernel;
hasHardware = hw: builtins.elem hw cfg.hardware; hasHardware = hw: builtins.elem hw cfg.hardware;
@@ -37,8 +42,11 @@ in
); );
default = [ ]; default = [ ];
description = "List of hardware types (e.g. GPU and CPU vendors) to configure kernel settings for."; description = "List of hardware types (e.g. GPU and CPU vendors) to configure kernel settings for.";
}; };
amdOverdrive.enable = mkEnableOption "Enable AMD pstate/overdrive";
extraKernelParams = mkOption { extraKernelParams = mkOption {
type = types.listOf types.str; type = types.listOf types.str;
default = [ ]; default = [ ];
@@ -74,7 +82,7 @@ in
"quiet" "quiet"
"splash" "splash"
] ]
++ (if hasHardware "amd" then [ "amd_pstate=active" ] else [ ]) ++ (if hasHardware "amd" then [ ] else [ ])
++ (if hasHardware "intel" then [ ] else [ ]) ++ (if hasHardware "intel" then [ ] else [ ])
++ (if hasHardware "nvidia" then [ ] else [ ]) ++ (if hasHardware "nvidia" then [ ] else [ ])
++ cfg.extraKernelParams; ++ cfg.extraKernelParams;
@@ -85,5 +93,6 @@ in
++ (if hasHardware "nvidia" then [ "nouveau" ] else [ ]) ++ (if hasHardware "nvidia" then [ "nouveau" ] else [ ])
++ cfg.extraBlacklistedModules; ++ cfg.extraBlacklistedModules;
}; };
hardware.amdgpu.overdrive.enable = mkIf cfg.amdOverdrive.enable true;
}; };
} }

View File

@@ -89,37 +89,39 @@ in
config = mkIf cfg.enable (mkMerge [ config = mkIf cfg.enable (mkMerge [
{ {
hardware.graphics = { hardware = {
enable = true; graphics = {
enable32Bit = true; enable = true;
extraPackages = flatten ( enable32Bit = true;
concatMap ( extraPackages = flatten (
vendor: concatMap (
if vendor == "amd" then vendor:
commonPackages ++ mesaVulkanPackages if vendor == "amd" then
else if vendor == "intel" then commonPackages ++ mesaVulkanPackages
commonPackages else if vendor == "intel" then
++ mesaVulkanPackages commonPackages
++ (with pkgs; [ ++ mesaVulkanPackages
vpl-gpu-rt ++ (with pkgs; [
intel-media-driver vpl-gpu-rt
intel-compute-runtime intel-media-driver
intel-vaapi-driver intel-compute-runtime
]) intel-vaapi-driver
else if vendor == "nvidia" then ])
commonPackages else if vendor == "nvidia" then
++ (with pkgs; [ commonPackages
nvidiaOffloadScript ++ (with pkgs; [
intel-media-driver nvidiaOffloadScript
nvidia-vaapi-driver intel-media-driver
vulkan-tools nvidia-vaapi-driver
]) vulkan-tools
else ])
[ ] else
) cfg.vendors [ ]
); ) cfg.vendors
);
extraPackages32 = flatten (concatMap (_: commonPackages32) cfg.vendors); extraPackages32 = flatten (concatMap (_: commonPackages32) cfg.vendors);
};
}; };
environment.systemPackages = flatten ( environment.systemPackages = flatten (
@@ -145,10 +147,6 @@ in
); );
} }
(mkIf (hasVendor "amd") {
hardware.amdgpu.overdrive.enable = true;
})
(mkIf (hasVendor "nvidia") { (mkIf (hasVendor "nvidia") {
hardware.nvidia = { hardware.nvidia = {
package = package =

View File

@@ -132,7 +132,7 @@
enable = true; enable = true;
}; };
syncthing = { syncthing = {
enable = true; enable = false;
}; };
udiskie = { udiskie = {
enable = true; enable = true;