I’ve noticed that on bazzite when you install a new game and before the first boot up bazzite will start compiling shader. I’ve also notice that cachyos and even windows doesn’t do that. Any reason why? I Actually like it because it makes my games run smooth and with less stutters.
By default, Steam precompiles shadercache for each game, but in all honesty it isn’t really needed for most games on modern hardware since graphics pipeline library was added to the drivers over a year ago. You can disable it in the desktop steam settings, but if you run into stuttering issues in games I would suggest turning it back on.
With “graphics pipeline library” you’re referring to VK_EXT_graphics_pipeline_library
, right?
The DXVK README states this:
On drivers which support
VK_EXT_graphics_pipeline_library
Vulkan shaders will be compiled at the time the game loads its D3D shaders, rather than at draw time. This reduces or eliminates shader compile stutter in many games when compared to the previous system.In games that load their shaders during loading screens or in the menu, this can lead to prolonged periods of very high CPU utilization, especially on weaker CPUs. For affected games it is recommended to wait for shader compilation to finish before starting the game to avoid stutter and low performance. Shader compiler activity can be monitored with
DXVK_HUD=compiler
.This feature largely replaces the state cache.
Note: Games which only load their D3D shaders at draw time (e.g. most Unreal Engine games) will still exhibit some stutter, although it should still be less severe than without this feature.
So the general recommendation from DXVK is
to wait for shader compilation to finish before starting the game to avoid stutter and low performance.
which is kinda the opposite of
Or did I misunderstand something?
On decent modern hardware for most games, skipping it should be ok. I’m not sure what your experience is, but if you are experiencing shader compilation issues with games running through Proton, then don’t skip it the next time. By the way, currently there is a Steam for Linux bug that prevents you from skipping it anyways.
Thanks for your assessment!
I’d simply like to understand what’s happening in principle during this shader compilation annoyance… so, does it mean the shader precompilation triggered by Steam is filling what the DXVK README calls the “state cache” (which became obsolete with VK_EXT_graphics_pipeline_library
)?
It’s downloading shaders and re-encoding videos that have patented codecs for the games you have installed.