diff options
author | Atemu <atemu.main@gmail.com> | 2023-02-26 18:28:46 +0100 |
---|---|---|
committer | Atemu <atemu.main@gmail.com> | 2023-03-25 21:08:50 +0100 |
commit | bf1785d0a91d5d3bb0ef3c2afe031554f17a87e4 (patch) | |
tree | ac273997cec108d252f5eca3be6354c3ca3e286d /nixos/modules/hardware | |
parent | c4752a1631e46bde11bf8038f30e067c39b97cd4 (diff) | |
download | nixlib-bf1785d0a91d5d3bb0ef3c2afe031554f17a87e4.tar nixlib-bf1785d0a91d5d3bb0ef3c2afe031554f17a87e4.tar.gz nixlib-bf1785d0a91d5d3bb0ef3c2afe031554f17a87e4.tar.bz2 nixlib-bf1785d0a91d5d3bb0ef3c2afe031554f17a87e4.tar.lz nixlib-bf1785d0a91d5d3bb0ef3c2afe031554f17a87e4.tar.xz nixlib-bf1785d0a91d5d3bb0ef3c2afe031554f17a87e4.tar.zst nixlib-bf1785d0a91d5d3bb0ef3c2afe031554f17a87e4.zip |
nixos/opengl: add mesaPackage option
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; }; } |