perf(render): bound animation and alpha scratch residency
Complete Slice D3 by replacing the unbounded animation dictionary with a concurrent byte/count LRU and by putting the three retail alpha scratch owners behind one typed aggregate budget. Preserve immediate growth and draw order while reclaiming one-frame density spikes after sustained under-use. Close stale bounds-cache issue evidence without inventing a cache.
This commit is contained in:
parent
3e18fc2730
commit
f2644d42c2
18 changed files with 857 additions and 34 deletions
|
|
@ -1,6 +1,6 @@
|
|||
# Modern Runtime Slice D — Typed Asset Handles and Unified Residency
|
||||
|
||||
**Status:** active — D1 and D2 complete
|
||||
**Status:** active — D1 through D3 complete
|
||||
**Program:** `docs/plans/2026-07-24-modern-runtime-architecture.md`
|
||||
**Baseline:** Slice C closeout commit `a564c4b7`
|
||||
**Behavior contract:** no visual-quality or retail-behavior change
|
||||
|
|
@ -227,6 +227,19 @@ residence.
|
|||
- Bring deferred-alpha retained scratch behind a bounded capacity owner.
|
||||
- Close stale #243 after proving no current bounds cache exists.
|
||||
|
||||
**Complete 2026-07-24.** `RetailAnimationLoader` now uses a concurrent
|
||||
in-flight load gate feeding a byte-and-count bounded LRU. Cache eviction drops
|
||||
only the cache reference, so active sequencers retain valid immutable
|
||||
animations; duplicate DID requests coalesce while unrelated reads remain
|
||||
parallel. The shared retail alpha path now partitions its 16 MiB startup budget
|
||||
between the queue, object dispatcher, and particle renderer. Each physical
|
||||
owner grows immediately when a frame requires it, reports exact retained
|
||||
backing capacity, and shrinks only after repeated severe under-use. This bounds
|
||||
one-frame density spikes without changing draw order, particle content, or
|
||||
visible quality. Issue #240 is closed. Issue #243 is closed as a stale audit
|
||||
finding: no `_boundsCache`, bounds memo, or cited insertion site exists in the
|
||||
current source, so no replacement cache was invented.
|
||||
|
||||
### D4 — Diagnostics and forced pressure
|
||||
|
||||
- Publish aggregate and per-domain budgets/occupancy/fragmentation through the
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue