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.
This commit is contained in:
TredwellGit 2021-01-05 06:50:20 +00:00 committed by Dominik Xaver Hörl
parent 6aa26c8623
commit e3d705e601
3 changed files with 13 additions and 15 deletions

View File

@ -150,7 +150,6 @@
<xref linkend="opt-services.xserver.videoDrivers"/> = [ "nvidiaLegacy390" ]; <xref linkend="opt-services.xserver.videoDrivers"/> = [ "nvidiaLegacy390" ];
<xref linkend="opt-services.xserver.videoDrivers"/> = [ "nvidiaLegacy340" ]; <xref linkend="opt-services.xserver.videoDrivers"/> = [ "nvidiaLegacy340" ];
<xref linkend="opt-services.xserver.videoDrivers"/> = [ "nvidiaLegacy304" ]; <xref linkend="opt-services.xserver.videoDrivers"/> = [ "nvidiaLegacy304" ];
<xref linkend="opt-services.xserver.videoDrivers"/> = [ "nvidiaLegacy173" ];
</programlisting> </programlisting>
You may need to reboot after enabling this driver to prevent a clash with You may need to reboot after enabling this driver to prevent a clash with
other kernel modules. other kernel modules.
@ -159,21 +158,16 @@
<simplesect xml:id="sec-x11--graphics-cards-amd"> <simplesect xml:id="sec-x11--graphics-cards-amd">
<title>Proprietary AMD drivers</title> <title>Proprietary AMD drivers</title>
<para> <para>
AMD provides a proprietary driver for its graphics cards that has better 3D AMD provides a proprietary driver for its graphics cards that is not
performance than the X.org drivers. It is not enabled by default because enabled by default because its not Free Software, is often broken
its not free software. You can enable it as follows: 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> <programlisting>
<xref linkend="opt-services.xserver.videoDrivers"/> = [ "ati_unfree" ]; <xref linkend="opt-services.xserver.videoDrivers"/> = [ "amdgpu-pro" ];
</programlisting> </programlisting>
You will need to reboot after enabling this driver to prevent a clash with You will need to reboot after enabling this driver to prevent a clash with
other kernel modules. other kernel modules.
</para> </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>
<simplesect xml:id="sec-x11-touchpads"> <simplesect xml:id="sec-x11-touchpads">
<title>Touchpads</title> <title>Touchpads</title>

View File

@ -539,6 +539,11 @@ self: super:
<package>imagemagick6Big</package> if you need the older version. <package>imagemagick6Big</package> if you need the older version.
</para> </para>
</listitem> </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> </itemizedlist>
</section> </section>

View File

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