GNOME's Mutter Variable Rate Refresh Support Closer To Being Merged
Variable rate refresh (VRR / FreeSync / Adaptive-Sync) support for GNOME's Mutter compositor is closer to being merged. The native back-end support for VRR that has been in development the past two years is no longer considered a work-in-progress and it's believed there are no longer any blocking issues that would prevent this code from landing.
The GNOME Mutter native back-end changes are for being able to detect VRR-capable monitors and to be able to activate the variable rate refresh support using the KMS properties exposed by the supported Direct Rendering Manager drivers. It also makes it possible to apply the configuration in a persistent manner and to expose the VRR enabling/disabling via the Dbus API around the display configuration. VRR is activated on a monitor when a window that supports it covers the entire monitor on the visible workspace.
There is though some known limitations like a lower refresh rate for non-throttled OpenGL applications (if not setting vblank_mode=3 or enabling V-Sync at the application level), possible stuttering in the cursor movement with passively updating full-screen clients, and missing Wayland protocol support.
Similar to NVIDIA's complaints around variable rate refreshfor Wayland, the lack of a standardized Wayland protocol for advertising VRR support is also an issue for the Mutter code. As such for now this Mutter code makes the assumption that every Wayland client supports VRR.
See this merge request that's been two years in the making for VRR with Mutter's native back-end. The "WIP" (work in progress) flag was dropped today and the developer Dor Askyao added, "I updated the MR description with the MR's current state, including the important Caveats section. From my perspective, there are no longer any issues blocking this MR from being merged, only limitations to be considered. Review and testing would be highly appreciated."
For easier testing there is also a branch of this VRR code maintained against GNOME 42 stable.
Separately on the GNOME Control Center side is this MR for adding an option to enable/disable VRR support from the Control Center UI.
The GNOME Mutter native back-end changes are for being able to detect VRR-capable monitors and to be able to activate the variable rate refresh support using the KMS properties exposed by the supported Direct Rendering Manager drivers. It also makes it possible to apply the configuration in a persistent manner and to expose the VRR enabling/disabling via the Dbus API around the display configuration. VRR is activated on a monitor when a window that supports it covers the entire monitor on the visible workspace.
There is though some known limitations like a lower refresh rate for non-throttled OpenGL applications (if not setting vblank_mode=3 or enabling V-Sync at the application level), possible stuttering in the cursor movement with passively updating full-screen clients, and missing Wayland protocol support.
Similar to NVIDIA's complaints around variable rate refreshfor Wayland, the lack of a standardized Wayland protocol for advertising VRR support is also an issue for the Mutter code. As such for now this Mutter code makes the assumption that every Wayland client supports VRR.
See this merge request that's been two years in the making for VRR with Mutter's native back-end. The "WIP" (work in progress) flag was dropped today and the developer Dor Askyao added, "I updated the MR description with the MR's current state, including the important Caveats section. From my perspective, there are no longer any issues blocking this MR from being merged, only limitations to be considered. Review and testing would be highly appreciated."
For easier testing there is also a branch of this VRR code maintained against GNOME 42 stable.
Separately on the GNOME Control Center side is this MR for adding an option to enable/disable VRR support from the Control Center UI.
46 Comments