43 lines
887 B
Nix
43 lines
887 B
Nix
|
{
|
||
|
pkgs,
|
||
|
lib,
|
||
|
config,
|
||
|
...
|
||
|
}: {
|
||
|
nixosModules.gpuHardware = {gpuVendor ? null, ...}: {
|
||
|
hardware.opengl = {
|
||
|
# Always enable OpenGL support
|
||
|
enable = true;
|
||
|
|
||
|
# Dynamically select packages based on GPU vendor
|
||
|
extraPackages = with pkgs; (
|
||
|
# Base packages that are always included
|
||
|
[
|
||
|
mesa
|
||
|
libvdpau-va-gl
|
||
|
libva
|
||
|
libva-utils
|
||
|
]
|
||
|
# Vendor-specific packages
|
||
|
++ (
|
||
|
if gpuVendor == "intel"
|
||
|
then [
|
||
|
intel-vaapi-driver
|
||
|
intel-media-driver
|
||
|
]
|
||
|
else if gpuVendor == "amd"
|
||
|
then [
|
||
|
rocm-opencl-icd
|
||
|
]
|
||
|
else if gpuVendor == "nvidia"
|
||
|
then [
|
||
|
# Add Nvidia-specific packages if needed
|
||
|
nvidia-vaapi-driver
|
||
|
]
|
||
|
else []
|
||
|
)
|
||
|
);
|
||
|
};
|
||
|
};
|
||
|
}
|