Quick answer: Vulkan vkWaitForFences blocking too long when multiple frames are in flight? Default timeout is infinite; pipeline backs up - use frames-in-flight tracking with timeout.

Frame N+3 waits for frame N's fence; if N is GPU-bound, the wait stalls CPU.

Limit frames in flight

Pipeline depth = 2. Bounded latency; predictable.

Or use vkWaitForFences with timeout

Non-blocking timeout; bail and use alternative path.

Profile per-frame fence wait

fence wait duration visible. Outliers diagnose backpressure.

“Frames in flight have natural limits. More = more latency.”

If your render pipeline lags, the frames-in-flight tuning is the right knob.

Related reading