Steam keeps doing shader pre-caching update after closing games, sanity check?

I’m hoping its not just me that has this problem but every time I quit a game on steam it downloads shaders. I think it’s wasted a few hundred gigabytes of bandwidth doing this over the past month, super annoying. In the library UI it says “validating” but when i go to the download UI its downloading shaders.

You can generally turn this off on most devices. Idk why it’s still enabled by default for desktop linux steam. Anyway, Steam Settings > Downloads > Sharder Pre-Caching. I recommend to most of my Linux friends to turn this off.

I was under the impression that once it had cached shaders it didn’t need to do many updates but i guess thats not how it works? feels dumb

Yeah, I’m not sure about the back-end specifics. I just know that it doesn’t make a noticeable difference in my game-play, performance, or compatibility. But it does waste a ton of my time and bandwidth if it’s pre-caching everything.

It’s possible that you recompile shaders locally during game play, which is pretty common and then integrity checks fail after closing the game causing re-caching or something. But I’m purely talking with no actual knowledge about the “how/why” here.

Can someone even ELI5 me why downloading shader precache is an actual benefit?

I mean do you even get more FPS?

Well more than anything it gets you playing quicker as you don’t have to compile shaders. Some games require you to compile shaders potentially for multiple minutes before playing. But many games compile them intelligently where the shaders are compiled with priority based on how soon they are likely needed.

Many games also just ship precompiled shaders as part of the main download, but those would be generalized and not hardware specific.

There is a lot more nuance on when where how and why it might matter to precache or compile at runtime, and developers, and different engines often choose different strategies.

At least that is my admittedly limited understanding of it

So to lessen load times and lessen moving art assets from SSD to RAM to VRAM?

Do we have a benchmark or something? Am i downloading for 10 mins only to lessen the loading time from 15 secs to 12 secs or …? Because that doesn’t sound too reasonable when I rarely play these days.

I also seem to recall stopping playing Monster Hunter Wilds because even if I download shaders in Steam before the game actually loads, it still gets processed for about 10-15 minutes. Thats when I lost all interest in playing it because by the time it finally loads, I am either sleepy or the the rest of the house demands my immediate attention.

shaders are kind of code that runs on the GPU and is hardware-specific. It has to be compiled anyway for the game to function and they cannot ship dozens of precompiled shaders for any hardware or driver possible (also future hardware and drivers). The choice is either compile at runtime (can cause stuttering when entering new areas as the system is busy compiling stuff) or at the game start (delays game start while shaders are compiled) or downloaded from the server if they have precompiled shaders for your hardware on file.

In this specific case, the constant redownloading is weird behaviour, imho triggered by linux driver changes so steam thinks the current cache is outdated and must download the latest shaders again but I don’t really know. I know it’s often something people on Linux complain about.

Either way, disabling the download should be the lesser evil here.

3 Likes