What exactly do you mean?
If the game decides to compile shaders during runtime (i.e. after loading the level), there's always going to be stutter, even on Windows, because the shaders themselves are simply not available before that.
I suppose I misunderstood the way the state cache works then. The game also shows an increased amount of stutter on Windows DX11 until the driver's shader cache is populated. Maybe it just doesn't feel as bad due to supposedly lower shader compile time.
I thought something similar, i would have expected the state cache to work like this:
But currently there is still stutter in step 4. I don't know if it's actually possible the way i described it, but i remember a feral guy mentioning that their RotTR port does something similar, so maybe dxvk could do it aswell?
Feral has source code access to the games they port, they can and do change what is done during loading, and as a result, RotTR has longer loading times on Linux than on Windows, but overall runs smoother. DXVK can't do anything like that at all.
The issue with the state cache is that it does not cache shaders, so it only kicks in once the game itself actually wants them compiled. Most games do this while loading or at least with enough time between Compile*Shader and first use so that the state cache can compensate, but some don't, and those will stutter, and those will stutter even on Windows after a driver update. Witcher 3 would be another example where this happens.
Now in theory it would be possible to cache all shaders and compile them in the background, but there are significant drawbacks to that approach as well:
DXVK_SHADER_DUMP_PATH, you'll see what I mean).is it possible to compile all cashe
so i dont have to stutter the next time ?
The answer is in the very post above yours. My short interpretation of it: It's too impractical to be considered.
I think my initial question is well covered, thanks again @doitsujin .
DXVK_SHADER_DUMP_PATHx1 2019-01
When I update radv, I notice that performance in Heroes of the Storm suffers (stutter) for some minutes until the state cache is completely updated. Most updating seems to be done during loading times, but it doesn't suffice entirely.
Would it be possible to implement a "hard validation check" directly after each start of the game to prevent this?