The tricky part with shader warm-up is making sure you’re actually covering the programs the scene will use, not just the ones needed for the initial render.
Imagine a product configurator with EffectComposer, bloom, tone mapping, and several material variants that only become active when the user changes the finish or switches to a different lighting preset. The initial scene might warm up perfectly, but the first interaction could still trigger a new shader compilation and introduce a noticeable hitch.
I’d test this by recording the first render and the first interaction separately, with a cold cache, then checking whether any new programs are compiled after the interaction. Otherwise, it’s easy to improve the initial frame while leaving the actual interaction problem untouched.
Have you found a reliable way to enumerate and warm up those less obvious material and post-processing variants without rendering every possible configuration upfront?