what determines compile times mainly? CPU?
Possibly Disk IO, need to read and write all the shaders.
what determines compile times mainly? CPU?
I would love for this to be possible. It should be on the developers or Nvidia/AMD/Intel to create this and have optimal packages to optionally download with drivers.All the more reason for there to be a game shader by driver repository where then consumers merely need the game to just download the appropriate package.
what determines compile times mainly? CPU?
So far Yes, Horizon Zero Dawn achieves a 100 CPU utilization on my 3770K during compiling.what determines compile times mainly? CPU?
Compiled shader cache's are extremely small, I don't think there's much I/O. In my experience it's mainly CPU - Dishonored 2 for example took 7-10 minutes to compile when I just had a hyperthreaded Pentium. When I got my 6-core 9400 it went down to ~2 minutes, and CPU utilization on all cores is pegged at 100% when it's doing this.Possibly Disk IO, need to read and write all the shaders.
It's a combination of things. CPU handles the job of compiling the shaders but compiler design is another big factor as well ...
If we take a look at the open source Linux Vulkan community driver for AMD such as RADV when it transitioned from the LLVM compiler to the ACO shader compiler, shader compilation times were transparently improved because the ACO shader compiler had a reduced number of redundant optimization passes needed compared to the LLVM compiler backend but as a consequence of making the compiler specific to a certain set of hardware ACO only works on AMD GPUs while the LLVM compiler works on many different architectures ...
By introducing AMDIL which is a vendor specific IR, a vendor like AMD could make a really simple compiler which would vastly improve the shader compilation times. We were able to observe a real world significant improvement in shader compilation times when designing the compiler for a specific vendor HW for a vendor agnostic IR (SPIR-V) so we can only imagine the possibilities if we had both a vendor specific IR and compiler!
They aren't that small. Detroit: Become Human's cache is 1.26GB on my machine. Regardless I/O does have an effect on reading and making small updates to files... but likely not any sort of bottleneck on a decent CPU.Compiled shader cache's are extremely small, I don't think there's much I/O. In my experience it's mainly CPU - Dishonored 2 for example took 7-10 minutes to compile when I just had a hyperthreaded Pentium. When I got my 6-core 9400 it went down to ~2 minutes, and CPU utilization on all cores is pegged at 100% when it's doing this.
Staring at a shader compilation screen for 5+ minutes for every game you start after a driver update (or game patch) would indeed hamper the 'experience', especially when the new consoles can have you jump back in a game from a suspended state in ~5 seconds.I'm of the opinion that I don't care how long these shaders take to pre-compile. Pre-complile everything possible and optimize everything else that you can. The EXPERIENCE itself is what's important... not the 1 extra step required for setup before you can play.
Are you installing new drivers multiple times during a game playthrough? Changing GPUs often? Patches coming out every day? Are you playing 5 games at a time?Staring at a shader compilation screen for 5+ minutes for every game you start after a driver update (or game patch) would indeed hamper the 'experience', especially when the new consoles can have you jump back in a game from a suspended state in ~5 seconds.
Drivers are released roughly every month, and often they're required to get the best experience. For long games yes, I can absolutely experience this process if I'm busy and can't devote 20 hours a week to it. And yes, I'll bounce through multiple games in a month, this is really not uncommon.Are you installing new drivers multiple times during a game playthrough? Changing GPUs often? Patches coming out every day? Are you playing 5 games at a time?
Bizarre and irrelevant comparison.If I delete a game... and I want to play it again I have to re-download it... oh lord have mercy... not that process again!
Hence, this thread to hear if anyone in the industry is aware of efforts to improve it.Faster CPUs means the process goes faster. Like I said... they'll have to figure out something one way or another.
Ah so once a month you have to sit through a 7-10 min process after a driver update. Sorry if I don't share your sentiments that it's a bigger problem than the games stuttering the entire time while I'm trying to play and enjoy them. And I've been changing many settings in Horizon Zero Dawn and have not had to rebuild my shader cache yet.Drivers are released roughly every month, and often they're required to get the best experience. For long games yes, I can absolutely experience this process if I'm busy and can't devote 20 hours a week to it. And yes, I'll bounce through multiple games in a month, this is really not uncommon.
You have the case in Horizon now where even changing some settings in the GPU control panel screw up the graphics, requiring you to rebuild the shader cache (15 mins) if you want them corrected. Again, egregious example, but this kind of stuff does happen outside of driver updates as well.
Bizarre and irrelevant comparison.
Hence, this thread to hear if anyone in the industry is aware of efforts to improve it.
Yet you're here, simultaneously implying I've being hyperbolic of it being a problem, and saying 'they'll have to figure out something'? I get that you don't care, but no one is forcing you to participate in this thread.
So once more DX12/Vulkan seems to be the problem ..Nice blog post about Shader Compilation times in modern games
https://www.yosoygames.com.ar/wp/2020/08/a-little-clarification-on-modern-shader-compile-times/
Nice blog post about Shader Compilation times in modern games
https://www.yosoygames.com.ar/wp/2020/08/a-little-clarification-on-modern-shader-compile-times/
Depends.How much variation in shader compilation time is there depending upon the user's graphics settings?
I'm of the opinion that I don't care how long these shaders take to pre-compile. Pre-complile everything possible and optimize everything else that you can. The EXPERIENCE itself is what's important... not the 1 extra step required for setup before you can play.