While every month Valve has been posting a fresh set of the most played Steam Deck games for the previous month, they've now added a dedicated Steam Chart for it.
I think it was actually, because the game stuttered when compiling shaders on PC. Valve then precompiled all the shaders for the steam deck and delivered those via the steam client.
Yes. But Valve didn’t do anything special. They provide pre-compiled shaders for all games on the deck and can only do so because of how directx shaders are handled on linux.
All games on linux and windows when using DX12/Vulkan must compile shaders. They should be compiled during loading screens and such, not gameplay, then cached for use later.
Elden Ring in particular, didn’t precompile shaders before gameplay, and then when it did compile them, it would discard the shaders rather than cache them. As a result the stutter would happen non-stop and never go away.
On linux, the equivalent compiled vulkan shaders are cached by VKD3D, eliminating the stutter except when a shader is used for the first time. On the deck, Valve will deliver the shaders precompiled with the game download to eliminate the need to compile them at all.
The fix of providing precompiled shaders was only possible on linux due to the use of VKD3D. And even without them, on linux the stutter would go away after a while as VKD3D will cache them even when the game doesn’t. Fromsoft had to update the game to fix it from their side on windows.
How the fuck is elden ring the most played. Is it even playable on the steamdeck?
It is. In fact at launch it ran better than on high end windows PCs because linux handles directx shaders better.
I think it was actually, because the game stuttered when compiling shaders on PC. Valve then precompiled all the shaders for the steam deck and delivered those via the steam client.
Digital Foundry video on the topic
Yes. But Valve didn’t do anything special. They provide pre-compiled shaders for all games on the deck and can only do so because of how directx shaders are handled on linux.
All games on linux and windows when using DX12/Vulkan must compile shaders. They should be compiled during loading screens and such, not gameplay, then cached for use later.
Elden Ring in particular, didn’t precompile shaders before gameplay, and then when it did compile them, it would discard the shaders rather than cache them. As a result the stutter would happen non-stop and never go away.
On linux, the equivalent compiled vulkan shaders are cached by VKD3D, eliminating the stutter except when a shader is used for the first time. On the deck, Valve will deliver the shaders precompiled with the game download to eliminate the need to compile them at all.
The fix of providing precompiled shaders was only possible on linux due to the use of VKD3D. And even without them, on linux the stutter would go away after a while as VKD3D will cache them even when the game doesn’t. Fromsoft had to update the game to fix it from their side on windows.
There was a code change to proton to remove stutters in ER
There were apparently several, now that I look into it. I didn’t know that.
They seem to try to mitigate other issues, like asset streaming and other general bad practices in the code of the game.
It seems there are many things wrong with how Elden Ring was coded.
I played through 99% of the game on Deck.
Only the last bosses I had the time and space to run it on PC and control it from the Deck.
But 0 issues with anything, ran like butter, at home, travelling. Controls are excelent.
It was my first souls game and I finished it thanks to the Deck.
I put mine at lowest settings, 40-45fps cap. Runs fine.