flowchart TD D["draw of state block B
(same block as the last draw)"] --> Q{"bindings_valid and
B == bindings_of?"} Q -- no --> F["set heaps (7 slots), sampler heap,
root block, vertex buffers"] Q -- yes --> R{"root block address
changed?"} R -- yes --> RS["table setAddress at index 6
(cached IMP)"] R -- no --> T RS --> T["encoder setArgumentTable
(cached IMP)"] F --> T T --> DC["drawIndexedPrimitives
(cached IMP)"] C["rect clear, barrier, copy, dispatch..."] -. resets bindings_valid .-> Q