Wayland on NVIDIA: A 12-Month Retrospective — Tracking the Stability Improvements and Remaining Artifacts in My Daily Setup
Introduction
It's been a year since I made the switch to Wayland on my NVIDIA-powered Linux setup. As many know, the journey to full Wayland support on NVIDIA hardware has been a rocky one, marked by frustration, inconsistent performance, and missing features. But things have changed significantly in the past twelve months. In this blog post, I'll reflect on my experience with Wayland on NVIDIA, tracking the progress made, the stability improvements I've observed, and the remaining quirks and artifacts that continue to affect my daily use.
For context, I am using a mid-to-high-end NVIDIA GPU in a Linux environment with a focus on general productivity, light gaming, and development tasks. My setup includes the latest stable distributions of Fedora, Arch Linux, and a few different Wayland compositors such as Sway and GNOME.
A Year of Progress: Stability and Feature Improvements
1. Initial Struggles
When I first attempted to use Wayland on NVIDIA a year ago, the experience was far from smooth. Many compositors would fail to launch, and the few that did resulted in performance issues that rendered the system practically unusable. The fundamental challenge was the lack of proper support for NVIDIA’s proprietary drivers, which were (and still are) essential for optimal GPU performance on Linux.
In the early months, Wayland support on NVIDIA was sparse. The proprietary NVIDIA driver stack did not support the Direct Rendering Infrastructure 3 (DRI3) standard required for smooth Wayland operation. This meant that using Wayland on NVIDIA was often accompanied by graphical glitches, input lag, and other significant issues.
2. The Shift with NVIDIA’s EGL Streams
By mid-2022, NVIDIA began making strides toward improving Wayland compatibility with its introduction of EGLStreams support in its proprietary drivers. EGLStreams allow applications to render directly to the GPU via the EGL API, bypassing the limitations of X11 and making Wayland compositors more functional.
Compositors like GNOME and Sway began to add support for EGLStreams, which marked a turning point for me. Stability started to improve noticeably, with fewer crashes and more reliable rendering of applications. The performance, while still not quite on par with X11, was far better than what I experienced in the early days of using Wayland.
3. System Stability: A Measured Improvement
As the months went on, I observed several key improvements in the stability of my daily setup:
- Graphical Performance: There were marked improvements in graphical performance when switching between applications and managing window arrangements. Compositors like GNOME and Sway started to handle window transitions more smoothly with less stuttering.
- App Compatibility: Many applications that previously had issues under Wayland (such as those relying heavily on X11-specific extensions) started working seamlessly, thanks to better compatibility layers like XWayland.
- Support for Multiple Monitors: In the past, configuring multiple monitors with Wayland on NVIDIA was prone to crashing or misaligning display outputs. With the advent of more stable drivers and compositors, I now have a fully functioning multi-monitor setup with Wayland, which was previously a dealbreaker for me.
However, while progress has been significant, not all issues were resolved. Several artifacts and issues remain, even after a year of usage.
Lingering Artifacts and Remaining Issues
1. Tearing and V-Sync Issues
Despite the improvements, tearing — the visual artifact that occurs when the display refresh rate doesn't align with the frame rate — remains a persistent issue in some applications and games. This is particularly true for video playback and high-motion content in games. While V-Sync support has improved with Wayland, it's not always reliable across all compositors, and tearing still occasionally occurs when using EGLStreams.
In contrast, on X11, tearing was largely mitigated using simple methods like enabling the “TearFree” option for the NVIDIA driver, but under Wayland, achieving similar results often requires more complex tuning or relies on compositor-specific workarounds that may not work universally.
2. NVIDIA GPU-Specific Artifacts
Using the proprietary NVIDIA driver on Wayland still carries over some unique issues, most notably:
- Window Flickering: Occasionally, windows will flicker or render incorrectly when switching focus or when transitioning between fullscreen and windowed modes.
- Slow Window Resizing: In some compositors, resizing windows can feel sluggish or unresponsive. This isn't always the case, but it remains a notable annoyance in certain use cases.
These artifacts are not present when using the open-source Nouveau driver (which is considerably less performant), and it's clear that NVIDIA's proprietary drivers still aren't fully optimized for Wayland in all scenarios.
3. Lack of Full Hardware Acceleration in Some Applications
While hardware-accelerated video playback has improved with Wayland, some applications still struggle to make use of NVIDIA’s GPU, especially those that rely on legacy APIs. For example, when watching videos on certain web-based players (such as YouTube), the GPU utilization is not as efficient as it would be on X11. This results in higher CPU usage and lower overall performance.
Additionally, certain productivity tools, such as CAD software or high-performance video editing apps, still do not work optimally under Wayland on NVIDIA, requiring users to fall back on X11 for those specific tasks.
Improved Workflow: What’s Working Well Now
Despite these persistent issues, there are several aspects of my workflow that have become more stable and reliable over the past year:
1. GNOME on Wayland
GNOME, as one of the most popular desktop environments with native Wayland support, has seen the most consistent improvements. Key areas that work well include:
- Gestures and Touchscreen Support: On a touchscreen laptop, gestures work fluidly, and multi-touch support is considerably better than on X11.
- Display Management: Managing screen scaling, particularly with high DPI monitors, has been smoother under Wayland than with X11.
- App Launch Speed: The initial launch of applications feels snappier, and the overall responsiveness of GNOME has improved.
2. Sway and i3 on Wayland
If you're a fan of tiling window managers, Sway (a Wayland compositor compatible with i3 configs) is now a great option. My experience with Sway has been largely positive, with:
- Improved Input Latency: There's no longer any noticeable lag when switching between workspaces or resizing windows.
- Better Resource Utilization: Sway is highly efficient with resources, and my system feels more responsive with Wayland than it did on X11.
- Customization: The ability to customize my setup to fit my workflow has been seamless, and I've seen no noticeable slowdown when making heavy use of my configuration.
Conclusion: Still a Work in Progress
After twelve months of using Wayland with NVIDIA, the experience has undoubtedly improved. Stability has seen significant gains, and I no longer dread switching to Wayland when booting up my system. However, there are still noticeable artifacts and performance gaps, especially when it comes to tearing, GPU acceleration, and certain legacy application support. The NVIDIA proprietary drivers continue to lag behind in full optimization for Wayland, making it clear that there’s more work to be done.
That said, I remain optimistic. Each month brings more improvements, and the momentum behind Wayland adoption continues to grow. While the journey isn't perfect, Wayland on NVIDIA is certainly becoming more usable for daily computing, and I am excited to see how the ecosystem continues to evolve.
For now, I'll continue to work around the lingering issues and keep an eye on the development of both NVIDIA’s drivers and the Wayland protocol. It’s a thrilling time to be part of this transition, even if it’s still a bit bumpy.