diff options
author | Shea Levy <shea@shealevy.com> | 2014-02-08 14:45:28 -0500 |
---|---|---|
committer | Shea Levy <shea@shealevy.com> | 2014-02-08 14:45:37 -0500 |
commit | dea562b6b920463395db47d141689e0768eb4836 (patch) | |
tree | 40fa4b0ee514c9ed9b430737451af8e8121dfda6 /nixos/modules/services | |
parent | 4a1e74673a2ead0e727f5a356fbccbd88c52dd91 (diff) | |
download | nixlib-dea562b6b920463395db47d141689e0768eb4836.tar nixlib-dea562b6b920463395db47d141689e0768eb4836.tar.gz nixlib-dea562b6b920463395db47d141689e0768eb4836.tar.bz2 nixlib-dea562b6b920463395db47d141689e0768eb4836.tar.lz nixlib-dea562b6b920463395db47d141689e0768eb4836.tar.xz nixlib-dea562b6b920463395db47d141689e0768eb4836.tar.zst nixlib-dea562b6b920463395db47d141689e0768eb4836.zip |
services.mesa -> hardware.opengl
Signed-off-by: Shea Levy <shea@shealevy.com>
Diffstat (limited to 'nixos/modules/services')
-rw-r--r-- | nixos/modules/services/ttys/kmscon.nix | 2 | ||||
-rw-r--r-- | nixos/modules/services/x11/mesa.nix | 121 | ||||
-rw-r--r-- | nixos/modules/services/x11/xserver.nix | 8 |
3 files changed, 5 insertions, 126 deletions
diff --git a/nixos/modules/services/ttys/kmscon.nix b/nixos/modules/services/ttys/kmscon.nix index 302e660a7bff..eb68a3d95d8f 100644 --- a/nixos/modules/services/ttys/kmscon.nix +++ b/nixos/modules/services/ttys/kmscon.nix @@ -73,6 +73,6 @@ in { hwaccel ''; - services.mesa.enable = mkIf cfg.hwRender true; + hardware.opengl.enable = mkIf cfg.hwRender true; }; } diff --git a/nixos/modules/services/x11/mesa.nix b/nixos/modules/services/x11/mesa.nix deleted file mode 100644 index 12fc7ae1178d..000000000000 --- a/nixos/modules/services/x11/mesa.nix +++ /dev/null @@ -1,121 +0,0 @@ -{ config, pkgs, pkgs_i686, ... }: -let - inherit (pkgs.lib) mkOption types mkIf optional optionals elem optionalString optionalAttrs; - - cfg = config.services.mesa; - - kernelPackages = config.boot.kernelPackages; -in { - options = { - services.mesa.enable = mkOption { - description = "Whether this configuration requires mesa."; - type = types.bool; - default = false; - internal = true; - }; - - services.mesa.driSupport = mkOption { - type = types.bool; - default = true; - description = '' - Whether to enable accelerated OpenGL rendering through the - Direct Rendering Interface (DRI). - ''; - }; - - services.mesa.driSupport32Bit = mkOption { - type = types.bool; - default = false; - description = '' - On 64-bit systems, whether to support Direct Rendering for - 32-bit applications (such as Wine). This is currently only - supported for the <literal>nvidia</literal> driver and for - <literal>mesa</literal>. - ''; - }; - - services.mesa.s3tcSupport = mkOption { - type = types.bool; - default = false; - description = '' - Make S3TC(S3 Texture Compression) via libtxc_dxtn available - to OpenGL drivers. It is essential for many games to work - with FOSS GPU drivers. - - Using this library may require a patent license depending on your location. - ''; - }; - - - services.mesa.videoDrivers = mkOption { - type = types.listOf types.str; - # !!! We'd like "nv" here, but it segfaults the X server. - default = [ "ati" "cirrus" "intel" "vesa" "vmware" ]; - example = [ "vesa" ]; - description = '' - The names of the video drivers that the mesa should - support. Mesa will try all of the drivers listed - here until it finds one that supports your video card. - ''; - }; - }; - - config = mkIf cfg.enable { - assertions = pkgs.lib.singleton { - assertion = cfg.driSupport32Bit -> pkgs.stdenv.isx86_64; - message = "Option driSupport32Bit only makes sens on a 64-bit system."; - }; - - system.activationScripts.setup-opengl.deps = []; - system.activationScripts.setup-opengl.text = '' - rm -f /run/opengl-driver{,-32} - ${optionalString (pkgs.stdenv.isi686) "ln -sf opengl-driver /run/opengl-driver-32"} - '' - #TODO: The OpenGL driver should depend on what's detected at runtime. - +( if elem "nvidia" cfg.videoDrivers then - '' - ln -sf ${kernelPackages.nvidia_x11} /run/opengl-driver - ${optionalString cfg.driSupport32Bit - "ln -sf ${pkgs_i686.linuxPackages.nvidia_x11.override { libsOnly = true; kernel = null; } } /run/opengl-driver-32"} - '' - else if elem "nvidiaLegacy173" cfg.videoDrivers then - "ln -sf ${kernelPackages.nvidia_x11_legacy173} /run/opengl-driver" - else if elem "nvidiaLegacy304" cfg.videoDrivers then - '' - ln -sf ${kernelPackages.nvidia_x11_legacy304} /run/opengl-driver - ${optionalString cfg.driSupport32Bit - "ln -sf ${pkgs_i686.linuxPackages.nvidia_x11_legacy304.override { libsOnly = true; kernel = null; } } /run/opengl-driver-32"} - '' - else if elem "ati_unfree" cfg.videoDrivers then - "ln -sf ${kernelPackages.ati_drivers_x11} /run/opengl-driver" - else - '' - ${optionalString cfg.driSupport "ln -sf ${pkgs.mesa_drivers} /run/opengl-driver"} - ${optionalString cfg.driSupport32Bit - "ln -sf ${pkgs_i686.mesa_drivers} /run/opengl-driver-32"} - '' - ); - - environment.variables.LD_LIBRARY_PATH = - [ "/run/opengl-driver/lib" "/run/opengl-driver-32/lib" ] - ++ optional cfg.s3tcSupport "${pkgs.libtxc_dxtn}/lib" - ++ optional (cfg.s3tcSupport && cfg.driSupport32Bit) "${pkgs_i686.libtxc_dxtn}/lib"; - - boot.extraModulePackages = - optional (elem "nvidia" cfg.videoDrivers) kernelPackages.nvidia_x11 ++ - optional (elem "nvidiaLegacy173" cfg.videoDrivers) kernelPackages.nvidia_x11_legacy173 ++ - optional (elem "nvidiaLegacy304" cfg.videoDrivers) kernelPackages.nvidia_x11_legacy304 ++ - optional (elem "virtualbox" cfg.videoDrivers) kernelPackages.virtualboxGuestAdditions ++ - optional (elem "ati_unfree" cfg.videoDrivers) kernelPackages.ati_drivers_x11; - - boot.blacklistedKernelModules = - optionals (elem "nvidia" cfg.videoDrivers) [ "nouveau" "nvidiafb" ]; - - environment.etc = (optionalAttrs (elem "ati_unfree" cfg.videoDrivers) { - "ati".source = "${kernelPackages.ati_drivers_x11}/etc/ati"; - }) - // (optionalAttrs (elem "nvidia" cfg.videoDrivers) { - "OpenCL/vendors/nvidia.icd".source = "${kernelPackages.nvidia_x11}/lib/vendors/nvidia.icd"; - }); - }; -} diff --git a/nixos/modules/services/x11/xserver.nix b/nixos/modules/services/x11/xserver.nix index 5600ce7fac13..2677f7584565 100644 --- a/nixos/modules/services/x11/xserver.nix +++ b/nixos/modules/services/x11/xserver.nix @@ -22,7 +22,7 @@ let virtualbox = { modules = [ kernelPackages.virtualboxGuestAdditions ]; driverName = "vboxvideo"; }; }; - driverNames = config.services.mesa.videoDrivers; + driverNames = config.hardware.opengl.videoDrivers; drivers = flip map driverNames (name: { inherit name; driverName = name; } // @@ -181,7 +181,7 @@ in description = '' The name of the video driver for your graphics card. This option is obsolete; please set the - <option>services.mesa.videoDrivers</option> instead. + <option>hardware.opengl.videoDrivers</option> instead. ''; }; @@ -381,8 +381,8 @@ in ###### implementation config = mkIf cfg.enable { - services.mesa.enable = true; - services.mesa.videoDrivers = mkIf (cfg.videoDriver != null) [ cfg.videoDriver ]; + hardware.opengl.enable = true; + hardware.opengl.videoDrivers = mkIf (cfg.videoDriver != null) [ cfg.videoDriver ]; assertions = [ { assertion = !(cfg.startOpenSSHAgent && cfg.startGnuPGAgent); |