Running NVIDIA On GNOME’s X.Org Session May Get A Lot Smoother


Canonical’s Daniel van Vugt continues doing a lot of interesting performance investigations and optimizations around improving the experience of GNOME not only for Ubuntu but the upstream components. His latest focus has been on NVIDIA enhancements and now for the X.Org session there is a merge request pending to provide for a smoother experience.

This week Van Vugt opened up a pull request that provides a “significant improvement” to the frame-rate smoothness for NVIDIA’s proprietary Linux graphics driver running on GNOME under the X.Org session (this MR doesn’t affect the Wayland session).

The change is dropping the threaded swap waiting used with the NVIDIA driver. “So “threaded swap wait” provided better sub-frame phase accuracy, but at the expense of frame rates. And as soon as it starts causing frame drops, that one and only benefit is lost. There is no reason to keep it.

Daniel also added, “Noticed way better responsiveness when videos are running in Chrome or CPU is running at 100% (e.g. Handbrake encoding videos). The choppiness is gone. Using a NVIDIA 1080 Ti here using 430.14 driver.

This code does depend upon Daniel’s earlier patches from months ago about consolidating all the frame throttling code into clutter-stage-cogl. That prerequisite itself is a big win with addressing NVIDIA CPU usage problems as well as mouse cursor issues at 60Hz when the display’s refresh rate is higher, among other benefits for that reworked code.

So let’s hope that this merge request will land for the current GNOME 3.33 development cycle so that September’s GNOME 3.34 will be looking good on the performance front. There’s already been several optimizations merged this cycle while a lot more changes are still pending / stuck in the review queue.