More GNOME Shell / Mutter Performance Optimizations & Latency Reductions Still Coming
One of the developers leading the charge on enhancing/fixing the performance of GNOME Shell and Mutter in particular has been Canonical's Daniel Van Vugt. While he's already made great strides in fixing issues himself, reviewing and collaborating on other patches, etc, the job isn't done. Van Vugt shared there's still some big ticket work pending.
There has been a NVIDIA proprietary driver issue he's been working to resolve as it causes Xorg to use 100% CPU usage and significant lag during "simple" work like glxgears. NVIDIA thought it might be fixed by the recent 418.30 driver release, but it turns out this issue is still affecting some users. Even if you aren't a NVIDIA Linux user, getting this fixed is important as it's currently blocking a significant input lag fix. That fix is to Clutter for being able to deliver events sooner when possible, yield one frame lower latency, and allow clients higher resolution input if desired.
Another notable fix is to clutter-stage-cogl for reducing output latency and reducing the missed frames count, which is one of the optimizations Daniel is most looking forward to seeing landed. There is also changes to the native renderer to accept frames without ever blocking, consolidating of frame throttling code, geometric GPU-less picking to eliminate the most significant CPU bottlenecks with cursor movement, and other changes.
Specifically on the Ubuntu front, Daniel has released a fix for Ubuntu 19.04 Disco and Ubuntu 18.04 Bionic to deal with 144/120Hz displays where GNOME's Mutter caps the rendering to 60 FPS. The fix for Ubuntu 18.10 is still being in the process of SRU'ed.
We'll see what of these fixes if any still make it in time for the GNOME 3.32.0 release in March otherwise will have to wait until GNOME 3.32.1 or if too invasive be held off until GNOME 3.34 this autumn. GNOME 3.32 is expected to be released on 13 March.