Title. I always skip them and don’t notice any detrimental effects at all. I used to let them run every time, but I don’t want to wait 5 minutes for every patch update bug fix anymore
Definitely depends on the game. For something like StarCitizen, there’s a small bar at the bottom when shaders are compiling for letting you know the status. There is a noticeable improvement in game performance once the shaders have completed compiling.
The CachyOS wiki gaming setup page (which is great even if you aren’t on CachyOS) recommends turning off shader pre-caching and increasing your maximum shader cache size if you’re using Proton-GE, Proton-EM, or Proton-CachyOS. Never had an issue other than the occasional small stutter when I enter a new area for the first time. https://wiki.cachyos.org/configuration/gaming/#pre-caching-shaders-with-proton-cachyos--ge-and--em
Theres a hidden option to make it multi core, which (on a machine like a threadripper) can insanely speed up the process.
Well holy shit I didn’t know that existed!
Presumably they… don’t have it GUI exposed because they don’t want to give the average user the ability to potentially fully lock up their CPU and totally crash their PC?
Do you know where this option is?
Same instructions from the other link posted, different source: https://forum.zorin.com/t/speeding-up-steam-shader-processing/50008
1. Navigate to ~/.steam/steam (This should be a symlink to wherever your Steam install is located). If the folder has a steam.sh then it is the correct folder.
2. Make a file called steam_dev.cfg
3. In that file put:unShaderBackgroundProcessingThreads x
4. Replace X with the number of threads to use. (See below.)
5. Save the file and restart Steam if it was running.For X, modern processors generally support two threads a core. If you’re using a 4 core processor, you could have 8 simultaneous threads. if you’re using an 8 core, 16, etc. You don’t want to use that number for X though, or Steam may hog your CPU enough to make your system sluggish. The original poster recommends your max threads, minus 4 to 6. I’m using 10 out of 16 threads, personally.
As the Reddit thread notes, despite the name of the setting, it does work for foreground processing as well as background. One thing the thread doesn’t warn about is that if you keep Steam open and a game updates, Steam may start working on these in the background, if you have background shader processing turned on. If you’re doing CPU intensive work, you may want to close Steam or turn off background shader processing to keep Steam from monopolizing your CPU.
I always had 4
fossilize_replayprocesses running when Shaders where being compiled. So I assume the default value is 4. I’ve created this file with a value of 12 now, to see if this makes a difference. Thank you both of you for posting and also copying the instructions to preserve them.Hope it helps!
Whoops, yeah should have probably put a link in the main thing,
I think mine was on by default. It maxes out the CPU for several seconds.
I was just wondering this yesterday. I read that for some it takes up to an hour and that made me realize my 5 minute wait time wasn’t so bad. I do skip every now and then and haven’t noticed any detrimental effects.
Skipping vulkan shader compilation in steam will instead make shaders compile at runtime when game is running. You usually will not notice any issues, but if the game is grafically intensive and it suddenly has to load shaders which was not yet compiled, you will see the lags or stutters when they first appear. Also, depending on the hardware, game performace may be reduced while shaders are being compiled.
So basically, depending on the game, it’s mostly fine to skip, but sometimes it’s not, and if you have issues, try letting it compile?
(edit) To be clear, I’m not an expert, and it’s been at least a decade since I’ve had to work with shader programming. My knowledge could be completely outdated.
Important to note that what happens when you skip it is exactly what happens with most games when you run them outside Steam (unless the game itself precompiles its shaders on first launch).
When the graphics library (Vulkan, OpenGL, or DirectX) needs to load a shader, it first checks the shader cache (or pipeline cache in Vulkan’s case) to see if it can find the compiled bytecode. If the bytecode exists (hit), it is loaded directly into VRAM, much like the machine code of an executable. If it doesn’t (miss), the shader first has to be compiled from its source code into bytecode. This is a CPU-bound operation, which can introduce performance issues (stutters, freezes) and spike the CPU usage. After that, the resulting bytecode is stored in the cache.
Steam does the same, but preemptively. It scans the game files and compiles and caches any shaders it can find. The difference is only in the timing.
Pretty much. I was playing BotW on an emulator that was using Vulkan and as I ran into new areas, or new enemies appeared it would stutter as things were compiling (it also has a debug option to tell me when new shaders were being compiled so I knew that’s what it was). I eventually switched to pre-compile. It took about 10 minutes, but after that everything ran silky smooth.
Depending on the game, that can be an issue. Precompiling shaders means the game will, well, compile everything before it’s used. If you cancel it, it will compile them during runtime. Depending on the game, that can result in massive performance degradation. I remember when overwatch was ran through lutris, you were adviced to play ~5 - 10 Minutes in a bot game or in practice mode until everything was done because FPS were abysmal until compilation was done.
I’ll just wait the time. Most of the games I play don’t get daily updates and my machine is beefy enough to handle compilation in a couple of minutes.
I only have the energy to game a few times a week, so even weekly or monthly updates can be “every time” for me just due to my schedule
There is an option in Steam to allow Vulkan shader compilation in the background when you start Steam. I do that, so most times they have already compiled by the time I go to start a game
I remember I had problems with that for some reason and turned it off, but I’ve forgotten what those problems were… I think it was lagging games by updating in the background or something
There is a setting to pause downloads while playing a game
I still had issues, even with that setting… Damn my terrible memory — why can I only remember that I had problems, not what the problems were? 😂
Was it CPU use/overheating? Steam will use all available resources doing the shader compilation, so when I start steam it jumps to around 100% use for a few minutes while compiling the shaders - I can use other programs in that time, but they’re noticeably more laggy.
Ive found games often dont start if I let it finish, and wont until I restart steam, but if I skip them ive noticed no detrimental effects. No idea why
Every time now. Doesn’t seem to matter.
It’s a CPU thing. Most games tend to require lots of GPU and very little CPU. Compiling shaders during runtime is usually fine.
I used to let them complete but when I discovered the negligible difference I stopped. Crimson Desert helped cement that decision because Steam would compile them then the game would do sp after ot started.
I get the popup whenever I “start” Skyrim, which I have routing to Mod Organizer 2. Not having to wait 5 minutes would be great
Its fine as long as you don’t blame the dev for the stuttering. 😄
(•̀╭╮•́;)
Usually not, but for some games it takes ages and I do end up skipping them. For example with Deadlock it took like 30-45 minutes after every update. Started skipping it at some point and never noticed any difference in performance.
For Enschouded it uses all cores before skipping, but only 2 when skipped. So I generally press launch and then set up everything else. And then press skip later when I’m ready to play
I’ve never seen shaders take so long to process as in enshrouded. Normally it ticks up every few seconds, but in enshrouded it just sat there at 0% for longer than was reasonable. So I just skipped it a few times when launching the game. By the time I got through the game settings and set up my character the game loaded enough that I didn’t even notice a shader issue.
That’s funny because I always let it compile before playing. Maybe it’s because the games I play dont get updates constantly but I really only see it when I play a game for the first time.






