flowchart TD
D["draw record
points at state block B"] --> V{"B == viewports_of?"}
V -- no --> VC["render area, viewports, scissors
computed and kept"]
V -- yes --> P
VC --> P{"pass open and B == pass_of?"}
P -- no --> PC["compare attachments
(memcmp of 8 targets + depth)"]
P -- yes --> S
PC --> S{"state_valid and B == state_of?"}
S -- no --> SC["draw_state: compare and set pipeline,
depth-stencil, cull, bias, viewports..."]
S -- yes --> B["bindings, root arguments, draw call"]
SC --> B
R["clear, barrier, query, new encoder"] -. resets state_valid / pass_of .-> S