flowchart LR
list["one long command list
(6,000+ ExecuteIndirect)"] --> cb1["command buffer 1
writes argument records
into allocator A"]
cb1 --> cb2["command buffer 2
reads A"] --> cb3["command buffer 3
reads A"]
cb1 -.-> bad["before: A recycled as soon as buffer 1 finishes,
so buffers 2 and 3 can read garbage draw counts ✘"]
cb3 -.-> good["now: every allocator of the submission
is kept until its last buffer completes ✔"]