59 lines
5.1 KiB
Markdown
59 lines
5.1 KiB
Markdown
# Campaign VM — VM7 automated closeout
|
||
|
||
**Date:** 2026-08-23 · **Binary:** `99d5b2a6` (source = binary, gate-verified) ·
|
||
**Status:** every automated VM7 row PASSED (the matrix on its second attempt — see #422); the owner's visual gates (VM3,
|
||
VM6, VM7 matrix) and the merge to main are OWED and were not attempted.
|
||
|
||
Every row names its command, lane and artifact (the campaign's closeout rule).
|
||
|
||
| Row | Command | Lane | Result | Artifact |
|
||
|---|---|---|---|---|
|
||
| Complete Release gate | `pwsh ./tools/run-release-gate.ps1` | hermetic (54-project graph, locked restore) | **15,283 passed / 0 skipped / 0 failed** across 14 assemblies | `artifacts/release-gate/release-gate-summary.json` |
|
||
| Connected lifecycle/reconnect route, pack off | `tools/run-connected-world-lifecycle-gate.ps1 -SkipBuild` | Live (local ACE, `+Acdream`) | **PASS**; warning: 25 expected world-edge landblock misses (capped) | `logs/connected-world-gate-20260823-043414/report.json` |
|
||
| Connected lifecycle/reconnect route, High pack | `… -RenderPackPreset high` | Live | **PASS**; same expected warning | `logs/connected-world-gate-20260823-043951/report.json` |
|
||
| VM0 invariance on the final binary | `tools/run-offline-pixel-gate.ps1 -RenderPackPreset retail -BuildingDetailTextures $false -Uncapped` for HEAD and `-ExeOverride <base+normals exe>`, two captures each | offline, isolated settings, one tool | **robust diff 5–10 px** (all in the lifestone band, VM0's known dynamic); whole-frame mean \|Δ\| 0.0075 = the repeat floor | `docs/research/evidence/vm7/1f151242-pack-off-vs-base-normals-robust.png` |
|
||
| #422 characterisation | `tools/i422/loop-debugheap.ps1` (24 High + 6 retail-1080p runs under the debug heap), 16 attached runs, `tools/i422/loop-plain.ps1` (10 plain retail-1080p runs, rebuild first) | offline, Release | **1 fault in ~57 runs** — the one hit was the matrix's retail row (pack OFF, first launch after a build); 0/46 under a debugger, 0/10 plain; no WER/event trace → no stack yet. Pack-independent exit-time fault, ~2 %; owner's call whether it blocks the merge | `docs/research/evidence/vm7/i422-*.txt`; `docs/ISSUES.md` #422 |
|
||
| AR performance matrix, changed presets | `tools/run-atmospheric-performance-matrix.ps1 -PresetSet retail,low,medium,high -ResolutionSet 1920x1080 -FramePacing uncapped -SkipBuild` | offline, 45 s warm-up | **PASS** (second attempt; see below) | `artifacts/vm7-matrix-2/atmospheric-performance-matrix.md`, copy under `evidence/vm7/` |
|
||
|
||
The `base+normals` reference is main `6c79d35c` + the two patches recorded at
|
||
`docs/research/evidence/vm0/` (config-dir isolation; A2 terrain normals),
|
||
built in a throwaway worktree and run through HEAD's gate script — never
|
||
the old tool (VM0 §"three methods that did not work", method 1).
|
||
|
||
## Performance matrix
|
||
|
||
`tools/run-atmospheric-performance-matrix.ps1 -Out artifacts/vm7-matrix-2 -PresetSet retail,low,medium,high -ResolutionSet 1920x1080 -FramePacing uncapped -SkipBuild` on `fe56b6cf`, RX 9070 XT, 45 s warm-up, 2048-sample windows — **RESULT=PASS**; every pack preset inside its declared ceiling (CPU p50 0.15/0.25/0.35 ms, GPU p50 2/3.25/4.5 ms, resident 64/128/256 MiB). Copy: `evidence/vm7/atmospheric-performance-matrix-fe56b6cf.md`.
|
||
|
||
| Preset | CPU p50 / p95 / p99 ms | Receiver p50 / p95 / p99 ms | GPU p50 / p95 / p99 ms | Resident MiB | Result |
|
||
|---|---:|---:|---:|---:|---|
|
||
| retail | 0 / 0 / 0 | 0 / 0 / 0 | 0 / 0 / 0 | 0 | PASS |
|
||
| low | 0.125 / 0.14 / 0.163 | 2.577 / 2.664 / 2.92 | 0.921 / 1.025 / 1.029 | 40.219 | PASS |
|
||
| medium | 0.134 / 0.154 / 0.189 | 2.557 / 2.661 / 2.964 | 1.033 / 1.06 / 1.17 | 74.09 | PASS |
|
||
| high | 0.135 / 0.147 / 0.174 | 2.413 / 2.469 / 2.835 | 1.235 / 1.277 / 1.295 | 114.056 | PASS |
|
||
|
||
The first attempt (`artifacts/vm7-matrix`, `621a0edf`) FAILED on its retail row: the client exited `-1073740940` (#422) on the first launch after a build — the pack presets of that attempt passed with the same numbers. That occurrence is what re-characterised #422 as pack-independent (see the issue).
|
||
|
||
## Register, roadmap, memory
|
||
|
||
- Register: IA-24 amended (the receiver lighting direction follows the
|
||
celestial shadow source while shadows render; authored-light fallback when
|
||
the gate is closed), IA-25 (foliage wind) and AP-232 (detail blend weight)
|
||
stand from their slices; no row retired at VM7.
|
||
- Roadmap: Campaign VM entry → "in flight, automated closeout complete;
|
||
owner gates and merge owed".
|
||
- Memory: `project_visualmaster_campaign.md` (digest + DO-NOT-RETRY) and
|
||
`feedback_pixel_diff_needs_repeat_floor.md`.
|
||
|
||
## What the owner gets to decide
|
||
|
||
1. **VM3** — the linear-light post stack (brief: plan §VM3 gate brief; the
|
||
neutral High preset is pixel-identical to pack-off on static content, the
|
||
non-neutral presets are darker and differently toned than before — the
|
||
curve table in the brief says by how much).
|
||
2. **VM6** — the wind (plan §VM6 Acceptance, six steps; Clear should read
|
||
"barely moving, alive", Rain/Storm "clearly windy, still not a flag";
|
||
the shadows follow; nothing moves indoors or pack-off).
|
||
3. **VM7** — the final pack-off / pack-on matrix, then the merge.
|
||
|
||
If any pack-on run ends with exit code `-1073740940`, #422 is back: run
|
||
`tools/i422/loop-debugheap.ps1` first.
|