acdream/docs/research/2026-08-23-vm7-automated-closeout.md
2026-08-23 05:26:04 +02:00

59 lines
5.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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 510 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.