ASTRO BOT crowd scene: ~25 FPS -> ~55-58 FPS.
- The PM4 command stream is interpreted on its own thread. Draws, dispatches,
barriers, end-of-pipe writes and the interpreter's stores are handed to the
render thread in stream order through a short queue (64 items); callbacks
that return a result wait for the work before them.
- Graphics program resolution runs on a worker thread ahead of the draws, from
copy-on-write register bank snapshots, and is validated against the GPU
ownership state before use.
- The resource materialization cache rebases buffer base addresses instead of
missing on every moved descriptor.
- DCC metadata fills that cannot be absorbed run on the host, so binding the
surface no longer waits for a GPU readback.
- Cheaper per-draw work: cached pipeline lookups no longer wait on program
preparation, redundant dynamic state is skipped, image bindings and target
requests are memoized, fewer allocations.
- Guest thread stack/TLS slots are chosen and mapped under one lock, so two
threads can no longer share a stack.
- Wave lowering split into native wave32, native wave64 and emulated wave64.