docs(render): close unified residency slice
This commit is contained in:
parent
1853a57c12
commit
66690805c5
8 changed files with 192 additions and 5 deletions
|
|
@ -512,6 +512,19 @@ the waiting attachment graph transitively, so A→B→C recovers B before C in t
|
|||
same parent-first pass. Recovery is edge-triggered by object/appearance/pose
|
||||
publication; permanent missing DAT or holding parts are never polled per frame.
|
||||
|
||||
Runtime content residence has one typed policy and diagnostic ledger without
|
||||
centralizing physical storage. `ResidencyManager` owns generation-safe logical
|
||||
asset identity, owner tokens, leases, immutable budgets, and aggregate
|
||||
accounting. Specialized render/content owners continue to own their mesh
|
||||
ranges, texture arrays, staging payloads, decoded animations/audio, and
|
||||
retained shared-alpha scratch. The manager never sees a GL name: policy runs as
|
||||
a single writer during update/resource maintenance, while logical eviction and
|
||||
fence-delayed physical release remain render-thread owner operations. Prepared
|
||||
package address space is reported separately from committed CPU bytes, and
|
||||
allocator capacity is not double-counted as live GPU content. Slice D's
|
||||
pressure and connected evidence is
|
||||
`docs/research/2026-07-24-slice-d-unified-residency-report.md`.
|
||||
|
||||
The remaining aggregation is primarily `_playerController`'s player-specific
|
||||
movement plus the separate `WorldEntity`/animation/physics component types.
|
||||
Those should become ONE class:
|
||||
|
|
|
|||
|
|
@ -230,6 +230,20 @@ 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.
|
||||
|
||||
**Unified residency policy seam (2026-07-24).** The extracted WB caches remain
|
||||
the physical owners of mesh, arena, atlas, and texture resources.
|
||||
`AcDream.App.Rendering.Residency.ResidencyManager` adds an acdream-owned typed
|
||||
policy/diagnostic layer over them: generation-safe asset handles, independent
|
||||
owner tokens and leases, immutable startup budgets, aggregate accounting, and
|
||||
bounded trim requests. It never stores or deletes a GL name. Existing owners
|
||||
perform logical eviction and fence-delayed physical release on the render
|
||||
thread. The same ledger observes the prepared-package mapping, prepared/staged
|
||||
CPU mesh data, decoded animation/audio data, and retained shared-alpha scratch
|
||||
without double-counting the package's clean memory-mapped pages as committed
|
||||
heap. Deterministic pressure tests exceed every configured ceiling and prove
|
||||
zero-charge teardown. Connected evidence:
|
||||
`docs/research/2026-07-24-slice-d-unified-residency-report.md`.
|
||||
|
||||
**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