docs(rendering): record G4 automated gate

Capture the exact capped, uncapped, and dense physical evidence, reveal-readiness corrections, comparison-mode performance interpretation, pending visual gate, and single surgical rollback boundary.

Co-authored-by: OpenAI Codex <codex@openai.com>
This commit is contained in:
Erik 2026-07-25 05:01:27 +02:00
parent 03b10183e9
commit 51e184725f
2 changed files with 137 additions and 1 deletions

View file

@ -27,7 +27,7 @@ retail-faithful gameplay
| G1 — scene-query replacement | complete | Exact `e346f8bb` passed capped and uncapped nine-stop routes plus uncapped dense Arwic: 29,392 + 29,025 + 1,522 same-frame candidate comparisons, zero mismatches, equal counts/digests at every checkpoint, exact binary/source identity, and graceful shutdown. Evidence: `docs/research/2026-07-25-slice-g1-scene-query-candidate-gate.md`. | | G1 — scene-query replacement | complete | Exact `e346f8bb` passed capped and uncapped nine-stop routes plus uncapped dense Arwic: 29,392 + 29,025 + 1,522 same-frame candidate comparisons, zero mismatches, equal counts/digests at every checkpoint, exact binary/source identity, and graceful shutdown. Evidence: `docs/research/2026-07-25-slice-g1-scene-query-candidate-gate.md`. |
| 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`. | | 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`. | | 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 | active; visual gate pending | Exact cutover `ef1d263337997bb030eadb7b8e71d73dc659907a` makes the retained frame product the production entity source at the existing five retail PView stages. Automated Release and physical gates precede the user visual gate; the old route referee remains until that gate passes. | | G4 — production cutover | automated gate complete; visual gate pending | 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, zero mismatch, every reveal ready, and graceful shutdown. The old route referee remains until the user visual gate passes. Evidence: `docs/research/2026-07-25-slice-g4-production-cutover-automated-gate.md`. |
| G5 | pending | Physical performance/lifecycle closeout follows the user visual gate. | | G5 | pending | Physical performance/lifecycle closeout follows the user visual gate. |
The exact pre-F/G runtime rollback anchor remains `e7d9d6fa`. F0 is The exact pre-F/G runtime rollback anchor remains `e7d9d6fa`. F0 is
@ -638,6 +638,18 @@ and 1,000 warm reuse frames with zero thread allocation. Evidence:
There is no permanent runtime fallback. A failed gate reverts the cutover There is no permanent runtime fallback. A failed gate reverts the cutover
commit; it does not ship a hidden old/new switch. commit; it does not ship a hidden old/new switch.
**Automated gate completed 2026-07-25.** Exact gated source `03b10183` passed
capped and uncapped nine-stop routes plus uncapped dense Arwic. The retained
product completed 20,502 + 24,463 + 1,634 continuous comparisons with zero
mismatch. Every canonical reveal was ready with zero pending composite warmup,
the scene journal was empty, source and binary hashes matched, and every
process closed gracefully. The gate corrected whole-retained-world composite
warmup discovery by sourcing the exact published 3×3 destination neighborhood;
that correction is draw-path independent. Fixed-camera artifacts are captured.
The user visual gate is the only remaining G4 acceptance item, so old-route
deletion and G5 production-only profiling remain blocked. Evidence:
`docs/research/2026-07-25-slice-g4-production-cutover-automated-gate.md`.
### G5 — Physical performance and lifecycle gate ### G5 — Physical performance and lifecycle gate
Run the exact Slice-E reference matrix: Run the exact Slice-E reference matrix:

View file

