Quick answer: Vulkan game freezing for 200ms when the player fires the first shot? Pipeline created on demand stalls the present queue - pre-compile pipelines at load time using a manifest.
First grenade explosion freezes the frame. Second is instant. Classic just-in-time pipeline compile.
Pre-compile from manifest
Author a list of pipeline configs the game uses. At load time, create each via vkCreateGraphicsPipelines and store in a cache.
Use VK_EXT_pipeline_creation_cache_control
Allows asynchronous creation. Hide compile cost behind the loading screen.
Combine with pipeline cache
Persist the disk cache. Subsequent launches read pre-compiled binaries; first launch pays once.
“Pipeline creation is not free. It's mostly free if you do it once at the right time.”
Audit pipeline creation count over a play session. Should be 0 after the loading screen. Any creation during gameplay is a stall waiting to happen.