For the past few months or so, steam precaching has been out of control. I have to download between 10 and 30 GB of shader precache data per day. That is extremely ridiculous. Steam’s shader caches are quite often almost as large as the game itself. For example: the image here is a game that is ~7GB for the full game, downloading 10GB of shader precache. If I download an average of 30GB of shaders per day, then that is almost 1TB of data downloaded written per month just in shaders…
Not to mention that games I play regularly like CS2 get a precache update literally every 2 days that is 5-10GB and if I manage to cancel it, there is 0 difference in performance at all.
Also fossilize replay that takes 20%-50% CPU load, sometimes for an hour and is the single highest user of disk IO on my entire system. I would be concerned about SSD wear if it was during the early times of ssd just because of the massive amount of writes.
I’m all for downloading shader precaching, but at normal intervals of after updates, not just randomly every few days when there hasn’t been a game update in months or years. I don’t want to delete all of my games because I only have 100/30 internet, so it would take me a long time too redownload games.
Has anyone else been seeing these ridiculous intervals and datasets of shader cache? Could there at least be a selective pre-caching setting only for games that I play regularly so I am not caching shaders for games that I haven’t played in 2 years?
I had this problem for awhile, eventually I said enough and turned off shader pre-caching. Never noticed a difference in performance.
It depends on the game, turning off shader pre-caching can cause a lot of stutters. I agree it should be turned off unless you need it though.
I tried to but then I got massive stuttering
What proton version are you using? I think shader cache updates go inline with proton version updates so I’d you’re on experimental or bleeding edge you’ll get more updates
Fixed GE 8-25 for most games, fixed GE 8-6 for the displayed game “A Hat in Time”
Didn’t know this. I’ll have to try to set it to a certain version instead of proton experimental. Thanks
Same issues here, opening steam each night greets me with every single game downloading 500 mb - 5 gb of shader updates. It’s insane. I don’t get why my steamdeck doesn’t do this but an Arch desktop does?
It doesn’t? My deck has shader updates for nearly every installed game every time I touch it.
Same here
I get a few, but not every single game like my desktop does.
It should update about when you get a new driver version. I’m using your desktop gets more frequent updates than your Steam Deck.
Whenever I install updates on my Steam Deck, I get a bunch of shader updates.
My Deck and Linux desktop regularly have shader cache updates every few days, but they’re generally tiny and finish near-instantly. I’ve never seen the behavior here of needing to download multiple gigabytes of shaders daily (and I’m thankful for it, with the frustrating data cap I have from my ISP).
On arch you can just turn shader caching off, the newer mesa versions cache the shaders in the background, you don’t need steams thing anymore Edit: spelling
Personally I deactivated pre-caching quite recently actually as I noticed as well this getting quite excessive for certain games. So I now wait until this is a thing: https://github.com/ValveSoftware/steam-for-linux/issues/6486 Seemingly the issue seems to be with games that have a big workshop like A Hat in Time or just huge games like No Man’s Sky. I got 10GB and 5GB shader cache updates daily for these games respectively before I turned it off.
Aren’t shader caches dependent on your graphics driver version? If your graphics driver gets updated it’ll need to either generate them again or pull the new version from steam.
It does it on my deck too though after almost every reboot
There is a bug report with some discussion here: https://github.com/ValveSoftware/steam-for-linux/issues/8076
Hat in time tho 🩷
I would recommend to turn off auto updates, I was also having a lot of shader cache to download daily(when rebooting) but after scheduling auto updates between 4AM - 5AM and that fixed it for me
I agree that there should be better control in steam over what games are prioritized for both updates and shader caching.
But I was under the impression that most shader precaching was done by compiling locally in the background (via fossilize), not downloading. I agree that a 10GB download for AHIT is sus, but I don’t see anywhere on the screen that denotes it is downloading shaders.
Nonetheless, the shader pipeline problems of these new APIs (both pipeline explosion and caching) are not solved yet. IMO caching is not solved because GPU vendors don’t allow their new drivers to work with “old” shader pipelines. They have no incentive to (it would require extra driver work, and you couldn’t force users to use your latest compiler optimizations), and gamers don’t know to ask for it.
If you see that little i there, that is information that says “shader precaching” as the information when hovered over. It will generally be a blue patchnotes icon for a game update and an i for steam updates like precaching.
oooo, TIL
I prefer to keep Shader Precaching on for the Media Foundation fix that Valve uses, but I left Background Processing of Vulkan Shaders off, if I’m not wrong this way it should only update when you open a game.
Alternatively you could disable it and use Proton-GE for the games that need the Media Foundation fix. Performance should be the same nowadays with it on or off.
It’s getting fucking ridiculous and I tried to turn it off but the stuttering was horrible
I now finally know why Rocket League updates more often for me (1-2GB of updates) than my friend on Windows.
Shader caching is a thing that happens when you’re playing a game. The first time you see an effect (like particles), your computer has to process that and cache it for the future. This can sometimes cause stuttering for larger effects, so shader pre-caching is a thing that downloads all these shaders for you so you won’t stutter while playing.
It’s useful for older PCs where stuttering can be very noticeable, but it’s probably something you should turn off unless you think you need it.
Yeah normally, but in some circumstances on Linux an excessive amount of shader caches are downloaded. I tried Linux gaming on a ~50GB partition and quickly ran out of space because of all the shaders.