protonscr

[Need For Speed Payback] Shader compilation stuttering

dxvkclosed
doitsujin/dxvk#4638 · opened 2025-01-23 by ghost · updated 2025-01-23 · 1 comments · github
?ghost 2025-01-23 github

Specs:

  • GPU: AMD Radeon RX 7900 XTX
  • CPU: AMD Ryzen 7 7800X3D
  • RAM: 32 GB DDR5 6000 MHz
  • OS: Arch Linux (everything is up-to-date, ProtonGE 9.23, DXVK 2.5.3)

This game experiences significant stuttering, likely due to shader compilation, resulting in severe lag spikes. When I first launched the game during the prologue, there were constant, unbearable hiccups every second. These stutters appear particularly when entering a new location or driving somewhere for the first time. However, after driving through the same area a second time, the stutters do not occur.

The worst stuttering happens in the city. In the desert, the game is mostly playable with minimal stuttering every now and then.
However, during a story mission in the desert where I pursue a truck, the game stuttered heavily, just like in the prologue.
Despite being in the desert, where I normally wouldn’t encounter stutters, it seems that the mission introduces new objects (such as the truck dropping cars), which causes the game to compile shaders on the fly, resulting in these heavy stutters.

I guess the game is constantly compiling shaders on the fly, which is causing these stutters.

I was only able to capture rare moments of these stutters, as I drove around most of the city, which likely led to the compilation of most of its shaders.

I’ve not experienced similar behavior in other games that also compile shaders — those games maintain smooth frametimes. In NFS Payback, however, the stuttering is unbearable. On Windows though, the same stutters occur, but they are even more frequent.

I also tried with both Steam Shader Pre-Caching ON\OFF - it made no difference, even though Steam pre-downloaded more than 1 gb of shaders for this game.

Here is my video with MangoHud and DXVK_HUD=full: https://www.youtube.com/watch?v=Wsd2L-mXf2I

(First stutter occurs between 0:58 and 1:02, another from 2:52 to 2:57, and the next one at 3:00)
(135 fps limit is for keeping the fps in FreeSync range)

KK0bin maintainer 2025-01-23 github

At this point there isn't anything we can do about games that stutter because of shader compilation. Especially if those stutters happen on Windows too.
If the game loads the shader and uses it immediately, there simply isn't enough time for us to compile it in the background.
It looks like that's exactly what's happening here, judging by your video.

I guess it is a little bit weird that Steams shader pre-caching doesn't help but that's not related to DXVK.

Launch options