diff --git a/AGENTS.md b/AGENTS.md index 35117205..af2a9267 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -116,7 +116,7 @@ user-gated. Deterministic world-lifecycle automation protects fresh login, outdoor/world-edge/dungeon travel, same-location revisit, exact graceful disconnect, and uncapped fresh-process reconnect with JSON/PNG artifacts. Release builds; the current performance-program checkpoint passes -3,674 App tests / 3 skips and 8,158 complete-solution tests / 5 skips. +3,826 App tests / 3 skips and 8,335 complete-solution tests / 5 skips. **M4 feature work order (paused while the authorized performance program executes):** the six-slice pre-M4 world-interaction completion @@ -133,7 +133,7 @@ scarab/prismatic formula, DAT component icons, and authored 310 x 400 extent. **Current active engineering work:** complete Slices D–L of `docs/plans/2026-07-24-modern-runtime-architecture.md` under the recorded -approval interlocks. Slices A–F and Slice H completed by 2026-07-25. +approval interlocks. Slices A–H completed by 2026-07-25. Production world-mesh streaming now consumes the validated machine-local `acdream.pak` through `IPreparedAssetSource`; live DAT extraction remains explicit bake/equivalence/UI-Studio tooling. Capped, uncapped, dense-Arwic, @@ -151,16 +151,20 @@ deterministic/resource suites, Release build, complete tests, capped/uncapped nine-stop routes, and pinned dense Arwic pass on exact binary `91e82c3c`. Every checkpoint converged without pending publication, retirement, upload, warmup, or class backlog. The user explicitly approved Slices F–L, including -the F/G ECS and Slice J gameplay-owner gates, on 2026-07-24. G0–G4 are -implemented and G4's 46,599-comparison automated gate has zero mismatches; its -physical-display visual acceptance and G5 old-path deletion remain pending. +the F/G ECS and Slice J gameplay-owner gates, on 2026-07-24. G0–G5 are +complete. G4's 46,599-comparison automated gate has zero mismatches, the user +accepted the physical-display visual matrix, and G5 removed the production +`InteriorEntityPartition`. The ordinary production profile sustains 519.7 FPS +with CPU/GPU p50 1.869/1.096 ms and 652.1/928.3 MiB working/private memory. +The measured 22.34 KiB/frame remainder is assigned to Slice I1. Slice H's retained UI/frame, bounded-light, and pooled/borrowed/direct network -work is complete; 8,292 Release tests / 5 skips and the seven-checkpoint -connected lifecycle/reconnect gate pass. Slice I is active from +work is complete; the exact seven-checkpoint connected lifecycle/reconnect gate +passes. Slice I is active at I1 from `docs/plans/2026-07-25-modern-runtime-slice-i.md`. The exact G4 visual rollback is `git revert ef1d263337997bb030eadb7b8e71d73dc659907a`; do not revert G3 or the portal-warmup corrections. Evidence: -`docs/research/2026-07-25-slice-h-closeout.md`. +`docs/research/2026-07-25-slice-h-closeout.md` and +`docs/research/2026-07-25-slice-g5-production-profile.md`. **Structural prerequisite before new M4 subsystem work:** all eight behavior-preserving `GameWindow` decomposition slices and the automated diff --git a/CLAUDE.md b/CLAUDE.md index 3fad1173..cc7e8030 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -114,7 +114,7 @@ user-gated. Deterministic world-lifecycle automation protects fresh login, outdoor/world-edge/dungeon travel, same-location revisit, exact graceful disconnect, and uncapped fresh-process reconnect with JSON/PNG artifacts. Release builds; the current performance-program checkpoint passes -3,674 App tests / 3 skips and 8,158 complete-solution tests / 5 skips. +3,826 App tests / 3 skips and 8,335 complete-solution tests / 5 skips. **M4 feature work order (paused while the authorized performance program executes):** the six-slice pre-M4 world-interaction completion @@ -131,7 +131,7 @@ scarab/prismatic formula, DAT component icons, and authored 310 x 400 extent. **Current active engineering work:** complete Slices D–L of `docs/plans/2026-07-24-modern-runtime-architecture.md` under the recorded -approval interlocks. Slices A–F and Slice H completed by 2026-07-25. +approval interlocks. Slices A–H completed by 2026-07-25. Production world-mesh streaming now consumes the validated machine-local `acdream.pak` through `IPreparedAssetSource`; live DAT extraction remains explicit bake/equivalence/UI-Studio tooling. Capped, uncapped, dense-Arwic, @@ -149,16 +149,20 @@ deterministic/resource suites, Release build, complete tests, capped/uncapped nine-stop routes, and pinned dense Arwic pass on exact binary `91e82c3c`. Every checkpoint converged without pending publication, retirement, upload, warmup, or class backlog. The user explicitly approved Slices F–L, including -the F/G ECS and Slice J gameplay-owner gates, on 2026-07-24. G0–G4 are -implemented and G4's 46,599-comparison automated gate has zero mismatches; its -physical-display visual acceptance and G5 old-path deletion remain pending. +the F/G ECS and Slice J gameplay-owner gates, on 2026-07-24. G0–G5 are +complete. G4's 46,599-comparison automated gate has zero mismatches, the user +accepted the physical-display visual matrix, and G5 removed the production +`InteriorEntityPartition`. The ordinary production profile sustains 519.7 FPS +with CPU/GPU p50 1.869/1.096 ms and 652.1/928.3 MiB working/private memory. +The measured 22.34 KiB/frame remainder is assigned to Slice I1. Slice H's retained UI/frame, bounded-light, and pooled/borrowed/direct network -work is complete; 8,292 Release tests / 5 skips and the seven-checkpoint -connected lifecycle/reconnect gate pass. Slice I is active from +work is complete; the exact seven-checkpoint connected lifecycle/reconnect gate +passes. Slice I is active at I1 from `docs/plans/2026-07-25-modern-runtime-slice-i.md`. The exact G4 visual rollback is `git revert ef1d263337997bb030eadb7b8e71d73dc659907a`; do not revert G3 or the portal-warmup corrections. Evidence: -`docs/research/2026-07-25-slice-h-closeout.md`. +`docs/research/2026-07-25-slice-h-closeout.md` and +`docs/research/2026-07-25-slice-g5-production-profile.md`. **Structural prerequisite before new M4 subsystem work:** all eight behavior-preserving `GameWindow` decomposition slices and the automated diff --git a/docs/plans/2026-04-11-roadmap.md b/docs/plans/2026-04-11-roadmap.md index 67c01ece..d20effe5 100644 --- a/docs/plans/2026-04-11-roadmap.md +++ b/docs/plans/2026-04-11-roadmap.md @@ -1642,16 +1642,19 @@ port in any phase — no separate listing here. > reverted. The reapplied retained source subsequently passed the connected > portal/revisit matrix on 2026-07-25, including stable server objects and > paperdoll, distant interaction, and correct `/ls` plus spell-recall -> materialization. G4 is complete. G5 cleanup is active: normal production no +> materialization. G4 is complete. G5 is also complete: normal production no > longer builds `InteriorEntityPartition`; mesh and attached-particle ownership -> come from the retained frame product. The exact production-only -> performance/lifecycle matrix remains. +> come from the retained frame product. The exact lifecycle/reconnect matrix, +> capped/uncapped/dense correctness routes, and ordinary production profile +> pass. The final stable ordinary-production minute sustains 519.7 FPS with +> CPU/GPU p50 1.869/1.096 ms; the measured 22.34 KiB/frame remainder is the +> active Slice-I transition/query-scratch owner. > The historical exact cutover > rollback remains > `git revert ef1d263337997bb030eadb7b8e71d73dc659907a`. Slice H is complete: > retained UI/frame work, exact bounded light selection, and > pooled/borrowed/direct network I/O pass 8,292 Release tests / 5 skips and the -> connected lifecycle/reconnect gate. Slice I is active from +> connected lifecycle/reconnect gate. Slice I is active at I1 from > [its detailed plan](2026-07-25-modern-runtime-slice-i.md). **Spec:** `docs/superpowers/specs/2026-07-05-modern-pipeline-design.md` (the diff --git a/docs/plans/2026-05-12-milestones.md b/docs/plans/2026-05-12-milestones.md index f404bd9a..f2d80fca 100644 --- a/docs/plans/2026-05-12-milestones.md +++ b/docs/plans/2026-05-12-milestones.md @@ -110,14 +110,16 @@ CPU p99 is 34.7%/30.4% below Slice A and maximum frame allocation is the F/G ECS and Slice J gameplay-owner gates, on 2026-07-24. Slice F and G0–G4 are complete: G4's automated gate has zero mismatches and the user accepted the corrected retained-path portal/revisit matrix on 2026-07-25. -G5 cleanup is active; normal production now routes meshes and attached -particles from the retained frame product without building the old -`InteriorEntityPartition`. Focused route tests, 3,825 App tests / 3 skips, -and 8,334 solution tests / 5 skips pass. The exact production-only -performance/lifecycle matrix remains before G5 closeout. Slice H is -complete: retained UI/frame work, exact bounded light selection, and -pooled/borrowed/direct network I/O pass 8,292 Release tests / 5 skips and the -seven-checkpoint connected lifecycle/reconnect gate. Slice I is active under +G5 is complete. Normal production routes meshes and attached particles from +the retained frame product without building the old +`InteriorEntityPartition`; the user visual matrix, capped/uncapped/dense +correctness routes, exact seven-checkpoint lifecycle/reconnect gate, and +ordinary production profile pass. The final stable production minute sustains +519.7 FPS with CPU/GPU p50 1.869/1.096 ms and 22.34 KiB/frame allocation. +The complete Release gate is 3,826 App tests / 3 skips and 8,335 solution +tests / 5 skips. Slice H is complete: retained UI/frame work, exact bounded +light selection, and pooled/borrowed/direct network I/O pass. Slice I is active +at I1 under [`2026-07-25-modern-runtime-slice-i.md`](2026-07-25-modern-runtime-slice-i.md). The historical exact G4 visual rollback remains `git revert ef1d263337997bb030eadb7b8e71d73dc659907a`. diff --git a/docs/plans/2026-07-24-modern-runtime-architecture.md b/docs/plans/2026-07-24-modern-runtime-architecture.md index b7c7d545..4336329a 100644 --- a/docs/plans/2026-07-24-modern-runtime-architecture.md +++ b/docs/plans/2026-07-24-modern-runtime-architecture.md @@ -2,9 +2,8 @@ **Date:** 2026-07-24 -**Status:** Slices A–F and H are complete; G0–G4 and I0 are complete. Slices -F–L were explicitly approved 2026-07-24; G5 production-matrix closeout is -active. +**Status:** Slices A–H and I0 are complete. Slices F–L were explicitly +approved 2026-07-24; Slice I1 is active. **Scope:** Reconcile and sequence the existing Modern Pipeline (`MP`) and Linux/headless (`LH`) tracks using the 2026-07-24 connected performance audit. @@ -1184,21 +1183,23 @@ an improvement" carries the same evidence burden as a regression claim. ## 14. Current execution point -Slices A–E are complete. Slice E's exact physical-local Release binary -produced uncapped CPU p50/p95/p99 1.216/4.216/5.450 ms and GPU -0.725/2.486/2.666 ms across the nine-stop route. Dense Arwic, with 15,530 -entities and 111 animated entities, produced CPU 2.652/4.153/5.736 ms and GPU -1.576/2.504/2.662 ms. Every stable checkpoint converged without pending -publication, retirement, upload, warmup, or resource backlog. +Slices A–H are complete. The retained render scene is now the sole production +entity source: G5 removed the old whole-world `InteriorEntityPartition` from +normal mesh and attached-particle routing while preserving it only for +standalone tests and explicit diagnostic/oracle probes. The user accepted the +retained-path visual matrix. Capped/uncapped/dense routes and the exact +seven-checkpoint lifecycle/reconnect gate pass with graceful shutdown. -The dense median already satisfies the provisional 3.33 ms / 300 FPS target. -CPU tail cost remains above GPU cost and the normal draw path still scans and -partitions resident entities, so F/G can improve CPU utilization, scaling, and -tail behavior, but a dramatic average-FPS gain is not promised. The -implementation-ready F/G contract and ownership map are -[`2026-07-24-modern-runtime-slices-f-g-render-scene.md`](2026-07-24-modern-runtime-slices-f-g-render-scene.md). -The §0.1 and §0.3 gates were explicitly lifted 2026-07-24. Slice F is the -current execution point; `e7d9d6fa` is the pre-runtime rollback anchor. +The final ordinary-production minute on exact `14fbe92b` sustained 519.7 FPS: +CPU p50/p95/p99 1.869/2.306/2.484 ms and GPU +1.096/1.108/1.136 ms. Working/private memory was 652.1/928.3 MiB. +Frame-thread allocation is now 22.34 KiB median; allocation-tick evidence and +the four-mover baseline assign that remainder primarily to reset-complete +`Transition` collision/query scratch. I0 has pinned the retail oracle and +fixtures, so I1 is the current execution point. Evidence: +[`../research/2026-07-25-slice-g5-production-profile.md`](../research/2026-07-25-slice-g5-production-profile.md) +and +[`2026-07-25-modern-runtime-slice-i.md`](2026-07-25-modern-runtime-slice-i.md). The intended order is therefore: @@ -1208,10 +1209,10 @@ honest metrics + committed baselines (A — exit criteria block C) -> typed residence (D — unify/retune, not rebuild) -> cost-budgeted streaming (E) -> [APPROVED 2026-07-24: ECS deferral lifted under §0.1] - -> incremental render scene (F — CURRENT; referee first) + -> incremental render scene (F) -> delta GPU submission (G) -> residual frame cleanup (H-a, H-b, H-c) - -> flat collision assets (I — floats; depends only on B) + -> flat collision assets (I — CURRENT at I1) -> presentation-independent runtime (J — §0.3 authorization) -> Linux/headless/multi-session (K) -> evidence-gated GPU jobs (L) diff --git a/docs/plans/2026-07-24-modern-runtime-slices-f-g-render-scene.md b/docs/plans/2026-07-24-modern-runtime-slices-f-g-render-scene.md index 1e5e4561..f32a8679 100644 --- a/docs/plans/2026-07-24-modern-runtime-slices-f-g-render-scene.md +++ b/docs/plans/2026-07-24-modern-runtime-slices-f-g-render-scene.md @@ -2,8 +2,7 @@ **Date:** 2026-07-24 -**Status:** approved 2026-07-24; Slice F and G4 complete, G5 retained-route -cleanup active +**Status:** approved 2026-07-24; Slices F and G complete **Program:** `docs/plans/2026-07-24-modern-runtime-architecture.md` @@ -29,7 +28,7 @@ retail-faithful gameplay | G2 — packed dispatcher input | complete | Exact `f9829d5f` passed capped and uncapped nine-stop routes plus dense Arwic. Candidate order, packed input, classified output, and selection each completed 16,879 + 17,282 + 770 comparisons with zero mismatch; journal/rejection counts were zero and shutdown graceful. Evidence: `docs/research/2026-07-25-slice-g2-packed-dispatcher-gate.md`. | | G3 — retained classification/storage | complete | Exact `6a026c5a` passed capped and uncapped nine-stop routes plus dense Arwic with 17,069 + 16,827 + 757 exact comparisons in every channel, zero mismatch, warm cross-frame reuse, and graceful shutdown. Evidence: `docs/research/2026-07-25-slice-g3-retained-classification-gate.md`. | | G4 — production cutover | complete | Exact cutover `ef1d263337997bb030eadb7b8e71d73dc659907a` makes the retained frame product the production entity source at the existing five retail PView stages. Exact `03b10183` passed capped/uncapped nine-stop and uncapped dense-Arwic automation with 46,599 total product comparisons and zero mismatch. After the independent portal/private-view/revisit corrections, the user accepted the connected retained-path visual matrix on 2026-07-25: server objects and paperdoll survive travel, distant use works, `/ls` and spell recalls both materialize through the retail purple haze, and neither character pop nor recall tail remains. Evidence: `docs/research/2026-07-25-slice-g4-production-cutover-automated-gate.md` and `docs/research/2026-07-25-portal-regression-closeout.md`. | -| G5 | cleanup active | Normal production no longer builds `InteriorEntityPartition`: mesh and attached-particle ownership now consume the exact retained route ranges. The legacy partition remains only for standalone tests and explicitly enabled diagnostic/oracle probes. Focused route tests, 3,825 App tests / 3 skips, and 8,334 complete-solution tests / 5 skips pass; the exact production-only performance/lifecycle matrix remains. | +| G5 — old-path retirement and production closeout | complete | Exact `10ccce3f` removes `InteriorEntityPartition` from normal production: meshes and attached particles consume retained route ranges, while the legacy partition remains only for standalone tests and explicit diagnostic/oracle probes. Exact `14fbe92b` passes the seven-checkpoint lifecycle/reconnect gate after hardening the optional monitor-refresh boundary. The user visual gate, capped/uncapped/dense correctness routes, ordinary 519.7-FPS production profile, 3,826 App tests / 3 skips, and 8,335 complete-solution tests / 5 skips pass. The measured 22.34 KiB/frame remainder is assigned to Slice I1. Evidence: `docs/research/2026-07-25-slice-g5-production-profile.md`. | The exact pre-F/G runtime rollback anchor remains `e7d9d6fa`. F0 is non-drawing diagnostic infrastructure and therefore is not a visual-cutover diff --git a/docs/plans/2026-07-25-modern-runtime-slice-i.md b/docs/plans/2026-07-25-modern-runtime-slice-i.md index 50d55577..94326489 100644 --- a/docs/plans/2026-07-25-modern-runtime-slice-i.md +++ b/docs/plans/2026-07-25-modern-runtime-slice-i.md @@ -1,8 +1,8 @@ # Modern runtime Slice I — flat collision assets and zero-allocation physics **Status:** I0 COMPLETE — retail oracle, representative graph fixtures, and -four-mover allocation baselines fixed; active G5 production-matrix closeout -precedes I1 +four-mover allocation baselines fixed; G5 production closeout complete; I1 +active **Parent:** `2026-07-24-modern-runtime-architecture.md`, Slice I **Purpose:** remove parsed DAT object graphs and steady collision allocations without changing one retail collision decision, float, comparison, or traversal diff --git a/docs/research/2026-07-25-slice-g5-production-profile.md b/docs/research/2026-07-25-slice-g5-production-profile.md index d9181fc5..651a9b5f 100644 --- a/docs/research/2026-07-25-slice-g5-production-profile.md +++ b/docs/research/2026-07-25-slice-g5-production-profile.md @@ -1,52 +1,117 @@ -# Slice G5 production profile — 2026-07-25 +# Slice G5 production closeout — 2026-07-25 ## Status -Work in progress. The retained-scene connected visual re-gate passed on -2026-07-25. Normal production now consumes retained frame-product ranges for -both mesh submission and attached-particle ownership and does not build -`InteriorEntityPartition`. The legacy partition is retained only for -standalone tests and explicitly enabled diagnostic/oracle probes. This note -records production-only evidence gathered without enabling the referee or -lifecycle automation; the exact post-removal route matrix is still pending. +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. -## First steady RDP sample +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. -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: +## Exact implementation -| 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 | +| 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. | -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. It now supplies the +`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` builds the former partition only when -the retained frame product is unavailable in a standalone test or when an -explicit legacy comparison/probe is enabled. The production frame result -copies retained source and route counts before releasing its arena, so -diagnostics do not require the partition either. +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. -The focused route suite, 3,825 App tests / 3 skips, Release solution build, -and 8,334 complete-solution tests / 5 skips are green. The production-only -reference matrix below remains the G5 closeout gate. +## 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.5–2.8 ms to +2.306 ms, and GPU median improved from 1.2–1.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.