Wayland By Default with NVIDIA proprietary Driver
Summary
Enable Wayland sessions by default in GDM even with the NVIDIA proprietary driver.
Owner
- Name: Olivier Fourdan
- Email: <ofourdan@redhat.com>
Current status
- Targeted release: Fedora Linux 36
- Last updated: 2021-12-15
- devel thread
- FESCo issue: #2714
- Tracker bug: <will be assigned by the Wrangler>
- Release notes tracker: <will be assigned by the Wrangler>
Detailed Description
Recent updates in NVIDIA proprietary driver allow Xwayland to benefit from hardware acceleration and X11 applications can have their rendering hardware accelerated.
That allowed to enable Wayland sessions even when the NVIDIA proprietary driver is used, but keeping Xorg the default in that case.
This proposal is to make Wayland by default with newer versions of the NVIDIA proprietary driver to remain consistent with other drivers.
GDM already has a set of udev rules which check for the driver and its version, so this would only require a tweak in the udev rules to make Wayland session the default with the next version of the NVIDIA driver [1].
Note that currently Xorg is also preferred in the case of multiple GPU, this would remain the case with this proposal.
This change is just about changing the default with NVIDIA proprietary driver on supported configurations, “GNOME on Xorg” still remains an option, just like with other drivers.
Feedback
Benefit to Fedora
Fedora has changed to Wayland by default since Fedora 22, but the NVIDIA proprietary driver has been an exception ever since (either because originally Wayland would be disabled with NVIDIA drivers, or more recently Xorg would be used by default).
Currently, when first installing Fedora on NVIDIA hardware, users get Wayland by default with the Open Source "nouveau" driver, with Xorg being an option in the login screen. If they later decide to enable the rpmfusion repository and install the NVIDIA proprietary driver, they get Xorg by default and Wayland as an option.
This change would make the default consistent regardless of the driver, for single GPU systems.
Scope
- Proposal owners: Tweak the gdm udev rule to enable Wayland with the NVIDIA proprietary driver above a given version [2]
- Other developers: Ray Strode for reviewing the changes in the udev rules from GDM
- Release engineering: This change doesn't affect release workflow
- Policies and guidelines: This change doesn't affect packaging guidelines
- Trademark approval: N/A (not needed for this Change)
- Alignment with Objectives: No
Upgrade/compatibility impact
How To Test
- Requires an NVIDIA GPU supported by the recent NVIDIA proprietary driver and
nvidia-drm.modeset=1
set in the kernel command line to enable KMS [3] (rpmfusion packages for the NVIDIA driver do that automatically) - Enable the rpmfusion “nonfree” repository to install the NVIDIA graphics drivers [4]
- Install the NVIDIA proprietary driver (and the
xorg-x11-drv-nvidia-power
package for suspend/resume support - see [5] and [6] for more details) from the rpmfusion repository - Reboot the machine
- Ensure graphical login screen comes up
- Try to log into a "GNOME" session
- Check whether this is a "GNOME on Wayland" session (both
$DISPLAY
and$WAYLAND_DISPLAY
are set) - Log out
- Try to log into a "GNOME on Xorg" session
- Check whether this is a "GNOME on Xorg" session (
$DISPLAY
is set,$WAYLAND_DISPLAY
is not set)
User Experience
Users with NVIDIA hardware and NVIDIA proprietary driver installed will get a Wayland session by default when selecting the "GNOME" session in the login screen.
Dependencies
This depends on the NVIDIA proprietary driver and its support for Wayland.
Typically, this proposal would change the default in a future version of the NVIDIA driver which is not released yet.
Contingency Plan
- Contingency mechanism: Revert the default to Xorg for NVIDIA driver by reverting the changes in the udev rule shipping with GDM
- Contingency deadline: Beta Freeze
- Blocks release? No
Documentation
NVIDIA's own documentation [7]:
* http://us.download.nvidia.com/XFree86/Linux-x86_64/495.44/README/kms.html * http://us.download.nvidia.com/XFree86/Linux-x86_64/495.44/README/xwayland.html * http://us.download.nvidia.com/XFree86/Linux-x86_64/495.44/README/gbm.html