Again, congrats on your work for WWDC was cool to see GPUs and gaming be emphasized.
I confused though by what you're describing. I thought one of the things that Apple wasn't happy with OpenGL about was that you couldn't pre-compile the shaders using that API and everything had to be compiled at runtime. One of the things that they touted when Metal was released was that you could compile the shaders at build-time. I'm referring to this document:
https://developer.apple.com/library...rammingGuide/Dev-Technique/Dev-Technique.html
Does the shader cache that you described for Obduction somehow storing the GPU assembly for the shader or is storing the IR that Apple described?
Or is the problem you're describing not specifically a shader compilation hit, but a problem with the API switching up the RenderCommandEncoders and leaving the drivers to try to manage the context switching the RenderPipelineDescriptors the problem?