Skip to content

Commit 3d14d80

Browse files
author
Tim Keller
committed
nixos/doc: update the status of Intel Graphics with fixed intel driver
xf86-video-intel is now working again due to a bug fix in Mesa. So this re-introduces the section on the intel driver and screen-tearing while discouraging its use generally.
1 parent 4958f38 commit 3d14d80

File tree

2 files changed

+27
-10
lines changed

2 files changed

+27
-10
lines changed

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

Lines changed: 27 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -123,27 +123,47 @@ setting](https://en.wikipedia.org/wiki/Mode_setting) (KMS) mechanism, it
123123
supports Glamor (2D graphics acceleration via OpenGL) and is actively
124124
maintained, it may perform worse in some cases (like in old chipsets).
125125

126+
There is a second driver, `intel` (provided by the xf86-video-intel package),
127+
specific to older Intel iGPUs from generation 2 to 9. It is not recommended by
128+
most distributions: it lacks several modern features (for example, it doesn't
129+
support Glamor) and the package hasn't been officially updated since 2015.
130+
131+
Third generation and older iGPUs (15-20+ years old) are not supported by the
132+
`modesetting` driver (X will crash upon startup). Thus, the `intel` driver is
133+
required for these chipsets.
134+
Otherwise, the results vary depending on the hardware, so you may have to try
135+
both drivers. Use the option
136+
[](#opt-services.xserver.videoDrivers)
137+
to set one. The recommended configuration for modern systems is:
138+
139+
```nix
140+
{
141+
services.xserver.videoDrivers = [ "modesetting" ];
142+
}
143+
```
126144
::: {.note}
127145
The `modesetting` driver doesn't currently provide a `TearFree` option (this
128146
will become available in an upcoming X.org release), So, without using a
129147
compositor (for example, see [](#opt-services.picom.enable)) you will
130148
experience screen tearing.
131149
:::
132150

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
151+
If you experience screen tearing no matter what, this configuration was
152+
reported to resolve the issue:
140153

141154
```nix
142155
{
143156
services.xserver.videoDrivers = [ "intel" ];
157+
services.xserver.deviceSection = ''
158+
Option "DRI" "2"
159+
Option "TearFree" "true"
160+
'';
144161
}
145162
```
146163

164+
Note that this will likely downgrade the performance compared to
165+
`modesetting` or `intel` with DRI 3 (default).
166+
147167
## Proprietary NVIDIA drivers {#sec-x11-graphics-cards-nvidia}
148168

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

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

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

232232
- 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.
233233

234-
- The `intel` driver for the X server (`services.xserver.videoDrives = [ "intel" ]`) is no longer functional due to incompatibilities with the latest Mesa version.
235-
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).
236-
237234
- The `(buildPythonPackage { ... }).override` and `(buildPythonPackage { ... }).overrideDerivation` attributes is now deprecated and removed in favour of `overridePythonAttrs` and `lib.overrideDerivation`.
238235
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.
239236
The `<pkg>.overrideDerivation` attribute of Python packages called with `callPackage` will also remain available after this change.

0 commit comments

Comments
 (0)