acdream/docs/research/2026-07-25-slice-g5-production-profile.md
Erik 2effba5127 docs(rendering): close retained-scene G5
Record the exact visual, route, lifecycle, production CPU/GPU/memory, and allocation evidence for retiring the normal InteriorEntityPartition. Reconcile the roadmap, milestones, shared session instructions, and Slice I handoff so the measured transition/query scratch remainder has one owner.

Co-authored-by: OpenAI Codex <codex@openai.com>
2026-07-25 13:55:38 +02:00

5.8 KiB
Raw Blame History

Slice G5 production closeout — 2026-07-25

Status

Complete. Normal production consumes retained RenderFrameView route ranges for both mesh submission and attached-particle ownership and does not build InteriorEntityPartition. The former partition remains only for standalone tests and explicitly enabled diagnostic/oracle probes.

The connected retained-path visual gate is also complete. The user accepted stable server objects and paperdoll state across travel, restored distant interaction, and retail-shaped /ls plus spell-recall materialization without character pop or recall-animation tail.

Exact implementation

Commit Purpose
10ccce3f2dc38d1ff8ce5d0fbc962156a50b022d Retire the production InteriorEntityPartition; derive all five production mesh routes and attached-particle owner sets from the retained frame product.
14fbe92b08a74326e59b085eba34d7b772e9c940 Treat active-monitor refresh telemetry as temporarily unavailable during Windows console/RDP topology replacement, preventing a GLFW monitor-query exception from escaping the native move callback.

RenderFrameRouteOwnerSelector supports exact-route replace/union and all-range exclusion without warm-frame allocation. It supplies the landscape-static, outside-dynamic, look-in, cell-static, and dynamic-last particle passes. RetailPViewRenderer constructs the legacy partition only when no retained product exists in a standalone test or when a legacy comparison/probe explicitly requires it. Production diagnostics copy retained source and route counts before arena release and therefore do not resurrect the old enumeration.

Connected correctness and lifecycle matrix

All reports identify the checked-out source and measured binary exactly and end through graceful client shutdown.

Gate Exact commit Result Evidence
Capped canonical nine-stop 10ccce3f Pass, 0 failures logs/connected-r6-soak-20260725-105133.report.json
Uncapped canonical nine-stop 10ccce3f Pass, 0 failures logs/connected-r6-soak-20260725-121035.report.json
Dense Arwic, 15,530 entities / 111 animated 10ccce3f Pass, 0 failures logs/connected-dense-town-20260725-123107.report.json
Fresh login, outdoor/dungeon/facility/revisit, graceful logout, fresh uncapped reconnect 14fbe92b Pass, 0 failures, 7 checkpoints logs/connected-world-gate-20260725-131552/report.json
Exact post-fix dense redrive 14fbe92b Pass, 0 failures logs/connected-dense-town-20260725-134935.report.json

The lifecycle gate's only warning is the canonical route's 25 expected world-edge landblock misses. DAT-driven missing-emitter diagnostics remain the known VFX-content warnings in the soak reports; no fallback effect is created.

The final dense redrive changed from the physical console to RDP before its stationary sample, so its absolute timing is diagnostic only. It still proves dense-scene construction, route completion, resource cleanup, and graceful shutdown on the exact post-fix binary.

Ordinary production profile

A separate Release client ran uncapped with:

  • no UI probe or automation route;
  • no automation artifact owner or screenshot/current-path oracle;
  • no developer tools;
  • no WB diagnostic comparison;
  • only the permanent frame profiler and frame-history recorder.

The physical-display capture stayed at the normal Aerlinthe scene for its final stable minute. The retained frame product was the sole production draw source.

Metric Final stable 60 seconds
Frames / throughput 31,180 / 519.7 FPS
CPU frame p50 / p95 / p99 / max 1.869 / 2.306 / 2.484 / 6.727 ms
GPU frame p50 / p95 / p99 / max 1.096 / 1.108 / 1.136 / 1.342 ms
Update p50 / p95 / p99 0.239 / 0.274 / 0.366 ms
Frame-thread allocation p50 / p95 / p99 22,880 / 24,056 / 24,216 B

External five-second CPU and three-sample Windows GPU counters measured:

Resource Value
Process CPU 9.74% of 16 logical processors, about 1.56 cores while uncapped
Working set 652.1 MiB
Private bytes 928.3 MiB
Threads / handles 35 / 755
GPU 3-D engine 32.11% average, 64.37% maximum
Dedicated / shared GPU process memory 449.8 / 17.3 MiB

Evidence: logs/g5-production-uncapped-20260725-134345.frame.csv and logs/g5-production-uncapped-20260725-134345.out.log.

This is not presented as a capped-versus-uncapped memory comparison: scene, camera, pacing, and cache age must match before making that claim. It is an honest ordinary-production absolute point. Relative to Slice H's separate ordinary-production frame-thread baseline, median allocation fell from 25.6 KiB to 22.34 KiB (12.7%), CPU p95 improved from 2.52.8 ms to 2.306 ms, and GPU median improved from 1.21.3 ms to 1.096 ms.

Remaining allocation owner

G5 removed the retained current-render partition identified by Slice H. Ordinary production still allocates 22.34 KiB/frame, above the program's initial 4 KiB/frame whole-client target. The prior allocation-tick stacks and the four-mover Slice-I baseline identify reset-complete Transition collision/query scratch as the next dominant owner. That storage/lifetime change is intentionally Slice I1, where differential trajectory tests can prove that reusing scratch changes no retail collision decision or float.

G5 therefore closes its render-scene ownership contract without weakening the program-level allocation target. Slice I owns the measured remainder.

Verification

  • Focused display-pacing/callback/settings suite: 70 passed.
  • Release solution build: pass; 16 already tracked test-project warnings.
  • Complete invariant-culture Release suite: 8,335 passed / 5 skipped.
  • Connected lifecycle/reconnect: pass on exact 14fbe92b, both sessions exit code 0 and graceful logout confirmed.
  • User visual acceptance: pass on 2026-07-25.
  • No new retail divergence was introduced.