Quick answer: Vulkan frame graph compiler missing layout transitions between passes? Resource access flags must match the next pass's needs - explicit AccessFlags on resource declarations resolve.

Frame graph optimizes draw order. Output of pass A used as input to pass D; intermediate transition isn't generated.

Declare access patterns

Pass A writes color, pass D reads as input attachment. Declare both via FrameGraph's access type API. Compiler generates the right transition.

Validate with the layer

Vulkan validation catches missing transitions as errors. Enable in debug builds; let the validator find what the compiler missed.

Or write manual transitions

For complex pipelines, drop the frame graph and author transitions explicitly. Trade convenience for visibility.

“Frame graphs compile to barriers. Wrong barriers = wrong image.”

When debugging a frame graph bug, capture in RenderDoc. The barrier panel shows what was generated; the missing transition is a red flag.