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. |
||
|---|---|---|
| .. | ||
| Buffers | ||
| GpuCommands | ||
| Images | ||
| Metal | ||
| Pipelines | ||
| Rendering | ||
| Scheduling | ||
| Vulkan | ||