1
0
Fork 0
mirror of https://github.com/NixOS/nixos-hardware synced 2024-11-10 04:59:40 +01:00
nixos-hardware/common/gpu/intel/default.nix

63 lines
1.5 KiB
Nix
Raw Normal View History

{
2024-05-20 04:06:05 +02:00
config,
lib,
pkgs,
...
}:
{
2024-06-21 23:26:44 +02:00
imports = [ ../24.05-compat.nix ];
2024-05-20 04:06:05 +02:00
options.hardware.intelgpu.driver = lib.mkOption {
description = "Intel GPU driver to use";
type = lib.types.enum [
"i915"
"xe"
];
default = "i915";
};
2024-05-20 04:06:05 +02:00
options.hardware.intelgpu.loadInInitrd =
2024-07-29 23:37:28 +02:00
lib.mkEnableOption
"Load the Intel GPU kernel module at stage 1 boot. (Added to `boot.initrd.kernelModules`)"
2024-05-20 04:06:05 +02:00
// {
default = true;
};
config = {
boot.initrd.kernelModules = [ config.hardware.intelgpu.driver ];
2024-05-20 04:06:05 +02:00
environment.variables = {
2024-06-21 15:44:42 +02:00
VDPAU_DRIVER = lib.mkIf config.hardware.graphics.enable (lib.mkDefault "va_gl");
2024-05-20 04:06:05 +02:00
};
2024-05-14 14:47:54 +02:00
2024-06-21 15:44:42 +02:00
hardware.graphics.extraPackages = with pkgs; [
2024-05-20 04:06:05 +02:00
(
if (lib.versionOlder (lib.versions.majorMinor lib.version) "23.11") then
vaapiIntel
else
intel-vaapi-driver
)
intel-media-driver
];
2024-06-21 15:44:42 +02:00
hardware.graphics.extraPackages32 = with pkgs.driversi686Linux; [
2024-05-20 04:06:05 +02:00
(
if (lib.versionOlder (lib.versions.majorMinor lib.version) "23.11") then
vaapiIntel
else
intel-vaapi-driver
)
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.";
}
];
};
}