6. Enable Xwayland with NVIDIA 550.54.14 / 545.29.06 / 535.161.07 / 525.147.05 / 470.239.06 proprietary drivers on openSUSE Leap 15.5 / 15.4 / Tumbleweed and Gnome 44/43/42/41 desktop

This is guide, howto enable NVIDIA accelerated 3D rendering and Xwayland (Wayland) on on openSUSE Leap 15.4 / Tumbleweed with NVIDIA 550.54.14 / 545.29.06 / 535.161.07 / 525.147.05 / 470.239.06 proprietary drivers on GNOME 45/44/43/42. Tested with latest NVIDIA drivers, I assume here that you have installed NVIDIA drivers using this guide. This might work normally with any other installation methods too, but it’s not tested.

Note: Do this using fully updated system and latest kernel, also NVIDIA 550.54.14 / 545.29.06 / 535.161.07 / 525.147.05 / 470.239.06 drivers installed. Check also NVIDIA’s own guide for this OpenGL and Vulkan on Xwayland.

Check video guide, howto enable openSUSE Tumbleweed/Leap 15.5 Xwayland/Wayland + NVIDIA 550.54.14 / 545.29.06 / 535.161.07 / 525.147.05 / 470.239.06 on GNOME 42/41:

Check video guide, howto enable openSUSE Tumbleweed/Leap 15.4 Xwayland/Wayland + NVIDIA 550.54.14 / 545.29.06 / 535.161.07 / 525.147.05 / 470.239.06 on GNOME 42/41:

Before you start you will at least following packages installed:

  • Xwayland >= 21.1.1.901
  • libxcb >= 1.13
  • egl-wayland >= 1.1.7

Check your packages using following command:

zypper search -si xwayland libxcb1 libwayland-egl1

If some missing, then install all using following command:

zypper install xwayland libxcb1 libwayland-egl1

6.1 Change root user

su -
## OR ##
sudo -i

6.2 Edit /etc/default/grub

Append ‘nvidia-drm.modeset=1’ to end of ‘GRUB_CMDLINE_LINUX=”…”‘.

## Example row with openSUSE Leap 15.5 / 15.4 BTRFS ##
GRUB_CMDLINE_LINUX="rhgb quiet rd.driver.blacklist=nouveau nvidia-drm.modeset=1"

6.3 Update grub2 conf

openSUSE Leap 15.5 / 15.4 / Tumbleweed

## BIOS and UEFI ##
grub2-mkconfig -o /boot/grub2/grub.cfg

6.4 Update /usr/lib/udev/rules.d/61-gdm.rules

Comment line which contains GOTO=”gdm_prefer_xorg”:

# Disable wayland when nvidia modeset is disabled or when drivers are a lower
# version than 470, in any case always prefer Xorg
KERNEL!="nvidia_drm", GOTO="gdm_nvidia_drm_end"
SUBSYSTEM!="module", GOTO="gdm_nvidia_drm_end"
ACTION!="add", GOTO="gdm_nvidia_drm_end"
# disable wayland if nvidia-drm modeset is not enabled
ATTR{parameters/modeset}!="Y", GOTO="gdm_disable_wayland"
# disable wayland for nvidia drivers versions lower than 470
ATTR{version}=="4[0-6][0-9].*|[0-3][0-9][0-9].*|[0-9][0-9].*|[0-9].*", GOTO="gdm_disable_wayland"
#GOTO="gdm_prefer_xorg"
LABEL="gdm_nvidia_drm_end"

6.5 Generate initramfs

## Backup old initramfs nvidia-nomodeset image ##
mv /boot/initrd-$(uname -r) /boot/initrd-$(uname -r)-nvidia
 
## Generate new initramfs image ##
mkinitrd /boot/initrd-$(uname -r) $(uname -r)

6.6 Enable kms-modifiers through gsettings (as normal user)

gsettings set org.gnome.mutter experimental-features [\"kms-modifiers\"]

6.7 Reboot

reboot

When you system boot you should be able to select GNOME Wayland session, login using it and open terminal and type:

echo $XDG_SESSION_TYPE

Output should be Wayland.