I have massive doubts about the "They also seems to also be able to download the compilation cache from Steam if someone already have done the process on the same GPU + driver version."
This would imply that if I already calculated the shaders for the current game state than i could reuse them and not have to go through the whole compilation step (if no changes happen inbetween).
Matter of fact, i have to recompile the shaders on every game start for every game, even if i restart the game just x times in a row.
For context: using linux/debian and basically running everything on vulcan
Shader precompilation is a standard thing to do now - consoles mostly ship precompiled shaders for their GPU + driver combo, Steam Deck will also download precompiled shader for its Linux + AMD + driver version combo.
The infrastructure for that Steam side is there and is in active use.
Well my doubts are that the feature is actually working. Im not saying that precompiling shader doesnt exist neither it cant be done. But based on my comment, i doubt it working the way as described. Else i would not have to recompile those shaders every time for every game in my library.
That depends on game actually passing exactly the same parameters to shader compiler and your GPU driver actually building and using the cache.
What fossilize does is it generates data of all the parameters passed to shader compilation, and then can trigger "offline" compilation before you run the game.
Thanks for the response, and ye i get that. But what my point is : i have to recompile the shaders for every game every time i start it. And as i mentioned even without updates or if i start the game multiple times in a row.
This just , from a technical stance, doesnt make sense to me.
As another commenter to my statement wrote, it might be to make sure enaugh people have the same result on my HW setup in order to make sure its not abused for maleware. That makes sense to me tho i still dont get why there is not at least some local steam client caching.
And while as mentioned this might not work with every game - well it works with none. Im talking about a quite big set of games. So maybe im just VERY unlucky and ALL games i play have dynamic params which as you mention would result in recompilations every time - will have to look if i can approve this somehow.
Alternativly, which is why i mentioned using debian, its a linux issue of some sort (just a guess).
Ic and makes sense. Need to take some time at some point and going to investigate it further - now i at least know where i gonne start. So far i just accepted it because well got enaugh projects to deal with already...
Thanks for the hint tho, if i should find the time to investigate that further this will definatly safe me some time on searching the cause-
I don't think I ever found more documents on this feature. I assume it might need lots of users with matching result to ensure that bad actor can't upload malicious shader.
Thank you for linking, and it makes sure to say you have to have a certain set of proofs to make sure no malicious code is injected as a precompiled shader sounds like a great place for exploitation.
Tho i would expect (naive me) that the shaders at least might be cached locally - which is not the case since as i mentioned in my comment have to recompile them for every game every time i start.
This would imply that if I already calculated the shaders for the current game state than i could reuse them and not have to go through the whole compilation step (if no changes happen inbetween).
Matter of fact, i have to recompile the shaders on every game start for every game, even if i restart the game just x times in a row.
For context: using linux/debian and basically running everything on vulcan