@ -0,0 +1,124 @@
# Slice G4 Production Cutover — Automated Gate
**Date:** 2026-07-25
**Production cutover:** `ef1d263337997bb030eadb7b8e71d73dc659907a`
**Gated source:** `03b10183e95985c658e5975d2cc1a082a589738d`
**Result:** automated gate accepted; user visual gate pending
## Purpose
G4 makes the retained, scene-built `RenderFrameView` the production entity
source at the five existing retail PView stages. Terrain, buildings, EnvCells,
particles, alpha ordering, selection, lighting, mesh/texture ownership, and GL
execution retain their established owners. The old route is still built only
as a diagnostic referee while lifecycle automation is enabled; it is not
drawn.
## Cutover shape
- `RetailPViewRenderer` borrows the exact generation/frame-stamped product.
- `RetailPViewPassExecutor` expands its ordered route ranges at the same five
PView stages used before the cutover.
- `WbDrawDispatcher` classifies and draws packed candidates through the
established shader, texture, light, alpha, and selection owners.
- Unchanged static classifications and ordered scene indices persist across
frames; only dirty records refresh.
- Full-scene digests and old/new comparisons are consumer-gated and absent
from an ordinary launch.
- Production does not require or call the current-path referee.
## Corrections made before and during the gate
The first implementation pass found and corrected four integration costs
before the cutover commit:
1. ordinary runtime composition incorrectly required the optional comparison
observer;
2. selection geometry was constructed twice;
3. a diagnostic scene digest sorted the full scene every production frame;
4. outdoor/dynamic indices were copied and sorted every frame despite stable
membership.
The first exact nine-stop run then exposed an independent reveal-readiness
weakness. Composite warmup used the same 128-item limit for cheap candidate
discovery and expensive mesh/texture preparation. Caul's roughly 21,000
retained objects could exhaust the portal reveal window before discovery
finished. `129dd77d` separates those budgets.
A second run proved that a late membership edge could still restart the
whole-world follow-up scan. `03b10183` adds a stable destination-neighborhood
source over `GpuWorldState`'s canonical published buckets. Warmup now reads
only the 3×3 reveal neighborhood, including static and live projections while
the generation is deliberately quiesced. Both corrections apply equally to
the old and retained draw paths; neither changes the visual rollback boundary.
## Exact physical evidence
| Route | Report | Product comparisons | Final rebuild / cross-frame reuse | Result |
|---|---|---:|---:|---|
| Capped nine-stop | `logs/connected-r6-soak-20260725-043955.report.json` | 20,502 | 1 / 6,109 | pass |
| Uncapped nine-stop | `logs/connected-r6-soak-20260725-044923.report.json` | 24,463 | 2 / 6,037 | pass |
| Uncapped dense Arwic | `logs/connected-dense-town-20260725-045805.report.json` | 1,634 | 2 / 3,833 | pass |
Every route used a Release binary whose embedded commit exactly matched
`03b10183e95985c658e5975d2cc1a082a589738d`, exited with code zero through the
graceful logout path, and recorded:
- zero product/referee candidate mismatch;
- zero reveal invariant failure;
- every canonical reveal ready;
- zero composite warmup items at every stable checkpoint;
- zero pending render-journal operations or rejected scene deltas;
- retained-classification reuse across returns;
- fixed-camera PNG artifacts for every checkpoint.
Dense Arwic exercised 15,530 resident objects and 111 active animated statics.
Its final frame retained 4,949,760 bytes of packed classification and reused
3,833 unchanged visible projections.
## Performance interpretation
The connected G4 gate intentionally keeps the complete old route and
field-level referee enabled on every sampled frame. Dense Arwic therefore
reported 29.3 ms CPU p50 and roughly 10 MiB of diagnostic allocation per frame
while GPU p50 remained 1.8 ms. These are comparison-mode costs, not the
production-only result. An ordinary development launch after consumer-gating
measured roughly 8 ms with about 90 KiB frame-thread allocation in a dense
scene. The authoritative production-only performance matrix belongs to G5,
after the user visual gate permits deletion of the old route and transition
diagnostics.
## Deterministic gate
- Production composition succeeds without a comparison observer.
- The product routes in exact PView stage order.
- Transform-only scene updates preserve index revision and refresh only the
dirty record.
- Membership/sort changes advance index revision and rebuild ordered indices.
- A 21,025-record warmup discovery completes independently of the conservative
128-entity preparation/upload budget.
- Readiness snapshots include destination static/live projections even while
ordinary gameplay visibility is quiesced.
- App Release: 3,775 passed / 3 skipped.
- Complete Release solution: 8,259 passed / 5 skipped.
- Release build: zero errors; the complete test build retains 16 pre-existing
test warnings.
## Visual gate and rollback
The user must still inspect login, outdoor/dungeon portal transitions,
selection, alpha/translucency, animated/equipped objects, particles, radar,
and repeated destination returns before G4 can delete the old referee.
If that visual gate fails, the exact surgical command is:
```powershell
git revert ef1d263337997bb030eadb7b8e71d73dc659907a
```
Do not reset the branch and do not revert G3 (`6a026c5a`). The two
reveal-readiness corrections are valid on both draw paths and remain after the
cutover revert.