diff --git a/nixos/doc/manual/configuration/x-windows.chapter.md b/nixos/doc/manual/configuration/x-windows.chapter.md index 2c77c638ca2d..9537d52b6934 100644 --- a/nixos/doc/manual/configuration/x-windows.chapter.md +++ b/nixos/doc/manual/configuration/x-windows.chapter.md @@ -123,6 +123,24 @@ setting](https://en.wikipedia.org/wiki/Mode_setting) (KMS) mechanism, it supports Glamor (2D graphics acceleration via OpenGL) and is actively maintained, it may perform worse in some cases (like in old chipsets). +There is a second driver, `intel` (provided by the xf86-video-intel package), +specific to older Intel iGPUs from generation 2 to 9. It is not recommended by +most distributions: it lacks several modern features (for example, it doesn't +support Glamor) and the package hasn't been officially updated since 2015. + +Third generation and older iGPUs (15-20+ years old) are not supported by the +`modesetting` driver (X will crash upon startup). Thus, the `intel` driver is +required for these chipsets. +Otherwise, the results vary depending on the hardware, so you may have to try +both drivers. Use the option +[](#opt-services.xserver.videoDrivers) +to set one. The recommended configuration for modern systems is: + +```nix +{ + services.xserver.videoDrivers = [ "modesetting" ]; +} +``` ::: {.note} The `modesetting` driver doesn't currently provide a `TearFree` option (this will become available in an upcoming X.org release), So, without using a @@ -130,20 +148,22 @@ compositor (for example, see [](#opt-services.picom.enable)) you will experience screen tearing. ::: -There also used to be a second driver, `intel` (provided by the -xf86-video-intel package), specific to older Intel iGPUs from generation 2 to -9. -This driver hasn't been maintained in years and was removed in NixOS 24.11 -after it stopped working. If you chipset is too old to be supported by -`modesetting` and have no other choice you may try an unsupported NixOS version -(reportedly working up to NixOS 24.05) and set +If you experience screen tearing no matter what, this configuration was +reported to resolve the issue: ```nix { services.xserver.videoDrivers = [ "intel" ]; + services.xserver.deviceSection = '' + Option "DRI" "2" + Option "TearFree" "true" + ''; } ``` +Note that this will likely downgrade the performance compared to +`modesetting` or `intel` with DRI 3 (default). + ## Proprietary NVIDIA drivers {#sec-x11-graphics-cards-nvidia} NVIDIA provides a proprietary driver for its graphics cards that has diff --git a/nixos/doc/manual/release-notes/rl-2411.section.md b/nixos/doc/manual/release-notes/rl-2411.section.md index 339c4bb38c36..f95073cd6fca 100644 --- a/nixos/doc/manual/release-notes/rl-2411.section.md +++ b/nixos/doc/manual/release-notes/rl-2411.section.md @@ -231,9 +231,6 @@ - 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. -- The `intel` driver for the X server (`services.xserver.videoDrives = [ "intel" ]`) is no longer functional due to incompatibilities with the latest Mesa version. - 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). - - The `(buildPythonPackage { ... }).override` and `(buildPythonPackage { ... }).overrideDerivation` attributes is now deprecated and removed in favour of `overridePythonAttrs` and `lib.overrideDerivation`. This change does not affect the override interface of most Python packages, as [`.override`](https://nixos.org/manual/nixpkgs/unstable/#sec-pkg-override) provided by `callPackage` shadows such a locally-defined `override` attribute. The `.overrideDerivation` attribute of Python packages called with `callPackage` will also remain available after this change.