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 ✔"]