SteamOS 3.5 is almost here, includes a fix for the Steam Deck’s sneakiest performance bug

When a new Windows Update arrives, we tend to groan. Really, right now, Windows? What’s this one going to break? Do I really need it? “Remind me later.” A new version of the Linux kernel, on the other hand, always seems like a mini event in the open source community, promising exciting new features and performance improvements for the many, many devices that run Linux. The kernel is the foundational building block of Linux that the many distros like Ubuntu and Arch (which Valve’s SteamOS is based on) turn into fully fledged operating systems.

We recognize that without the options and everything that’s powerful about PC gaming, the Steam Deck is nothing

Pierre-Loup Griffais

The Steam Deck will soon get to share in that “new kernel day” excitement, as Valve’s next big update, SteamOS 3.5, will be the first to upgrade the Linux kernel since launch. That means a bevy of good things for Steam Deck owners, though most of them you likely won’t even notice.

Updating the kernel means “getting closer to the latest and greatest with lots of good additions, performance fixes, and functional fixes that will improve all kinds of aspects of the system,” Valve’s Pierre-Loup Griffais told PC Gamer. “In terms of the core functionality, and running games, and the perf—those kinds of fixes at this point are mostly out of the way, so you won’t expect anything transformative there.”

That summary comes with a caveat, though: Valve does have one significant performance fix for the Steam Deck coming in SteamOS 3.5. The Steam Deck’s processor supports a common modern feature called SMT, or simultaneous multithreading—you may be more familiar with Intel’s name for it, which is Hyper-Threading. Simply put, SMT is the ability to run two threads on a single CPU core. It should be an across-the-board performance improvement, but an obscure issue in the Linux kernel that the Steam Deck shipped with meant that in some cases, it actually caused a performance hit

“There used to be a hardcoded behavior in the Linux kernel on the AMD side, where if a core goes to sleep, it invalidates its cache, because by the time it wakes up the cache might not be valid,” said Griffais. “It turns out that when you have two threads on the same core, and one thread is still working on something, and the second SMT thread goes to sleep, it throws away its cache using the same logic. So the thread that’s running suddenly loses its L3 cache. In terms of CPU, that’s really bad. It has to kind of refetch everything from memory—lots of latency, basically a ‘bubble’ in computing. And your frametime goes to shit. So that’s what was happening.”

AMD found and fixed the issue before Valve had even identified the problem—in fact, that was how the SteamOS developers figured out what was going on. With the kernel update, they’ll finally be able to roll it out to users.

The problem mostly reared its head in older games and affected emulators that weren’t built for modern multithreading; if you’ve seen major stutters or strangely low framerates on old games, SMT was the likely culprit. Depending on what you play on the Deck, you may not even notice a change.

Some Steam Deck owners did notice the problem, though, and started using a plugin called PowerTools to disable SMT. Griffais mentioned that there were calls for Valve to integrate that feature into SteamOS, but that wasn’t the route they wanted to take.

“We needed to fix the bug that’s making people have to deal with this instead of adding a setting that’s super counterintuitive that people shouldn’t have to disable,” he said. “It’s supposed to be improving perf across the board. So we wanted to look at the actual root cause of the issue, as opposed to adding options that are possibly counterintuitive and hard for people to use, especially if there’s already a mod—let people do that in the meantime.”

rear view of steam deck with interior view skin applied

(Image credit: dbrand)

More Steam Deck

Griffais praised some of the plugins that Steam Deck tinkerers have developed, but the way he went on to describe Valve’s approach to the SMT issue highlighted the tricky balance the Deck has to strike, unlike any other game console.

“We’re always straddling that line of ‘are we this very complex power user product? Or are we just this very appliance-like product, that’s actually a really easy way to get into PC gaming?'” he said. “We recognize that without the options and everything that’s powerful about PC gaming, the Steam Deck is nothing. It represents PC gaming. But there’s a lot of value in having that appliance-like experience. So we’re always trying to represent both and to make sure that everyone has access to both. We didn’t want to be in a situation where people have to go turn off some setting for things to perform well. We just wanted to get that out of the way.”

Based on internal testing Griffais believes the SteamOS 3.5 update should make it so that there’s no longer any need to disable SMT, though they’ll need data from the public release to be sure the bug’s squashed for good. 

SteamOS 3.5 will also include a new graphics driver, though Valve made a point of fast-tracking one part of that update into 3.4.6, released on March 13, supporting the Resident Evil 4 Remake. Once 3.5 arrives, it’ll be in testing on the Steam Deck preview channel until it’s ready for a stable release. 

This post was originally published on PC Gamer

Share your love