diff --git a/common/gpu/intel/comet-lake/default.nix b/common/gpu/intel/comet-lake/default.nix index f5dd5ad..c4526f4 100644 --- a/common/gpu/intel/comet-lake/default.nix +++ b/common/gpu/intel/comet-lake/default.nix @@ -1,7 +1,5 @@ { imports = [ ../. ]; - boot.kernelParams = [ - "i915.enable_guc=2" - ]; + boot.kernelParams = [ "i915.enable_guc=2" ]; } diff --git a/common/gpu/intel/default.nix b/common/gpu/intel/default.nix index 43e5ffa..3a5c8d5 100644 --- a/common/gpu/intel/default.nix +++ b/common/gpu/intel/default.nix @@ -6,54 +6,58 @@ }: { imports = [ ../24.05-compat.nix ]; - options.hardware.intelgpu.driver = lib.mkOption { - description = "Intel GPU driver to use"; - type = lib.types.enum [ - "i915" - "xe" - ]; - default = "i915"; - }; - options.hardware.intelgpu.loadInInitrd = - lib.mkEnableOption "Load the Intel GPU kernel module at stage 1 boot. (Added to `boot.initrd.kernelModules`)" - // { - default = true; + options.hardware.intelgpu = { + driver = lib.mkOption { + description = "Intel GPU driver to use"; + type = lib.types.enum [ + "i915" + "xe" + ]; + default = "i915"; }; - config = { - boot.initrd.kernelModules = lib.optionals config.hardware.intelgpu.loadInInitrd [ - config.hardware.intelgpu.driver - ]; - - hardware.graphics.extraPackages = with pkgs; [ - ( - if (lib.versionOlder (lib.versions.majorMinor lib.version) "23.11") then - vaapiIntel - else - intel-vaapi-driver.override { enableHybridCodec = true; } - ) - intel-media-driver - ]; - - hardware.graphics.extraPackages32 = with pkgs.driversi686Linux; [ - ( - if (lib.versionOlder (lib.versions.majorMinor lib.version) "23.11") then - vaapiIntel - else - intel-vaapi-driver.override { enableHybridCodec = true; } - ) - intel-media-driver - ]; - - assertions = [ - { - assertion = ( - config.hardware.intelgpu.driver != "xe" - || lib.versionAtLeast config.boot.kernelPackages.kernel.version "6.8" - ); - message = "Intel Xe GPU driver is not supported on kernels earlier than 6.8. Update or use the i915 driver."; - } - ]; + loadInInitrd = + lib.mkEnableOption "Load the Intel GPU kernel module at stage 1 boot. (Added to `boot.initrd.kernelModules`)" + // { + default = true; + }; }; + + config = + let + cfg = config.hardware.intelgpu; + in + { + boot.initrd.kernelModules = lib.optionals cfg.loadInInitrd [ cfg.driver ]; + + hardware.graphics.extraPackages = with pkgs; [ + ( + if (lib.versionOlder (lib.versions.majorMinor lib.version) "23.11") then + vaapiIntel + else + intel-vaapi-driver.override { enableHybridCodec = true; } + ) + intel-media-driver + ]; + + hardware.graphics.extraPackages32 = with pkgs.driversi686Linux; [ + ( + if (lib.versionOlder (lib.versions.majorMinor lib.version) "23.11") then + vaapiIntel + else + intel-vaapi-driver.override { enableHybridCodec = true; } + ) + intel-media-driver + ]; + + assertions = [ + { + assertion = ( + cfg.driver != "xe" || lib.versionAtLeast config.boot.kernelPackages.kernel.version "6.8" + ); + message = "Intel Xe GPU driver is not supported on kernels earlier than 6.8. Update or use the i915 driver."; + } + ]; + }; } diff --git a/common/gpu/intel/elkhart-lake/default.nix b/common/gpu/intel/elkhart-lake/default.nix index f5dd5ad..c4526f4 100644 --- a/common/gpu/intel/elkhart-lake/default.nix +++ b/common/gpu/intel/elkhart-lake/default.nix @@ -1,7 +1,5 @@ { imports = [ ../. ]; - boot.kernelParams = [ - "i915.enable_guc=2" - ]; + boot.kernelParams = [ "i915.enable_guc=2" ]; } diff --git a/common/gpu/intel/jasper-lake/default.nix b/common/gpu/intel/jasper-lake/default.nix index f5dd5ad..c4526f4 100644 --- a/common/gpu/intel/jasper-lake/default.nix +++ b/common/gpu/intel/jasper-lake/default.nix @@ -1,7 +1,5 @@ { imports = [ ../. ]; - boot.kernelParams = [ - "i915.enable_guc=2" - ]; + boot.kernelParams = [ "i915.enable_guc=2" ]; } diff --git a/common/gpu/intel/sandy-bridge/default.nix b/common/gpu/intel/sandy-bridge/default.nix index 682815c..47d6b9a 100644 --- a/common/gpu/intel/sandy-bridge/default.nix +++ b/common/gpu/intel/sandy-bridge/default.nix @@ -3,7 +3,5 @@ # Enables RC6, RC6p and RC6pp. # Last two are only available on Sandy Bridge CPUs (circa 2011). - boot.kernelParams = [ - "i915.enable_rc6=7" - ]; + boot.kernelParams = [ "i915.enable_rc6=7" ]; }