refactor(rendering): prepare retained particle routing

Derive attached particle owners from the exact retained PView route stream with a zero-allocation warm path. Correct G4 gate provenance, record the current production-only RDP sample, and keep G5 old-route deletion explicitly blocked until the reapplied retained cutover passes its connected visual gate.
This commit is contained in:
Erik 2026-07-25 08:45:18 +02:00
parent 20f9fadb12
commit c730632075
7 changed files with 374 additions and 20 deletions

View file

@ -10,9 +10,10 @@ The first connected retained-scene visual pass reported:
4. doors, signs, portals, NPCs, and other server-spawned objects disappeared
after repeated portal travel.
This note records the root causes and the accepted correction. It does not
reduce world radius, texture quality, particles, readiness, or retail
presentation.
This note records the root causes and the correction. It does not reduce world
radius, texture quality, particles, readiness, or retail presentation. The
correction's visual pass occurred on the temporary old-draw rollback; the
retained-source re-gate is tracked separately below.
## Retail and protocol anchors
@ -99,7 +100,11 @@ This ACE adaptation remains explicit in divergence AP-69.
- Complete App Release suite: 3,813 passed / 3 skipped.
- Release solution build: green with zero warnings.
- Complete Release solution suite: 8,322 passed / 5 skipped.
- User connected visual gate:
- User connected correction gate on rollback route (`2c848d41`):
- paperdoll remains visible;
- portal transit is materially faster;
- server-spawned objects remain after repeated travel.
- Retained production source:
- `20f9fadb` reapplies exact cutover `ef1d2633` over the correction;
- complete Release suite: 8,326 passed / 5 skipped;
- connected portal/revisit visual re-gate pending before G4 acceptance.

View file

@ -0,0 +1,43 @@
# Slice G5 production profile — 2026-07-25
## Status
Work in progress. The retained-scene cutover is running at `20f9fadb`, but G5
old-route deletion remains blocked on its connected portal/revisit visual
re-gate. This note records production-only evidence gathered without enabling
the referee or lifecycle automation.
## First steady RDP sample
The client was idle in-world at 60 Hz with the normal capped Release
presentation, High quality, a 4/12 near/far radius, and no developer or
automation UI. The title reported 173/625 landblocks, 10,383 entities, and 51
active animations. Five seconds of process CPU plus three one-second Windows
GPU counter samples measured:
| Metric | Value |
|---|---:|
| CPU | 2.68% of 16 logical processors, about 42.9% of one logical core |
| Working set | 255.8 MiB |
| Private bytes | 1,193.9 MiB |
| Threads / handles | 26 / 663 |
| GPU 3-D engine | 55.74% average, 56.26% maximum |
| Dedicated GPU process memory | 422 MiB |
| Shared GPU process memory | 141 MiB |
This is an RDP presentation sample, not the required physical-local reference
matrix and not evidence of a plateau across travel. It establishes that the
post-cutover retained path is active and gives G5 a pre-deletion production
point. The complete capped/uncapped nine-stop, dense-Arwic, lifecycle,
allocation, GC, stage-timing, and screenshot/instance-set matrix remains
mandatory after the visual re-gate.
## Prepared old-route dependency removal
`RenderFrameRouteOwnerSelector` derives attached particle owner IDs from the
exact retained PView route ranges. It supports exact-route replace/union and
all-range exclusion without allocation after warmup. This removes the final
particle-routing reason for normal production to build
`InteriorEntityPartition`; it is not wired into the running visual-gate binary.
Four focused tests and the 3,821-pass / 3-skip App Release suite are green
through an isolated output path.