• MentalEdge@sopuli.xyzOP
      link
      fedilink
      arrow-up
      1
      ·
      edit-2
      5 months ago

      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.