How Valve fixed Elden Ring on Steam Deck
But have From's patches done the same for other PC users?
One of the most intriguing stories to emerge from the launch of Steam Deck was the news that Valve leveraged their Linux-based Proton compatibility layer to effectively fix the problematic PC version of Elden Ring. Directly after finishing my Steam Deck review, I captured Elden Ring running 'out of the box' without Valve's optimisations in play, then tried out the 'fixed' experience. Were the issues truly resolved - and if so, how did Valve do it? In addition to that, we've since had a couple of further patches, which raises another crucial question: is Elden Ring on PC now fixed?
Going back to our launch PC coverage, the stutter in the game was unbearable, with our working theory being that we were looking at yet another PC game suffering from shader compilation issues: split-second pauses whenever a new visual effect came into play. We've talked about this a lot recently: it's not an issue on consoles because the fixed nature of the hardware means that shaders are pre-compiled and included in the package. However, in a PC, where hardware spec varies so dramatically, the process is more complicated. In this respect, Steam Deck has an advantage, because it is a fixed piece of hardware, just like a console.
"On the Linux/Proton side, we have a pretty extensive shader pre-caching system with multiple levels of source-level and binary cache representations pre-seeded and shared across users," Valve's Pierre-Loup Griffais told us. "On the Deck, we take this to the next level, since we have a unique GPU/driver combination to target, and the majority of the shaders that you run locally are actually pre-built on servers in our infrastructure. When the game is trying to issue a shader compile through its graphics API of choice, those are usually skipped, as we find the pre-compiled cache entry on disk."
However, Griffais believes that most of the issues in Elden Ring were caused by other factors - picked up on Twitter by several developers examining Github commits to the open source compatibility layer.
"Shader pipeline-driven stutter isn't the majority of the big hitches we've seen in that game," Graiffais continues. "The recent example we've highlighted has more to do with the game creating many thousand resources such as command buffers at certain spots, which was making our memory manager go into overdrive trying to handle it. We cache such allocations more aggressively now, which seems to have helped a ton. I can't comment as to whether this is the problem the game experiences on other platforms, as well, but we've been playing on Deck with all these elements in place and the experience has been very smooth."
Watch the video content above and you'll see that this is indeed the case. Using a mixture of the medium quality preset with strategically boosted high settings (textures and anti-aliasing) along with a reduction in shader quality from medium to low (it doesn't seem to make any difference to the visuals) and engage Valve's system level 30fps cap and what we have is effectively a 720p rendition of the PlayStation 4 version of Elden Ring. Not only that, because Valve's 30fps cap delivers even 33.3ms frame-times - unlike From Software's internal clock-based solution - you get much smoother experience.
You can run into performance issues: many opponents on-screen seems to stress the CPU (and possibly the GPU too) causing performance drops and wobbly frame-times, while the fiery breath of Flying Dragon Agheel sees conventional GPU-based dips to frame-rate. Ultimately, it's fascinating to see just how closely Steam Deck mirrors PS4 in these stress points. The Steam machine handily outperforms Xbox One S in terms of both sustained performance and visual features, which is quite an achievement for an AMD APU with a 15W power limit. And at launch at least, Steam Deck was delivering a more consistent level of performance than much more powerful PCs.
All of which leads us onto the inevitable question of how Elden Ring on PC runs now, with at least a couple of patches under its belt since the lamentable day one experience. On Steam Deck, not much has changed. However, on PC, we have two conflicting experiences based on very similar hardware. Initially, I asked our PC specialist, Alex Battaglia, to look at the most recent 1.02.03 update and there was a mixture of good news and bad.
On his Core i9 10900K-based system with an RTX 3090 running at 4K on high settings, Elden Ring has managed to lessen the impact of much of the intrusive stuttering we saw at launch - a substantial improvement. However, a new problem was added to the mix: occasional freezing featuring consecutive 735ms pauses (!). These pauses appeared across multiple runs. So, on the face of it, we saw a welcome improvement let down by the debut of new problems.
However, repeating the tests on my own Core i9 10900K-based system packing an RTX 3080 Ti - which is essentially a slightly cut-back RTX 3090 with less memory - I didn't get any of the game-breaking hitching that Alex did on his system. Were it not for his results, I would have been tempted to say that there was a good chance that Elden Ring was indeed fixed on PC - pending further tests on lower-end platforms. At this point, the best we can offer is that based on our experience, the key problems with the game are resolved, but there's no guarantee you won't encounter other issues. Meanwhile, theories from users about how to resolve issues continue to come in thick and fast: removing GamePass and disabling Microsoft Device Association Root Enumerator, for example.
I've got to say though: playing at 4K60 on the RTX 3080 Ti was a tremendous experience - just as I'm sure that 1440p60 locked would be preferable to the current-gen console experience. Interestingly, the new patch made very little difference to the Steam Deck's performance - which was already in a good place mere days after the game launched, before any patch beyond 1.02 was available. And yes, a fully portable Elden Ring is extremely compelling and adds further allure to Valve's device - the only real negative point being battery life - with the 30fps cap in place alongside tweaked settings, you'll still struggle to get two hours of play from the game before you run out of power.