diff options
Diffstat (limited to 'nixos/modules/hardware')
-rw-r--r-- | nixos/modules/hardware/opengl.nix | 41 |
1 files changed, 33 insertions, 8 deletions
diff --git a/nixos/modules/hardware/opengl.nix b/nixos/modules/hardware/opengl.nix index 9108bcbd1652..2193f01613df 100644 --- a/nixos/modules/hardware/opengl.nix +++ b/nixos/modules/hardware/opengl.nix @@ -69,19 +69,48 @@ in package = mkOption { type = types.package; internal = true; + default = cfg.mesaPackage; description = lib.mdDoc '' The package that provides the OpenGL implementation. + + The default is Mesa's drivers which should cover all OpenGL-capable + hardware. If you want to use another Mesa version, adjust + {option}`mesaPackage`. ''; }; - package32 = mkOption { type = types.package; internal = true; + default = cfg.mesaPackage32; + description = lib.mdDoc '' + Same as {option}`package` but for the 32-bit OpenGL implementation on + 64-bit systems. Used when {option}`driSupport32Bit` is set. + ''; + }; + + mesaPackage = mkOption { + type = types.package; + default = pkgs.mesa; + defaultText = literalExpression "pkgs.mesa"; + example = literalExpression "pkgs.mesa_23"; description = lib.mdDoc '' - The package that provides the 32-bit OpenGL implementation on - 64-bit systems. Used when {option}`driSupport32Bit` is - set. + The Mesa driver package used for rendering support on the system. + + You should only need to adjust this if you require a newer Mesa + version for your hardware or because you need to patch a bug. ''; + apply = mesa: mesa.drivers or throw "`mesa` package must have a `drivers` output."; + }; + mesaPackage32 = mkOption { + type = types.package; + default = pkgs.pkgsi686Linux.mesa; + defaultText = literalExpression "pkgs.pkgsi686Linux.mesa"; + example = literalExpression "pkgs.pkgsi686Linux.mesa_23"; + description = lib.mdDoc '' + Same as {option}`mesaPackage` but for the 32-bit Mesa on 64-bit + systems. Used when {option}`driSupport32Bit` is set. + ''; + apply = mesa: mesa.drivers or throw "`mesa` package must have a `drivers` output."; }; extraPackages = mkOption { @@ -97,7 +126,6 @@ in ::: ''; }; - extraPackages32 = mkOption { type = types.listOf types.package; default = []; @@ -153,9 +181,6 @@ in environment.sessionVariables.LD_LIBRARY_PATH = mkIf cfg.setLdLibraryPath ([ "/run/opengl-driver/lib" ] ++ optional cfg.driSupport32Bit "/run/opengl-driver-32/lib"); - hardware.opengl.package = mkDefault pkgs.mesa.drivers; - hardware.opengl.package32 = mkDefault pkgs.pkgsi686Linux.mesa.drivers; - boot.extraModulePackages = optional (elem "virtualbox" videoDrivers) kernelPackages.virtualboxGuestAdditions; }; } |