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.
Read next: NDK and Vulkan: from zero to the first frame.