System76 continues its steady march towards an in-house, RUST-based desktop with the 1.0 release of system76-scheduler for Pop OS. The update should be available now for all Pop OS 20.04 and 21.10 users. But what the heck does it do?
You can dive into the weeds via the system76-scheduler GitHub page for all the technical details, but I prefer the way System76 engineer Michael Murphy explains it:
In practice, let’s assume you’re transferring a batch of files from a USB drive, creating a large compressed archive, and rendering a video in the background. What should happen, in simple terms, is that the file transfer will get CPU priority “as long as the process managing that transfer is the focused window,” says Murphy.
Then, if you switch to another focused app like a game or OBS, that process would gain priority, with the file transfer getting a lower priority.
But Twitter user @kushashwa brought up a concern: If you’re running a background process (like building a program) which really needs that CPU priority, will you get an unwanted performance drop?
Murphy explains that the same prioritization rule applies for sub-processes of the focused process. But if you need manual control over default priorities, a configuration directory lives at /etc/system76-scheduler/assignments.
So Pop OS Has Better Game Performance Now?
So far that all makes sense, and technically reduces the risk of having your focused app freeze or stutter. But the comment about improving game performance obviously caught my interest, so I asked Murphy if his team could cite any specific examples. Here’s what he had to say:
“[The] QA team had the smoothest VR gaming experience with this, and it gave a boost to framerates. Just a natural side effect of having some finely tuned process priorities that give the focused window (such as a game) a higher priority than background applications and services.”– Michael Murphy (@mmstick)
I do wish the QA team would have conducted some A/B benchmarks with regards to framerate and overall game performance. But hey, I’m not complaining about an overall improvement!
(UPDATE: As reader Raul points out, the implementation seems to share a few similarities to the tweaked CFS (Completely Fair Scheduler) seen in the linux-zen kernel.)
By the way, Michael Larabel of Phoronix has a great summary of system76-scheduler: “[it] gives priority to the X.Org Server and desktop window managers / compositors while pushing compilers and other background tasks to the lowest priority.”
This is part of a larger effort by System76 to build a RUST-based desktop environment for Pop OS. The ever-popular Linux distribution also seems to be gradually reducing its reliance on Ubuntu (along with brand new release Peppermint OS 11).
6 thoughts on “New Pop OS Update Boosts Game Performance And App Responsiveness”
Something related to this?
Oh fascinating! It certainly shares some characteristics.
Also, dude I LOVE your website!
Thanks! I really appreciated this!
This is interesting indeed. I wonder if non-gamers would like this, probably a gaming-mode/performance mode like option would be better. I agree, I would really like to see some benchmarking and more details on this. Jason, thanks for the mention as well 🙂 You’re doing great work.
Hey, thanks for stopping by!
Well, Pop OS does have the balanced/performance/energy saving modes to toggle, but I agree that a dedicated gaming mode might be cool. Then again, if this priority scheduler works as intended, maybe that’s just not needed?
Thanks! Yep, I agree a dedicated gaming mode might not be needed if this scheduler works well. I may be thinking too much here (and I maybe wrong, please feel free to correct me), but not sure if there is a way a regular user/programmer would know that this scheduler has caused any perf regression on their work unless and until they’re explicitly doing the comparisons for before vs now.