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