The movement of the X11 migration to Wayland is taking a rather interesting turn, Since initially there were few applications, distributions and environments that looked at Wayland as a viable option for future development, today it is no longer an option, but a necessary movement.
On the part of NVIDIA, this movement is not something new, but it is not something that is easy for them either, since Aaron Plattner, one of NVIDIA's leading developers, has offered an assessment of the compatibility status between NVIDIA and Wayland.
Aaron mentions that evaluation is necessary as It is required to have information on current limitations with support for Wayland, as well as features not planned due to limitations of the Wayland protocol and composite servers. The information focuses on branch 565 and highlights both the technical limitations of the Wayland protocol and specific areas where NVIDIA drivers still lag behind in their support for X11.
Currently, NVDIA drivers lack some features, such as the possibility of the Stereo output with separate buffers (left and right) using GLX, EGL or Vulkan, SLI Mosaic mode which allows multiple GPUs to be combined into a single logical unit to drive large display configurations, is not supported. In addition, the NVIDIA configurator is currently unable to offer the same level of customization on Wayland systems, as there is no universal mechanism for configuring displays across different composite servers.
Also There is the issue of features that cannot be implemented uniformly across all composite servers due to differences in their design. This creates inconsistencies that make it difficult to provide comprehensive support.
Plattner, mentions that the delay in the full implementation of certain capabilities in Wayland It is due to a combination of protocol limitations and decentralized architecture of composite servers. Although Vulkan offers promising alternatives, many advanced applications and configurations that rely on specific features of the X11 ecosystem still do not find equivalent support in Wayland with NVIDIA drivers.
Moreover, although some of these capabilities are not available directly under Wayland, NVIDIA highlights that they can be implemented using the Vulkan graphics API and its extensions. Among the functionalities enabled by Vulkan, the following stand out:
- Stereo output: Via VK_KHR_multiview with support for multi-view rendering.
- Explicit SLI mode: Implemented with VK_KHR_device_group, allowing advanced handling of multiple GPUs.
- Framebuffer pools and synchronization: Extensions such as VK_NV_present_barrier enable the use of Swap Groups, Frame Lock, and Genlock, critical features for applications that require precise synchronization between multiple displays.
Finally it is mentioned that NVIDIA is working actively to improve the compatibility of its drivers and these are some of the features that are in development or which is planned to be implemented in future versions:
- Variable Refresh Rate (VRR): Support for variable refresh rates on multi-monitor setups on Wayland. (Scheduled for next driver release).
- Incorrect output resolution: The default nvidia-drm parameter fbdev=1 will be set, fixing output issues when switching between nvidia-drm and simpledrm.
- Setting nvidia-drm modeset=1 which will allow for more efficient management of the rendering pipeline.
- Display multiplexer: Support for automatically switching to the discrete GPU when a full-screen application requires it.
- Support for warping, blending, pixel shifting and advanced settings such as COLOR_ENCODING and COLOR_RANGE, which allow for more precise management of visual quality and color reproduction.
- Screen output buffer: Enables double buffering with Xwayland, improving graphics performance and reducing issues such as tearing.
- Support in nvidia-drm: This mechanism will allow synchronizing the output frames with the screen, improving visual fluidity in Wayland.
- VDPAU API: Added support for VDPAU to Wayland, enabling hardware acceleration for tasks such as video decoding, compositing, and post-processing.
- vGPU support implementation: which will allow sharing resources of a physical GPU in virtualization environments, ideal for professional and cloud systems.
- egl-x11 library: Better EGL integration into Xwayland, allowing more robust support for X11 applications on Wayland.
If you are interested in knowing more about it, you can check the details in the following link.