summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorK900 <me@0upti.me>2024-06-16 13:50:18 +0300
committerK900 <me@0upti.me>2024-06-16 14:11:33 +0300
commit98cef4c27326d0f9e521654441929c1c7c64f8e9 (patch)
tree7306c7495664017475f03f36c4efd878a79bb836
parent951601ccab7c3e8f9afa3ed78f2046863e6fa81d (diff)
treewide: big opengl cleanup
- rename hardware.opengl to hardware.graphics - remove hardware.opengl.driSupport, which does nothing - remove hardware.opengl.setLdLibraryPath, which should never be done - rename hardware.opengl.driSupport32Bit to hardware.graphics.enable32Bit - lost of small docs / formatting cleanups
-rw-r--r--nixos/doc/manual/configuration/gpu-accel.chapter.md28
-rw-r--r--nixos/doc/manual/configuration/x-windows.chapter.md2
-rw-r--r--nixos/modules/hardware/graphics.nix132
-rw-r--r--nixos/modules/hardware/opengl.nix158
-rw-r--r--nixos/modules/hardware/video/nvidia.nix4
-rw-r--r--nixos/modules/module-list.nix2
-rw-r--r--nixos/modules/programs/miriway.nix2
-rw-r--r--nixos/modules/programs/steam.nix7
-rw-r--r--nixos/modules/programs/turbovnc.nix4
-rw-r--r--nixos/modules/programs/wayland/wayland-session.nix2
-rw-r--r--nixos/modules/services/desktop-managers/lomiri.nix2
-rw-r--r--nixos/modules/services/display-managers/default.nix4
-rw-r--r--nixos/modules/services/hardware/amdvlk.nix4
-rw-r--r--nixos/modules/services/misc/graphical-desktop.nix2
-rw-r--r--nixos/modules/services/ttys/kmscon.nix2
-rw-r--r--nixos/modules/services/wayland/cage.nix2
-rw-r--r--nixos/modules/services/x11/desktop-managers/phosh.nix2
-rw-r--r--nixos/modules/services/x11/xserver.nix5
-rw-r--r--nixos/modules/virtualisation/docker.nix4
-rw-r--r--nixos/tests/armagetronad.nix2
-rw-r--r--nixos/tests/cagebreak.nix6
-rw-r--r--nixos/tests/monado.nix2
-rw-r--r--nixos/tests/openarena.nix2
-rw-r--r--nixos/tests/quake3.nix2
-rw-r--r--nixos/tests/seatd.nix2
-rw-r--r--nixos/tests/tinywl.nix2
-rw-r--r--pkgs/games/steam/fhsenv.nix2
27 files changed, 176 insertions, 212 deletions
diff --git a/nixos/doc/manual/configuration/gpu-accel.chapter.md b/nixos/doc/manual/configuration/gpu-accel.chapter.md
index 3b98bdd97c68..8afa2807b7b6 100644
--- a/nixos/doc/manual/configuration/gpu-accel.chapter.md
+++ b/nixos/doc/manual/configuration/gpu-accel.chapter.md
@@ -30,7 +30,7 @@ $ export \
```
The second mechanism is to add the OpenCL driver package to
-[](#opt-hardware.opengl.extraPackages).
+[](#opt-hardware.graphics.extraPackages).
This links the ICD file under `/run/opengl-driver`, where it will be visible
to the ICD loader.
@@ -51,12 +51,12 @@ Platform Vendor Advanced Micro Devices, Inc.
Modern AMD [Graphics Core
Next](https://en.wikipedia.org/wiki/Graphics_Core_Next) (GCN) GPUs are
supported through the rocmPackages.clr.icd package. Adding this package to
-[](#opt-hardware.opengl.extraPackages)
+[](#opt-hardware.graphics.extraPackages)
enables OpenCL support:
```nix
{
- hardware.opengl.extraPackages = [
+ hardware.graphics.extraPackages = [
rocmPackages.clr.icd
];
}
@@ -71,13 +71,13 @@ intel-compute-runtime package. The proprietary Intel OpenCL runtime, in
the intel-ocl package, is an alternative for Gen7 GPUs.
The intel-compute-runtime or intel-ocl package can be added to
-[](#opt-hardware.opengl.extraPackages)
+[](#opt-hardware.graphics.extraPackages)
to enable OpenCL support. For example, for Gen8 and later GPUs, the following
configuration can be used:
```nix
{
- hardware.opengl.extraPackages = [
+ hardware.graphics.extraPackages = [
intel-compute-runtime
];
}
@@ -90,8 +90,8 @@ compute API for GPUs. It is used directly by games or indirectly though
compatibility layers like
[DXVK](https://github.com/doitsujin/dxvk/wiki).
-By default, if [](#opt-hardware.opengl.driSupport)
-is enabled, mesa is installed and provides Vulkan for supported hardware.
+By default, if [](#opt-hardware.graphics.enable)
+is enabled, Mesa is installed and provides Vulkan for supported hardware.
Similar to OpenCL, Vulkan drivers are loaded through the *Installable
Client Driver* (ICD) mechanism. ICD files for Vulkan are JSON files that
@@ -110,7 +110,7 @@ $ export \
```
The second mechanism is to add the Vulkan driver package to
-[](#opt-hardware.opengl.extraPackages).
+[](#opt-hardware.graphics.extraPackages).
This links the ICD file under `/run/opengl-driver`, where it will be
visible to the ICD loader.
@@ -140,18 +140,18 @@ Modern AMD [Graphics Core
Next](https://en.wikipedia.org/wiki/Graphics_Core_Next) (GCN) GPUs are
supported through either radv, which is part of mesa, or the amdvlk
package. Adding the amdvlk package to
-[](#opt-hardware.opengl.extraPackages)
+[](#opt-hardware.graphics.extraPackages)
makes amdvlk the default driver and hides radv and lavapipe from the device list.
A specific driver can be forced as follows:
```nix
{
- hardware.opengl.extraPackages = [
+ hardware.graphics.extraPackages = [
pkgs.amdvlk
];
# To enable Vulkan support for 32-bit applications, also add:
- hardware.opengl.extraPackages32 = [
+ hardware.graphics.extraPackages32 = [
pkgs.driversi686Linux.amdvlk
];
@@ -171,7 +171,7 @@ graphics hardware acceleration capabilities for video processing.
VA-API drivers are loaded by `libva`. The version in nixpkgs is built to search
the opengl driver path, so drivers can be installed in
-[](#opt-hardware.opengl.extraPackages).
+[](#opt-hardware.graphics.extraPackages).
VA-API can be tested using:
@@ -185,7 +185,7 @@ Modern Intel GPUs use the iHD driver, which can be installed with:
```nix
{
- hardware.opengl.extraPackages = [
+ hardware.graphics.extraPackages = [
intel-media-driver
];
}
@@ -195,7 +195,7 @@ Older Intel GPUs use the i965 driver, which can be installed with:
```nix
{
- hardware.opengl.extraPackages = [
+ hardware.graphics.extraPackages = [
intel-vaapi-driver
];
}
diff --git a/nixos/doc/manual/configuration/x-windows.chapter.md b/nixos/doc/manual/configuration/x-windows.chapter.md
index 172f29723b01..362ae5d7e5df 100644
--- a/nixos/doc/manual/configuration/x-windows.chapter.md
+++ b/nixos/doc/manual/configuration/x-windows.chapter.md
@@ -79,7 +79,7 @@ Wine, you should also set the following:
```nix
{
- hardware.opengl.driSupport32Bit = true;
+ hardware.graphics.enable32Bit = true;
}
```
diff --git a/nixos/modules/hardware/graphics.nix b/nixos/modules/hardware/graphics.nix
new file mode 100644
index 000000000000..df41ee175d3d
--- /dev/null
+++ b/nixos/modules/hardware/graphics.nix
@@ -0,0 +1,132 @@
+{ config, lib, pkgs, ... }:
+let
+ cfg = config.hardware.graphics;
+
+ kernelPackages = config.boot.kernelPackages;
+
+ videoDrivers = config.services.xserver.videoDrivers;
+
+ driversEnv = pkgs.buildEnv {
+ name = "graphics-drivers";
+ paths = [ cfg.package ] ++ cfg.extraPackages;
+ };
+
+ driversEnv32 = pkgs.buildEnv {
+ name = "graphics-drivers-32bit";
+ paths = [ cfg.package32 ] ++ cfg.extraPackages32;
+ };
+in
+{
+ imports = [
+ (lib.mkRenamedOptionModule [ "services" "xserver" "vaapiDrivers" ] [ "hardware" "opengl" "extraPackages" ])
+ (lib.mkRemovedOptionModule [ "hardware" "opengl" "s3tcSupport" ] "S3TC support is now always enabled in Mesa.")
+ (lib.mkRemovedOptionModule [ "hardware" "opengl" "driSupport"] "The setting can be removed.")
+
+ (lib.mkRenamedOptionModule [ "hardware" "opengl" "enable"] [ "hardware" "graphics" "enable" ])
+ (lib.mkRenamedOptionModule [ "hardware" "opengl" "driSupport32Bit"] [ "hardware" "graphics" "enable32Bit" ])
+ (lib.mkRenamedOptionModule [ "hardware" "opengl" "package"] [ "hardware" "graphics" "package" ])
+ (lib.mkRenamedOptionModule [ "hardware" "opengl" "package32"] [ "hardware" "graphics" "package32" ])
+ (lib.mkRenamedOptionModule [ "hardware" "opengl" "extraPackages"] [ "hardware" "graphics" "extraPackages" ])
+ (lib.mkRenamedOptionModule [ "hardware" "opengl" "extraPackages32"] [ "hardware" "graphics" "extraPackages32" ])
+ ];
+
+ options.hardware.graphics = {
+ enable = lib.mkOption {
+ description = ''
+ Whether to enable hardware accelerated graphics drivers.
+
+ This is required to allow most graphical applications and
+ environments to use hardware rendering, video encode/decode
+ acceleration, etc.
+
+ This option should be enabled by default by the corresponding modules,
+ so you do not usually have to set it yourself.
+ '';
+ type = lib.types.bool;
+ default = false;
+ };
+
+ enable32Bit = lib.mkOption {
+ description = ''
+ On 64-bit systems, whether to also install 32-bit drivers for
+ 32-bit applications (such as Wine).
+ '';
+ type = lib.types.bool;
+ default = false;
+ };
+
+ package = lib.mkOption {
+ description = ''
+ The package that provides the default driver set.
+ '';
+ type = lib.types.package;
+ internal = true;
+ };
+
+ package32 = lib.mkOption {
+ description = ''
+ The package that provides the 32-bit driver set. Used when {option}`enable32Bit` is enabled.
+ set.
+ '';
+ type = lib.types.package;
+ internal = true;
+ };
+
+ extraPackages = lib.mkOption {
+ description = ''
+ Additional packages to add to the default graphics driver lookup path.
+ This can be used to add OpenCL drivers, VA-API/VDPAU drivers, etc.
+
+ ::: {.note}
+ intel-media-driver supports hardware Broadwell (2014) or newer. Older hardware should use the mostly unmaintained intel-vaapi-driver driver.
+ :::
+ '';
+ type = lib.types.listOf lib.types.package;
+ default = [];
+ example = lib.literalExpression "with pkgs; [ intel-media-driver intel-ocl intel-vaapi-driver ]";
+ };
+
+ extraPackages32 = lib.mkOption {
+ description = ''
+ Additional packages to add to 32-bit graphics driver lookup path on 64-bit systems.
+ Used when {option}`enable32Bit` is set. This can be used to add OpenCL drivers, VA-API/VDPAU drivers, etc.
+
+ ::: {.note}
+ intel-media-driver supports hardware Broadwell (2014) or newer. Older hardware should use the mostly unmaintained intel-vaapi-driver driver.
+ :::
+ '';
+ type = lib.types.listOf lib.types.package;
+ default = [];
+ example = lib.literalExpression "with pkgs.pkgsi686Linux; [ intel-media-driver intel-vaapi-driver ]";
+ };
+ };
+
+ config = lib.mkIf cfg.enable {
+ assertions = [
+ {
+ assertion = cfg.enable32Bit -> pkgs.stdenv.isx86_64;
+ message = "`hardware.graphics.enable32Bit` only makes sense on a 64-bit system.";
+ }
+ {
+ assertion = cfg.enable32Bit -> (config.boot.kernelPackages.kernel.features.ia32Emulation or false);
+ message = "`hardware.graphics.enable32Bit` requires a kernel that supports 32-bit emulation";
+ }
+ ];
+
+ systemd.tmpfiles.settings.graphics-driver = {
+ "/run/opengl-driver"."L+".argument = toString driversEnv;
+ "/run/opengl-driver-32" =
+ if pkgs.stdenv.isi686 then
+ { "L+".argument = "opengl-driver"; }
+ else if cfg.enable32Bit then
+ { "L+".argument = toString driversEnv32; }
+ else
+ { "r" = {}; };
+ };
+
+ hardware.graphics.package = lib.mkDefault pkgs.mesa.drivers;
+ hardware.graphics.package32 = lib.mkDefault pkgs.pkgsi686Linux.mesa.drivers;
+
+ boot.extraModulePackages = lib.optional (lib.elem "virtualbox" videoDrivers) kernelPackages.virtualboxGuestAdditions;
+ };
+}
diff --git a/nixos/modules/hardware/opengl.nix b/nixos/modules/hardware/opengl.nix
deleted file mode 100644
index 3ca9deec8961..000000000000
--- a/nixos/modules/hardware/opengl.nix
+++ /dev/null
@@ -1,158 +0,0 @@
-{ config, lib, pkgs, ... }:
-
-let
-
- cfg = config.hardware.opengl;
-
- kernelPackages = config.boot.kernelPackages;
-
- videoDrivers = config.services.xserver.videoDrivers;
-
- package = pkgs.buildEnv {
- name = "opengl-drivers";
- paths = [ cfg.package ] ++ cfg.extraPackages;
- };
-
- package32 = pkgs.buildEnv {
- name = "opengl-drivers-32bit";
- paths = [ cfg.package32 ] ++ cfg.extraPackages32;
- };
-
-in
-
-{
-
- imports = [
- (lib.mkRenamedOptionModule [ "services" "xserver" "vaapiDrivers" ] [ "hardware" "opengl" "extraPackages" ])
- (lib.mkRemovedOptionModule [ "hardware" "opengl" "s3tcSupport" ] "S3TC support is now always enabled in Mesa.")
- ];
-
- options = {
-
- hardware.opengl = {
- enable = lib.mkOption {
- description = ''
- Whether to enable OpenGL drivers. This is needed to enable
- OpenGL support in X11 systems, as well as for Wayland compositors
- like sway and Weston. It is enabled by default
- by the corresponding modules, so you do not usually have to
- set it yourself, only if there is no module for your wayland
- compositor of choice. See services.xserver.enable and
- programs.sway.enable.
- '';
- type = lib.types.bool;
- default = false;
- };
-
- driSupport = lib.mkOption {
- type = lib.types.bool;
- default = true;
- description = ''
- Whether to enable accelerated OpenGL rendering through the
- Direct Rendering Interface (DRI).
- '';
- };
-
- driSupport32Bit = lib.mkOption {
- type = lib.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 `nvidia` as well as
- `Mesa`.
- '';
- };
-
- package = lib.mkOption {
- type = lib.types.package;
- internal = true;
- description = ''
- The package that provides the OpenGL implementation.
- '';
- };
-
- package32 = lib.mkOption {
- type = lib.types.package;
- internal = true;
- description = ''
- The package that provides the 32-bit OpenGL implementation on
- 64-bit systems. Used when {option}`driSupport32Bit` is
- set.
- '';
- };
-
- extraPackages = lib.mkOption {
- type = lib.types.listOf lib.types.package;
- default = [];
- example = lib.literalExpression "with pkgs; [ intel-media-driver intel-ocl intel-vaapi-driver ]";
- description = ''
- Additional packages to add to OpenGL drivers.
- This can be used to add OpenCL drivers, VA-API/VDPAU drivers etc.
-
- ::: {.note}
- intel-media-driver supports hardware Broadwell (2014) or newer. Older hardware should use the mostly unmaintained intel-vaapi-driver driver.
- :::
- '';
- };
-
- extraPackages32 =lib. mkOption {
- type = lib.types.listOf lib.types.package;
- default = [];
- example = lib.literalExpression "with pkgs.pkgsi686Linux; [ intel-media-driver intel-vaapi-driver ]";
- description = ''
- Additional packages to add to 32-bit OpenGL drivers on 64-bit systems.
- Used when {option}`driSupport32Bit` is set. This can be used to add OpenCL drivers, VA-API/VDPAU drivers etc.
-
- ::: {.note}
- intel-media-driver supports hardware Broadwell (2014) or newer. Older hardware should use the mostly unmaintained intel-vaapi-driver driver.
- :::
- '';
- };
-
- setLdLibraryPath = lib.mkOption {
- type = lib.types.bool;
- internal = true;
- default = false;
- description = ''
- Whether the `LD_LIBRARY_PATH` environment variable
- should be set to the locations of driver libraries. Drivers which
- rely on overriding libraries should set this to true. Drivers which
- support `libglvnd` and other dispatch libraries
- instead of overriding libraries should not set this.
- '';
- };
- };
-
- };
-
- config = lib.mkIf cfg.enable {
- assertions = [
- { assertion = cfg.driSupport32Bit -> pkgs.stdenv.isx86_64;
- message = "Option driSupport32Bit only makes sense on a 64-bit system.";
- }
- { assertion = cfg.driSupport32Bit -> (config.boot.kernelPackages.kernel.features.ia32Emulation or false);
- message = "Option driSupport32Bit requires a kernel that supports 32bit emulation";
- }
- ];
-
- systemd.tmpfiles.settings.opengl = {
- "/run/opengl-driver"."L+".argument = toString package;
- "/run/opengl-driver-32" =
- if pkgs.stdenv.isi686 then
- { "L+".argument = "opengl-driver"; }
- else if cfg.driSupport32Bit then
- { "L+".argument = toString package32; }
- else
- { "r" = {}; };
- };
-
- environment.sessionVariables.LD_LIBRARY_PATH = lib.mkIf cfg.setLdLibraryPath
- ([ "/run/opengl-driver/lib" ] ++ lib.optional cfg.driSupport32Bit "/run/opengl-driver-32/lib");
-
- hardware.opengl.package = lib.mkDefault pkgs.mesa.drivers;
- hardware.opengl.package32 = lib.mkDefault pkgs.pkgsi686Linux.mesa.drivers;
-
- boot.extraModulePackages = lib.optional (lib.elem "virtualbox" videoDrivers) kernelPackages.virtualboxGuestAdditions;
- };
-}
diff --git a/nixos/modules/hardware/video/nvidia.nix b/nixos/modules/hardware/video/nvidia.nix
index ae5c2aa7a034..0274dfcaa70f 100644
--- a/nixos/modules/hardware/video/nvidia.nix
+++ b/nixos/modules/hardware/video/nvidia.nix
@@ -297,7 +297,7 @@ in
KERNEL=="nvidia_uvm", RUN+="${pkgs.runtimeShell} -c 'mknod -m 666 /dev/nvidia-uvm c $$(grep nvidia-uvm /proc/devices | cut -d \ -f 1) 0'"
KERNEL=="nvidia_uvm", RUN+="${pkgs.runtimeShell} -c 'mknod -m 666 /dev/nvidia-uvm-tools c $$(grep nvidia-uvm /proc/devices | cut -d \ -f 1) 1'"
'';
- hardware.opengl = {
+ hardware.graphics = {
extraPackages = [ nvidia_x11.out ];
extraPackages32 = [ nvidia_x11.lib32 ];
};
@@ -467,7 +467,7 @@ in
"egl/egl_external_platform.d".source = "/run/opengl-driver/share/egl/egl_external_platform.d/";
};
- hardware.opengl = {
+ hardware.graphics = {
extraPackages = [ pkgs.nvidia-vaapi-driver ];
extraPackages32 = [ pkgs.pkgsi686Linux.nvidia-vaapi-driver ];
};
diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix
index 77b39c6db353..8b5b6c148ec8 100644
--- a/nixos/modules/module-list.nix
+++ b/nixos/modules/module-list.nix
@@ -67,6 +67,7 @@
./hardware/gkraken.nix
./hardware/glasgow.nix
./hardware/gpgsmartcards.nix
+ ./hardware/graphics.nix
./hardware/hackrf.nix
./hardware/i2c.nix
./hardware/infiniband.nix
@@ -84,7 +85,6 @@
./hardware/new-lg4ff.nix
./hardware/nitrokey.nix
./hardware/onlykey/default.nix
- ./hardware/opengl.nix
./hardware/openrazer.nix
./hardware/opentabletdriver.nix
./hardware/pcmcia.nix
diff --git a/nixos/modules/programs/miriway.nix b/nixos/modules/programs/miriway.nix
index 00c1356ab083..418bb3dc4f2d 100644
--- a/nixos/modules/programs/miriway.nix
+++ b/nixos/modules/programs/miriway.nix
@@ -65,7 +65,7 @@ in {
};
};
- hardware.opengl.enable = lib.mkDefault true;
+ hardware.graphics.enable = lib.mkDefault true;
fonts.enableDefaultPackages = lib.mkDefault true;
programs.dconf.enable = lib.mkDefault true;
programs.xwayland.enable = lib.mkDefault true;
diff --git a/nixos/modules/programs/steam.nix b/nixos/modules/programs/steam.nix
index 5138588dbd3e..2ee464dc22d3 100644
--- a/nixos/modules/programs/steam.nix
+++ b/nixos/modules/programs/steam.nix
@@ -50,7 +50,7 @@ in {
}) // (prev.extraEnv or {});
extraLibraries = pkgs: let
prevLibs = if prev ? extraLibraries then prev.extraLibraries pkgs else [ ];
- additionalLibs = with config.hardware.opengl;
+ additionalLibs = with config.hardware.graphics;
if pkgs.stdenv.hostPlatform.is64bit
then [ package ] ++ extraPackages
else [ package32 ] ++ extraPackages32;
@@ -176,10 +176,9 @@ in {
};
config = lib.mkIf cfg.enable {
- hardware.opengl = { # this fixes the "glXChooseVisual failed" bug, context: https://github.com/NixOS/nixpkgs/issues/47932
+ hardware.graphics = { # this fixes the "glXChooseVisual failed" bug, context: https://github.com/NixOS/nixpkgs/issues/47932
enable = true;
- driSupport = true;
- driSupport32Bit = true;
+ enable32Bit = true;
};
security.wrappers = lib.mkIf (cfg.gamescopeSession.enable && gamescopeCfg.capSysNice) {
diff --git a/nixos/modules/programs/turbovnc.nix b/nixos/modules/programs/turbovnc.nix
index c28b7f7d7991..c7ab18a2e288 100644
--- a/nixos/modules/programs/turbovnc.nix
+++ b/nixos/modules/programs/turbovnc.nix
@@ -17,7 +17,7 @@ in
Whether to set up NixOS such that TurboVNC's built-in software OpenGL
implementation works.
- This will enable {option}`hardware.opengl.enable` so that OpenGL
+ This will enable {option}`hardware.graphics.enable` so that OpenGL
programs can find Mesa's llvmpipe drivers.
Setting this option to `false` does not mean that software
@@ -46,7 +46,7 @@ in
# can find the llvmpipe `swrast.so` software rendering DRI lib via `libglvnd`.
# This comment exists to explain why `hardware.` is involved,
# even though 100% software rendering is used.
- hardware.opengl.enable = true;
+ hardware.graphics.enable = true;
};
}
diff --git a/nixos/modules/programs/wayland/wayland-session.nix b/nixos/modules/programs/wayland/wayland-session.nix
index 877b10668470..09fb2a5f14b2 100644
--- a/nixos/modules/programs/wayland/wayland-session.nix
+++ b/nixos/modules/programs/wayland/wayland-session.nix
@@ -11,7 +11,7 @@
pam.services.swaylock = {};
};
- hardware.opengl.enable = lib.mkDefault true;
+ hardware.graphics.enable = lib.mkDefault true;
fonts.enableDefaultPackages = lib.mkDefault true;
programs = {
diff --git a/nixos/modules/services/desktop-managers/lomiri.nix b/nixos/modules/services/desktop-managers/lomiri.nix
index eec33597dc71..0b871aa38183 100644
--- a/nixos/modules/services/desktop-managers/lomiri.nix
+++ b/nixos/modules/services/desktop-managers/lomiri.nix
@@ -63,7 +63,7 @@ in {
];
# Copy-pasted basic stuff
- hardware.opengl.enable = lib.mkDefault true;
+ hardware.graphics.enable = lib.mkDefault true;
fonts.enableDefaultPackages = lib.mkDefault true;
programs.dconf.enable = lib.mkDefault true;
diff --git a/nixos/modules/services/display-managers/default.nix b/nixos/modules/services/display-managers/default.nix
index feba4b163ccd..9a7bd6c84b15 100644
--- a/nixos/modules/services/display-managers/default.nix
+++ b/nixos/modules/services/display-managers/default.nix
@@ -212,9 +212,7 @@ in
after = [ "acpid.service" "systemd-logind.service" "systemd-user-sessions.service" ];
restartIfChanged = false;
- environment = lib.optionalAttrs config.hardware.opengl.setLdLibraryPath {
- LD_LIBRARY_PATH = lib.makeLibraryPath [ pkgs.addOpenGLRunpath.driverLink ];
- } // cfg.environment;
+ environment = cfg.environment;
preStart = cfg.preStart;
script = lib.mkIf (config.systemd.services.display-manager.enable == true) cfg.execCmd;
diff --git a/nixos/modules/services/hardware/amdvlk.nix b/nixos/modules/services/hardware/amdvlk.nix
index 20879f2f21b4..32d6fb3be21d 100644
--- a/nixos/modules/services/hardware/amdvlk.nix
+++ b/nixos/modules/services/hardware/amdvlk.nix
@@ -31,11 +31,9 @@ in {
};
config = lib.mkIf cfg.enable {
- hardware.opengl = {
+ hardware.graphics = {
enable = true;
- driSupport = true;
extraPackages = [ cfg.package ];
- driSupport32Bit = cfg.support32Bit.enable;
extraPackages32 = [ cfg.support32Bit.package ];
};
diff --git a/nixos/modules/services/misc/graphical-desktop.nix b/nixos/modules/services/misc/graphical-desktop.nix
index a88c02e610bf..c8fe0d921c6a 100644
--- a/nixos/modules/services/misc/graphical-desktop.nix
+++ b/nixos/modules/services/misc/graphical-desktop.nix
@@ -38,7 +38,7 @@ in
fonts.enableDefaultPackages = lib.mkDefault true;
- hardware.opengl.enable = lib.mkDefault true;
+ hardware.graphics.enable = lib.mkDefault true;
programs.gnupg.agent.pinentryPackage = lib.mkOverride 1100 pkgs.pinentry-gnome3;
diff --git a/nixos/modules/services/ttys/kmscon.nix b/nixos/modules/services/ttys/kmscon.nix
index 74314e1e76e4..031c5bbb383e 100644
--- a/nixos/modules/services/ttys/kmscon.nix
+++ b/nixos/modules/services/ttys/kmscon.nix
@@ -107,7 +107,7 @@ in {
fonts = optional (cfg.fonts != null) "font-name=${lib.concatMapStringsSep ", " (f: f.name) cfg.fonts}";
in lib.concatStringsSep "\n" (render ++ fonts);
- hardware.opengl.enable = mkIf cfg.hwRender true;
+ hardware.graphics.enable = mkIf cfg.hwRender true;
fonts = mkIf (cfg.fonts != null) {
fontconfig.enable = true;
diff --git a/nixos/modules/services/wayland/cage.nix b/nixos/modules/services/wayland/cage.nix
index 91949f197cfe..870ae58f8646 100644
--- a/nixos/modules/services/wayland/cage.nix
+++ b/nixos/modules/services/wayland/cage.nix
@@ -101,7 +101,7 @@ in {
session required ${config.systemd.package}/lib/security/pam_systemd.so
'';
- hardware.opengl.enable = mkDefault true;
+ hardware.graphics.enable = mkDefault true;
systemd.targets.graphical.wants = [ "cage-tty1.service" ];
diff --git a/nixos/modules/services/x11/desktop-managers/phosh.nix b/nixos/modules/services/x11/desktop-managers/phosh.nix
index e8494b2c017c..12b39f927c01 100644
--- a/nixos/modules/services/x11/desktop-managers/phosh.nix
+++ b/nixos/modules/services/x11/desktop-managers/phosh.nix
@@ -216,7 +216,7 @@ in
security.pam.services.phosh = {};
- hardware.opengl.enable = mkDefault true;
+ hardware.graphics.enable = mkDefault true;
services.gnome.core-shell.enable = true;
services.gnome.core-os-services.enable = true;
diff --git a/nixos/modules/services/x11/xserver.nix b/nixos/modules/services/x11/xserver.nix
index 48cd8cef1347..57e83399eded 100644
--- a/nixos/modules/services/x11/xserver.nix
+++ b/nixos/modules/services/x11/xserver.nix
@@ -716,10 +716,7 @@ in
restartIfChanged = false;
- environment =
- optionalAttrs config.hardware.opengl.setLdLibraryPath
- { LD_LIBRARY_PATH = lib.makeLibraryPath [ pkgs.addOpenGLRunpath.driverLink ]; }
- // config.services.displayManager.environment;
+ environment = config.services.displayManager.environment;
preStart =
''
diff --git a/nixos/modules/virtualisation/docker.nix b/nixos/modules/virtualisation/docker.nix
index bcc649dcbec0..8a0894ed85c3 100644
--- a/nixos/modules/virtualisation/docker.nix
+++ b/nixos/modules/virtualisation/docker.nix
@@ -244,8 +244,8 @@ in
};
assertions = [
- { assertion = cfg.enableNvidia && pkgs.stdenv.isx86_64 -> config.hardware.opengl.driSupport32Bit or false;
- message = "Option enableNvidia on x86_64 requires 32bit support libraries";
+ { assertion = cfg.enableNvidia && pkgs.stdenv.isx86_64 -> config.hardware.graphics.enable32Bit or false;
+ message = "Option enableNvidia on x86_64 requires 32-bit support libraries";
}];
virtualisation.docker.daemon.settings = {
diff --git a/nixos/tests/armagetronad.nix b/nixos/tests/armagetronad.nix
index d59827354b77..ca93ce8fb6c5 100644
--- a/nixos/tests/armagetronad.nix
+++ b/nixos/tests/armagetronad.nix
@@ -12,7 +12,7 @@ let
{ pkgs, ... }:
{ imports = [ ./common/user-account.nix ./common/x11.nix ];
- hardware.opengl.driSupport = true;
+ hardware.graphics.enable = true;
virtualisation.memorySize = 256;
environment = {
systemPackages = [ pkgs.armagetronad ];
diff --git a/nixos/tests/cagebreak.nix b/nixos/tests/cagebreak.nix
index 1fef7cb57cfc..4d7664c1505f 100644
--- a/nixos/tests/cagebreak.nix
+++ b/nixos/tests/cagebreak.nix
@@ -14,9 +14,7 @@ in
};
nodes.machine = { config, ... }:
- let
- alice = config.users.users.alice;
- in {
+ {
# Automatically login on tty1 as a normal user:
imports = [ ./common/user-account.nix ];
services.getty.autologinUser = "alice";
@@ -31,7 +29,7 @@ in
fi
'';
- hardware.opengl.enable = true;
+ hardware.grap