flowchart TD
D["Draw call"] --> F{"a state setter ran
since the last draw?"}
F -- no --> R["reuse the last
state block"]
F -- yes --> B["build the state
in scratch memory"]
B --> C{"same bytes as
the last block?"}
C -- yes --> R
C -- no --> N["record a new
state block"]
R --> W["write the 88-byte draw
pointing at the block"]
N --> W
K["check mode:
always build and compare"] -.-> B