GNOME Dynamic Triple Buffering Can 2x The Desktop Performance For Intel Graphics, Raspberry Pi

Written by Michael Larabel in GNOME on 13 February 2022 at 01:14 PM EST. 108 Comments
GNOME
For a while now Daniel Van Vugt of Canonical has been working on GNOME triple buffering support that would be dynamically enabled when the GPU rendering performance is falling behind. It's looking like that dynamic triple buffering may be close to mainlining and is leading big speed-ups for Intel graphics and the Raspberry Pi Broadcom graphics too while the other drivers ultimately should benefit too if falling behind in their desktop rendering performance.

GNOME's dynamic triple buffering is to dynamically enable when the previous frame is running behind schedule. Ultimately this extra work will cause GPU clock speeds to rise and in turn help with performance to ensure the desktop can render at the full frame-rate. If the previous frame is not running behind schedule, just double buffering is used to avoid excess latency.

Van Vugt has been working on this code back to 2020 while it looks like things are being buttoned up and still might be mainlined for GNOME 42. In his weekly status report he noted that he fixed an atomic KMS multi-monitor problem that was affecting it under Wayland, he redesigned the frame scheduling code, fixed a resource leak on shutdown, and made other fixes.

He also re-tested this latest GNOME triple buffering code with configurations such as "Retested: Intel, DisplayLink, Raspberry Pi, amdgpu, nouveau, nvidia-470 (EGLStreams), nvidia-510 (GBM), LLVMpipe, Wayland, X11, multi-monitors, power saving modes." He now considers the triple buffering code to be feature complete.


For systems unable to keep up with rendering the GNOME desktop overview and other effects at full speed, dynamic triple buffering can help by ultimately making sure the GPU(s) run at a higher clock speed to get the work done on time. This is just about the desktop rendering performance and not the impact within games or elsewhere where your GPU should already be running to its full potential for graphically demanding workloads.


As for the benefits he's seeing out of it, "I see performance improvement with every driver but major improvements (doubling frame rates) on Intel GPUs and Raspberry Pi. AMD and Nvidia users may still see similar benefits wherever they are unable to maintain full frame rate at present."

The doubling of frame-rates was also noted in his ongoing WIP merge request with Intel graphics now rendering the desktop at 60 FPS rather than 30 FPS with GNOME's current double buffering code. The downside though with that triple buffering work is it effectively is just ramping up the GPU to a higher clock frequency / performance state and thus can impact the thermal behavior of the system and increased power usage.

The code hasn't been merged yet but we'll see if it manages to make it into GNOME 42 or if Canonical ends up patching their packages with the upcoming Ubuntu 22.04 LTS to provide this optimization.
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