From Fedora Project Wiki

Revision as of 14:48, 15 December 2021 by Bcotton (talk | contribs) (Change submitted to FESCo)

Wayland By Default with NVIDIA proprietary Driver

Summary

Enable Wayland sessions by default in GDM even with the NVIDIA proprietary driver.

Owner

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

  1. 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)
  2. Enable the rpmfusion “nonfree” repository to install the NVIDIA graphics drivers [4]
  3. 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
  4. Reboot the machine
  5. Ensure graphical login screen comes up
  6. Try to log into a "GNOME" session
  7. Check whether this is a "GNOME on Wayland" session (both $DISPLAY and $WAYLAND_DISPLAY are set)
  8. Log out
  9. Try to log into a "GNOME on Xorg" session
  10. 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


Release Notes