Vulkan requires pipeline state to be created before the first draw. A game can precompile everything offline into a pipeline cache, compile lazily on first use, or compile a small set during the loading screen.

Offline caching gives the shortest first frame but ties the cache to a driver version; a cache built on one device is not portable to another vendor. Lazy compilation produces the worst stutter, often 40 to 90 ms for a complex pipeline, exactly when the player first sees the effect.

The middle path is what we recommend: compile the pipelines for the first level during loading, keep a persistent cache for the rest, and measure the first ten seconds of a cold start on a device with an empty cache. Our numbers and the code for the loading-screen compiler are in the article on profiling, which uses the same instrumentation.