GNOME Triple Buffering May Need To Be Re-Engineered - Helping NVIDIA Performance

Written by Michael Larabel in GNOME on 9 October 2024 at 08:55 AM EDT. 105 Comments
GNOME
The long-in-development GNOME triple buffering support that is patched into the Ubuntu and Debian builds and available for years in patch form might need to undergo a redesign. That's to better accommodate the NVIDIA Linux driver and likely help other non-Mesa graphics drivers too.

Canonical engineer Daniel van Vugt who has long been leading the GNOME triple buffering work shared the need this week for its potential redesign... Unless NVIDIA comes out with a new Linux driver that overcomes some current limitations. Daniel shared in this week's Ubuntu desktop team update:
"Finished profiling and triaging the Nvidia-Wayland performance issues, splitting them into multiple tasks. The main problem will require either a new Nvidia driver or a redesign of triple buffering in GNOME 48 to work around the current Nvidia behaviour. Though if that happens then other (particularly non-Mesa) drivers would get a performance improvement."

He added in a bug report:
"We've verified that most of the shell's performance problem comes down to an architectural difference between Mesa and Nvidia drivers. And while I thought triple buffering should work around that, it doesn't yet.

So is the main fix that the Nvidia driver needs (not counting subtle power saving/scaling differences between 550 and 560). And is a performance improvement to triple buffering that might be possible, and would work around the need for changes to the proprietary Nvidia driver."

For GNOME 48, Daniel van Vugt is hoping to separate meta_drm_buffer_gbm_new_lock_front and related code from the meta_onscreen_native_swap_buffers_with_damage function since the current code is only performing well on Mesa drivers that don't block within meta_drm_buffer_gbm_new_lock_front due to implicit synchronization.

Ubuntu 24.10


We'll see what materializes during the GNOME 48 development cycle and if there is a new triple buffering implementation come Ubuntu 25.04 or whether the NVIDIA driver is better handled. As well as waiting to see if/when the triple buffering code is finally merged into upstream Mutter.
Related News
About The Author
Michael Larabel

Michael Larabel is the principal author of Phoronix.com and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 20,000 articles covering the state of Linux hardware support, Linux performance, graphics drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated benchmarking software. He can be followed via Twitter, LinkedIn, or contacted via MichaelLarabel.com.

Popular News This Week