Skip to content

Commit 3faf017

Browse files
committed
nixos/doc: update the status of Intel Graphics
xf86-video-intel is now incompatible with the latest Mesa: it may fix screen tearing, but this is not really worth the other downsides, so we should stop recommending it. We recommend `modesetting` unless the GPU is so old to be unsupported, and mention picom is screen tearing is too bad. Hopefully the next Xorg release will fix this.
1 parent d75618d commit 3faf017

File tree

2 files changed

+21
-32
lines changed

2 files changed

+21
-32
lines changed

nixos/doc/manual/configuration/x-windows.chapter.md

Lines changed: 18 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -116,48 +116,34 @@ using lightdm for a user `alice`:
116116

117117
## Intel Graphics drivers {#sec-x11--graphics-cards-intel}
118118

119-
There are two choices for Intel Graphics drivers in X.org: `modesetting`
120-
(included in the xorg-server itself) and `intel` (provided by the
121-
package xf86-video-intel).
122-
123-
The default and recommended is `modesetting`. It is a generic driver
124-
which uses the kernel [mode
125-
setting](https://en.wikipedia.org/wiki/Mode_setting) (KMS) mechanism. It
119+
The default and recommended driver for Intel Graphics in X.org is `modesetting`
120+
(included in the xorg-server package itself).
121+
This is a generic driver which uses the kernel [mode
122+
setting](https://en.wikipedia.org/wiki/Mode_setting) (KMS) mechanism, it
126123
supports Glamor (2D graphics acceleration via OpenGL) and is actively
127-
maintained but may perform worse in some cases (like in old chipsets).
128-
129-
The second driver, `intel`, is specific to Intel GPUs, but not
130-
recommended by most distributions: it lacks several modern features (for
131-
example, it doesn't support Glamor) and the package hasn't been
132-
officially updated since 2015.
133-
134-
The results vary depending on the hardware, so you may have to try both
135-
drivers. Use the option
136-
[](#opt-services.xserver.videoDrivers)
137-
to set one. The recommended configuration for modern systems is:
124+
maintained, it may perform worse in some cases (like in old chipsets).
138125

139-
```nix
140-
{
141-
services.xserver.videoDrivers = [ "modesetting" ];
142-
}
143-
```
126+
::: {.note}
127+
The `modesetting` driver doesn't currently provide a `TearFree` option (this
128+
will become available in an upcoming X.org release), So, without using a
129+
compositor (for example, see [](#opt-services.picom.enable)) you will
130+
experience screen tearing.
131+
:::
144132

145-
If you experience screen tearing no matter what, this configuration was
146-
reported to resolve the issue:
133+
There also used to be a second driver, `intel` (provided by the
134+
xf86-video-intel package), specific to older Intel iGPUs from generation 2 to
135+
9.
136+
This driver hasn't been maintained in years and was removed in NixOS 24.11
137+
after it stopped working. If you chipset is too old to be supported by
138+
`modesetting` and have no other choice you may try an unsupported NixOS version
139+
(reportedly working up to NixOS 24.05) and set
147140

148141
```nix
149142
{
150143
services.xserver.videoDrivers = [ "intel" ];
151-
services.xserver.deviceSection = ''
152-
Option "DRI" "2"
153-
Option "TearFree" "true"
154-
'';
155144
}
156145
```
157146

158-
Note that this will likely downgrade the performance compared to
159-
`modesetting` or `intel` with DRI 3 (default).
160-
161147
## Proprietary NVIDIA drivers {#sec-x11-graphics-cards-nvidia}
162148

163149
NVIDIA provides a proprietary driver for its graphics cards that has

nixos/doc/manual/release-notes/rl-2411.section.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -227,6 +227,9 @@
227227

228228
- The NVIDIA driver no longer defaults to the proprietary kernel module with versions >= 560. You will need to manually set `hardware.nvidia.open` to select the proprietary or open modules.
229229

230+
- The `intel` driver for the X server (`services.xserver.videoDrives = [ "intel" ]`) is no longer functional due to incompatibilities with the latest Mesa version.
231+
All users are strongly encouraged to switch to the generic `modesetting` driver (the default one) whenever possible, for more information see the manual chapter on [Intel Graphics](#sec-x11--graphics-cards-intel) and issue [#342763](https://github.com/NixOS/nixpkgs/issues/342763).
232+
230233
- The `(buildPythonPackage { ... }).override` and `(buildPythonPackage { ... }).overrideDerivation` attributes is now deprecated and removed in favour of `overridePythonAttrs` and `lib.overrideDerivation`.
231234
This change does not affect the override interface of most Python packages, as [`<pkg>.override`](https://nixos.org/manual/nixpkgs/unstable/#sec-pkg-override) provided by `callPackage` shadows such a locally-defined `override` attribute.
232235
The `<pkg>.overrideDerivation` attribute of Python packages called with `callPackage` will also remain available after this change.

0 commit comments

Comments
 (0)