docs(render): VM7 automated closeout note + roadmap entry (Campaign VM)

Release gate 15,283/0/0; connected lifecycle/reconnect route PASS pack-off
and High; VM0 invariance on the final binary (robust 5-10 px, lifestone
band); #422 0/40 instrumented runs. Performance-matrix section to follow.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Erik 2026-08-23 04:46:04 +02:00
parent 99d5b2a62f
commit 621a0edfc6
2 changed files with 51 additions and 1 deletions

View file

@ -2072,7 +2072,7 @@ OpenGL ceiling; revisit macOS only if a supported graphics backend is chosen.
**Future / unscheduled — Campaign AR:** the opt-in [Atmospheric Rendering / Shader Packs campaign](2026-08-21-atmospheric-rendering.md) makes moving authored sun-and-moon directional shadows from trees, monsters, players, and buildings its Tier-2 headline while preserving acdream's current retail-faithful renderer as the default and leaving physics, collision, gameplay, and network behavior unchanged; the project owner assigned Campaign AR on 2026-08-22 without displacing active M4 gameplay work. The [celestial source contract](../research/2026-08-22-dereth-celestial-shadow-sources.md) selects sun, dominant moon, then secondary moon by rendered direction while retaining AC's single authored directional-energy channel; sun rays and volumetrics remain sun-only. The previously referenced #268 + TS-8 package is complete and retired. Stage 1's automated correctness, performance, lifetime, locked-restore, Release, evidence, documentation, and project-owner live gates completed on 2026-08-22 after the opt-in exposure correction. The [Stage 2 connected and closeout gate](../research/2026-08-22-atmospheric-stage2-connected-gate.md) now closes every available machine-local ACE, dense A/B, long-lifetime, graphical-package, shader, Release, and complete-test row. The implemented two-client gate proved that ACE rejects two concurrent characters on the one available account and is ready for separate observer credentials without recording secrets. A distinct-account remote-player row, unavailable physical GPU classes, and final project-owner pack-off/pack-on acceptance remain external gates; Campaign AR is not yet declared shipped.
**Planned, owner-directed — Campaign VM (VisualMaster):** the [VisualMaster campaign](2026-08-22-visualmaster-campaign.md) closes the [Campaign AR review](../research/2026-08-22-campaign-ar-review.md) findings with evidence (pack-off pixel/perf invariance vs `6c79d35c`, the un-anchored detail fade, a linear-light post stack, truthful closeouts, volumetric jitter) and adds weather-driven foliage wind behind the render pack. Named by the owner 2026-08-22; awaiting the owner's goal.
**In flight, automated closeout complete — Campaign VM (VisualMaster):** the [VisualMaster campaign](2026-08-22-visualmaster-campaign.md) closed the [Campaign AR review](../research/2026-08-22-campaign-ar-review.md) findings with evidence: VM0 proved the pack-off path is the pre-campaign renderer (pixel identity on static content, CPU 13 %, allocation 25×); VM2 cdb-read retail's live detail path (single-pass texture stages, the z-fade dead for built meshes) and VM1 re-ported #226 to it; VM4 made the documents truthful (real hardware darkens, the fallback brightened); VM5 de-banded the volumetrics (#421 filed); VM3 put the post stack in linear light with a numerically neutral preset; VM6 added weather-driven foliage wind behind the render pack (scenery-only, cutout/trunk motions, casters follow, independent of the shadow gate) through five Opus review rounds and a repeat-floor pixel apparatus ([note](../research/2026-08-23-vm6-foliage-wind-pixel-proof.md)). VM7's automated gates ran 2026-08-23 on `99d5b2a6`: release gate 15,283/0/0, connected lifecycle/reconnect route PASS pack-off and pack-on, final pack-off vs `base+normals` robust diff 510 px, #422 not reproducible in 40 instrumented runs. **Owed: the owner's VM3 and VM6 visual gates and the VM7 pack-off/pack-on matrix, then the merge to main; not declared shipped until then.**
---

View file

@ -0,0 +1,50 @@
# Campaign VM — VM7 automated closeout
**Date:** 2026-08-23 · **Binary:** `99d5b2a6` (source = binary, gate-verified) ·
**Status:** every automated VM7 row PASSED; 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 -Runs 24` (under cdb, debug heap) + 16 attached runs | offline High, Release | **0 / 40 faults** (P ≈ 0.5 % at the filed 1-in-8 rate) — not reproducible on this binary; watch item | `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 | see the "Performance matrix" section below | `artifacts/vm7-matrix/atmospheric-performance-matrix.md` |
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
(filled from `artifacts/vm7-matrix/atmospheric-performance-matrix.md`)
## 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.