0d994db4b3
- VBState caching on all 5 vertex paths (was only 2D and sin/cos). Eliminates pointer re-reads: load once, emit 4 vertices, writeback. - Cache setupRender() result per-frame via static + resetParticleCache() called from worldUpdateDetour. Saves ~7K function calls/frame. - @mulAdd throughout for FMA codegen on vertex position and texcoord. - A/B verified: BASELINE ~521ms → CUSTOM ~387ms (~25% reduction).