fix(rendering): bound portal resource lifetime
Separate logical ownership, render publication, and GPU retirement across live entities, landblocks, particles, textures, mesh arenas, portal/UI teardown, and per-frame scratch storage. Add bounded DAT/texture caches, upload budgets, three-frame fence retirement, exact-incarnation appearance reconciliation, frame pacing, and extensive lifetime conformance coverage.\n\nThe seven-destination connected route now cuts peak working/private memory roughly in half, returns Caul to 125-153 FPS locally, and produces no WER or AMD reset.\n\nCo-authored-by: OpenAI Codex <codex@openai.com>
This commit is contained in:
parent
3971997689
commit
749e8ceeb1
225 changed files with 29107 additions and 3914 deletions
|
|
@ -186,6 +186,20 @@ rendering and landblock mesh pins while retaining the terrain slot. Core's
|
|||
matching physics demotion preserves the terrain surface but removes indoor
|
||||
cells, portals, buildings, and static shadow registrations.
|
||||
|
||||
**Bounded residency and GPU retirement seam (2026-07-18).** Runtime DAT access
|
||||
keeps raw file payload caching disabled and layers bounded typed-object and
|
||||
decoded-pixel LRUs above the single `DatCollection`. `ObjectMeshManager`, the
|
||||
standalone bindless texture cache, and the owner-scoped composite texture-array
|
||||
cache all distinguish an active owner from an evictable unowned entry. Appearance
|
||||
changes and landblock demotion acquire-before-publish and withdraw-before-release;
|
||||
rebucketing never creates a second owner. `GlobalMeshBuffer` uses reclaimable,
|
||||
coalescing vertex/index ranges and migrates incrementally within explicit physical
|
||||
ceilings. Texture layers, terrain slots, mesh ranges, and old backing stores are
|
||||
returned only after `GpuFrameFlightController` observes the frame fence that can
|
||||
no longer reference them. This lifetime machinery is acdream-owned integration
|
||||
around the extracted WB mesh pipeline; it does not add a second DAT decoder or a
|
||||
reduced-distance rendering path.
|
||||
|
||||
**Workflow:** Before re-implementing any AC-specific rendering or dat-handling
|
||||
algorithm, **check this inventory first**. If we already extracted it (🟢
|
||||
sections), it's in `src/AcDream.App/Rendering/Wb/` — use our copy. If WB has
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue