nixos/xserver: use modern video drivers

cirrus is obsolete: https://www.vintage3d.org/cirrus.php
nv is obsolete: https://www.phoronix.com/scan.php?page=article&item=nvidia_kills_nv&num=1
vesa is obsolete: https://www.phoronix.com/scan.php?page=news_item&px=Nzc3Nw
ati and ati_unfree are superseded by amdgpu and amdgpu-pro: https://wiki.gentoo.org/wiki/ATI_FAQ#Is_my_AMD.2FATI_board_supported.3F
nouveau and fbdev added for better fallback support.
wip/yesman
TredwellGit 3 years ago committed by Dominik Xaver Hörl
parent 6aa26c8623
commit e3d705e601
  1. 16
      nixos/doc/manual/configuration/x-windows.xml
  2. 5
      nixos/doc/manual/release-notes/rl-2105.xml
  3. 7
      nixos/modules/services/x11/xserver.nix

@ -150,7 +150,6 @@
<xref linkend="opt-services.xserver.videoDrivers"/> = [ "nvidiaLegacy390" ];
<xref linkend="opt-services.xserver.videoDrivers"/> = [ "nvidiaLegacy340" ];
<xref linkend="opt-services.xserver.videoDrivers"/> = [ "nvidiaLegacy304" ];
<xref linkend="opt-services.xserver.videoDrivers"/> = [ "nvidiaLegacy173" ];
</programlisting>
You may need to reboot after enabling this driver to prevent a clash with
other kernel modules.
@ -159,21 +158,16 @@
<simplesect xml:id="sec-x11--graphics-cards-amd">
<title>Proprietary AMD drivers</title>
<para>
AMD provides a proprietary driver for its graphics cards that has better 3D
performance than the X.org drivers. It is not enabled by default because
it’s not free software. You can enable it as follows:
AMD provides a proprietary driver for its graphics cards that is not
enabled by default because it’s not Free Software, is often broken
in nixpkgs and as of this writing doesn't offer more features or
performance. If you still want to use it anyway, you need to explicitly set:
<programlisting>
<xref linkend="opt-services.xserver.videoDrivers"/> = [ "ati_unfree" ];
<xref linkend="opt-services.xserver.videoDrivers"/> = [ "amdgpu-pro" ];
</programlisting>
You will need to reboot after enabling this driver to prevent a clash with
other kernel modules.
</para>
<note>
<para>
For recent AMD GPUs you most likely want to keep either the defaults
or <literal>"amdgpu"</literal> (both free).
</para>
</note>
</simplesect>
<simplesect xml:id="sec-x11-touchpads">
<title>Touchpads</title>

@ -539,6 +539,11 @@ self: super:
<package>imagemagick6Big</package> if you need the older version.
</para>
</listitem>
<listitem>
<para>
<xref linkend="opt-services.xserver.videoDrivers" /> no longer uses the deprecated <literal>cirrus</literal> and <literal>vesa</literal> device dependent X drivers by default. It also enables both <literal>amdgpu</literal> and <literal>nouveau</literal> drivers by default now.
</para>
</listitem>
</itemizedlist>
</section>

@ -251,11 +251,10 @@ in
videoDrivers = mkOption {
type = types.listOf types.str;
# !!! We'd like "nv" here, but it segfaults the X server.
default = [ "radeon" "cirrus" "vesa" "modesetting" ];
default = [ "amdgpu" "radeon" "nouveau" "modesetting" "fbdev" ];
example = [
"ati_unfree" "amdgpu" "amdgpu-pro"
"nv" "nvidia" "nvidiaLegacy390" "nvidiaLegacy340" "nvidiaLegacy304"
"nvidia" "nvidiaLegacy390" "nvidiaLegacy340" "nvidiaLegacy304"
"amdgpu-pro"
];
# TODO(@oxij): think how to easily add the rest, like those nvidia things
relatedPackages = concatLists

Loading…
Cancel
Save