Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: NixOS/nixpkgs
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: e85525245c89
Choose a base ref
...
head repository: NixOS/nixpkgs
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 11d204a9c4fa
Choose a head ref
  • 1 commit
  • 2 files changed
  • 1 contributor

Commits on Mar 22, 2019

  1. nixos docs: improve GPU driver documentation

    I'm not 100% sure about the incompatibility lines,
    but I believe it's better to discourage these anyway.
    If you find better information, feel free to amend...
    
    The 32-bit thing is completely GPU-agnostic, so I can't see why we had
    it separately for proprietary drivers and missing for the rest.
    vcunat committed Mar 22, 2019
    Copy the full SHA
    11d204a View commit details
Showing with 20 additions and 17 deletions.
  1. +14 −16 nixos/doc/manual/configuration/x-windows.xml
  2. +6 −1 nixos/modules/services/x11/xserver.nix
30 changes: 14 additions & 16 deletions nixos/doc/manual/configuration/x-windows.xml
Original file line number Diff line number Diff line change
@@ -35,8 +35,8 @@
</para>
<para>
NixOS’s default <emphasis>display manager</emphasis> (the program that
provides a graphical login prompt and manages the X server) is LightDM. You can
select an alternative one by picking one of the following lines:
provides a graphical login prompt and manages the X server) is LightDM. You
can select an alternative one by picking one of the following lines:
<programlisting>
<xref linkend="opt-services.xserver.displayManager.sddm.enable"/> = true;
<xref linkend="opt-services.xserver.displayManager.slim.enable"/> = true;
@@ -59,9 +59,16 @@
<screen>
# systemctl start display-manager.service
</screen>
</para>
<para>
On 64-bit systems, if you want OpenGL for 32-bit programs such as in Wine,
you should also set the following:
<programlisting>
<xref linkend="opt-hardware.opengl.driSupport32Bit"/> = true;
</programlisting>
</para>
<simplesect xml:id="sec-x11-graphics-cards-nvidia">
<title>NVIDIA Graphics Cards</title>
<title>Proprietary NVIDIA drivers</title>
<para>
NVIDIA 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
@@ -71,23 +78,17 @@
</programlisting>
Or if you have an older card, you may have to use one of the legacy drivers:
<programlisting>
<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.
</para>
<para>
On 64-bit systems, if you want full acceleration for 32-bit programs such as
Wine, you should also set the following:
<programlisting>
<xref linkend="opt-hardware.opengl.driSupport32Bit"/> = true;
</programlisting>
</para>
</simplesect>
<simplesect xml:id="sec-x11--graphics-cards-amd">
<title>AMD Graphics Cards</title>
<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
@@ -99,11 +100,8 @@
other kernel modules.
</para>
<para>
On 64-bit systems, if you want full acceleration for 32-bit programs such as
Wine, you should also set the following:
<programlisting>
<xref linkend="opt-hardware.opengl.driSupport32Bit"/> = true;
</programlisting>
Note: for recent AMD GPUs you most likely want to keep either the defaults
or <literal>"amdgpu"</literal> (both free).
</para>
</simplesect>
<simplesect xml:id="sec-x11-touchpads">
7 changes: 6 additions & 1 deletion nixos/modules/services/x11/xserver.nix
Original file line number Diff line number Diff line change
@@ -246,7 +246,7 @@ in
default = [ "ati" "cirrus" "vesa" "vmware" "modesetting" ];
example = [
"ati_unfree" "amdgpu" "amdgpu-pro"
"nv" "nvidia" "nvidiaLegacy340" "nvidiaLegacy304"
"nv" "nvidia" "nvidiaLegacy390" "nvidiaLegacy340" "nvidiaLegacy304"
];
# TODO(@oxij): think how to easily add the rest, like those nvidia things
relatedPackages = concatLists
@@ -259,6 +259,11 @@ in
The names of the video drivers the configuration
supports. They will be tried in order until one that
supports your card is found.
Don't combine those with "incompatible" OpenGL implementations,
e.g. free ones (mesa-based) with proprietary ones.
For unfree "nvidia*", the supported GPU lists are on
https://www.nvidia.com/object/unix.html
'';
};