docs(render): record Campaign AR Stage 2 closeout
This commit is contained in:
parent
f92479ac3e
commit
e56ac57486
3 changed files with 187 additions and 31 deletions
149
docs/research/2026-08-22-atmospheric-stage2-connected-gate.md
Normal file
149
docs/research/2026-08-22-atmospheric-stage2-connected-gate.md
Normal file
|
|
@ -0,0 +1,149 @@
|
|||
# Campaign AR Stage 2 connected and closeout gate
|
||||
|
||||
**Date:** 2026-08-22
|
||||
**Verdict:** PASS for every machine-local Stage 2 row; external hardware,
|
||||
second-client remote-player evidence, and final project-owner acceptance remain
|
||||
explicit gates
|
||||
|
||||
## Scope and evidence boundary
|
||||
|
||||
This report records the executable ACE-connected, dense-scene A/B, long-life,
|
||||
external-package, shader, build, and complete-test work that followed the
|
||||
[Stage 1 live approval](2026-08-22-atmospheric-stage1-live-gate.md). It applies
|
||||
the measured constraints and budgets already established in the
|
||||
[terrain and atmospheric findings](2026-08-21-terrain-and-atmospheric-rendering-findings.md);
|
||||
it does not re-derive them or revisit that report's refuted claims.
|
||||
|
||||
The measured binaries were clean-source Release products. The retail renderer
|
||||
remained the default and authoritative path. No physics or collision behavior
|
||||
was changed.
|
||||
|
||||
## Connected scenario matrix
|
||||
|
||||
The three-process connected lifecycle gate passed on exact commit `0b6c6557`.
|
||||
Its report is
|
||||
[`logs/connected-world-gate-20260822-132443/report.json`](../../logs/connected-world-gate-20260822-132443/report.json).
|
||||
The capped six-stop process ran for 249.114 seconds, the fresh uncapped reconnect
|
||||
for 67.917 seconds, and the pack-transition process for 51.277 seconds. All
|
||||
three exited gracefully with no hard failures. Full graphical-process teardown
|
||||
and the subsequent fresh Vulkan context/device construction passed.
|
||||
|
||||
The route proved:
|
||||
|
||||
- capped and uncapped operation, portal travel, reconnect, fresh process, and
|
||||
destination publication/retirement;
|
||||
- outdoor, Facility Hub interior/dungeon, and outdoor-after-dungeon states;
|
||||
- atomic High select, retail disable, High re-enable, 1024 x 768 resize, clear,
|
||||
overcast, and rain transitions;
|
||||
- resource-free retail restoration and active enhanced metadata at every named
|
||||
screenshot; and
|
||||
- terminal render-scene shadow parity with zero mismatches and zero pending
|
||||
deltas.
|
||||
|
||||
The connected metadata makes the caster boundary concrete. The transition row
|
||||
published 6,624 casters: 374 terrain commands, 6,571 outdoor statics, 26
|
||||
buildings, 10 animated statics, one local player, 14 non-player creatures, one
|
||||
other live dynamic, and one equipped child. The capped login row reached 9,533
|
||||
casters, including 922 animated statics; Holtburg after the dungeon reached
|
||||
9,539. Facility Hub correctly published `Outdoor=false`, zero directional
|
||||
strength, and zero casters. Outdoor DAT publication still cannot distinguish a
|
||||
tree from other outdoor scenery, and create-object metadata still cannot
|
||||
distinguish a hostile monster from another non-player creature, so the report
|
||||
keeps the authoritative `OutdoorStatics` and `NonPlayerCreatures` labels.
|
||||
|
||||
One diagnostic distinction is retained rather than hidden: streaming frames
|
||||
recorded transient render-frame candidate-order differences before the final
|
||||
candidate sets and digests converged. The authoritative render-scene shadow
|
||||
comparison finished 77/77 with zero mismatch in the transition process; no
|
||||
pack or retail-output divergence remained at the terminal checkpoints.
|
||||
|
||||
## Dense turning A/B and frame pacing
|
||||
|
||||
Matched dense-Arwic runs used the same route, commit `1f75ce05`, resolution,
|
||||
camera turn, server, character, entity population (15,522), and warmed scene:
|
||||
|
||||
- Atmospheric Medium:
|
||||
[`logs/connected-dense-town-20260822-133441.report.json`](../../logs/connected-dense-town-20260822-133441.report.json)
|
||||
- retail/off:
|
||||
[`logs/connected-dense-town-20260822-133727.report.json`](../../logs/connected-dense-town-20260822-133727.report.json)
|
||||
|
||||
| Phase | Retail CPU p50 / p95 / p99 | Medium CPU p50 / p95 / p99 | Retail GPU p50 / p95 | Medium GPU p50 / p95 |
|
||||
|---|---:|---:|---:|---:|
|
||||
| Six-second turn | 27.8 / 32.9 / 36.7 ms | 28.6 / 32.2 / 40.2 ms | 0.6 / 1.2 ms | 1.5 / 1.9 ms |
|
||||
| Stationary | 28.6 / 30.2 / 31.1 ms | 29.1 / 30.9 / 32.6 ms | 0.9 / 0.9 ms | 1.7 / 1.8 ms |
|
||||
|
||||
The user's turning hitch reproduces on the retail path: Medium did not worsen
|
||||
turn CPU p95 (32.2 versus 32.9 ms). It adds the expected GPU work, about
|
||||
0.7–0.9 ms at p95/p50 in this run. The Atmospheric screenshot's pack-owned
|
||||
window reports incremental CPU p50/p95/p99 of 0.209/0.248/0.302 ms, inclusive
|
||||
GPU p50/p95/p99 of 1.374/1.818/1.869 ms, 14,890 casters, three cascades,
|
||||
61,655,840 resident bytes, and 44,236,800 transient bytes. Medium therefore
|
||||
stays inside its declared CPU, GPU, and 128 MiB resident budgets.
|
||||
|
||||
Process working/private memory was also recorded, as required: the stationary
|
||||
Medium process was 1,669.9/2,084.4 MiB versus retail's 1,354.8/1,676.8 MiB.
|
||||
Those process totals include driver and shared host allocations and are not
|
||||
substituted for the exact pack-owned GPU ledger. Retirement and terminal
|
||||
convergence are covered by the long route and deterministic lifecycle gates.
|
||||
|
||||
## Long lifetime and package lifecycle
|
||||
|
||||
The nine-stop Medium route passed on exact commit `1f75ce05`:
|
||||
[`logs/connected-r6-soak-20260822-134004.report.json`](../../logs/connected-r6-soak-20260822-134004.report.json).
|
||||
It ran for 516.064 seconds through Caul, Sawato, Rynthid, Aerlinthe, Sawato
|
||||
revisit, Holtburg, Caul return, Sawato plateau, and Caul plateau. Every
|
||||
materialization, movement/jump/combat exercise, return/convergence check, and
|
||||
graceful close passed. The warnings are expected world/DAT population noise;
|
||||
there are no renderer, pack-budget, or lifecycle failures.
|
||||
|
||||
The connected graphical external-package gate passed all six fresh processes
|
||||
on exact commit `f92479ac`. Its machine-readable report is
|
||||
[`artifacts/atmospheric-rendering/connected-package-lifecycle-20260822-135333/report.json`](../../artifacts/atmospheric-rendering/connected-package-lifecycle-20260822-135333/report.json).
|
||||
|
||||
| Scenario | Plugin outcome | Renderer outcome | Persisted selection |
|
||||
|---|---|---|---|
|
||||
| Install/select v1 Low | loaded | external v1 active | external v1 |
|
||||
| Replace by v2 with stale v1 selection | loaded | safe retail fallback with exact version diagnostic | retail |
|
||||
| Explicitly select v2 High | loaded | external v2 active | external v2 |
|
||||
| Remove package | failed-not-found | safe retail fallback | retail |
|
||||
| Inject failure after registration | failed and transaction rolled back | safe retail fallback | retail |
|
||||
| Correct package and reselect | loaded | external v2 active | external v2 |
|
||||
|
||||
Every process connected, entered world, captured its render-pack metadata,
|
||||
disconnected, and exited with code zero. Failure rows created no half-active
|
||||
pack and recovery required an explicit corrected selection.
|
||||
|
||||
## Final automated gate
|
||||
|
||||
On clean exact code commit `f92479ac`:
|
||||
|
||||
- managed shader regeneration compiled **24/24** Vulkan pairs and produced no
|
||||
tracked SPIR-V difference;
|
||||
- forced locked restore passed;
|
||||
- the complete Release solution built with **0 warnings and 0 errors**; and
|
||||
- the repository-owned fresh-process gate passed **15,178/15,178** tests with
|
||||
zero skips or failures across 14 assemblies. App contributed **5,950/5,950**.
|
||||
|
||||
The complete logs, TRX files, environment inventory, hashes, and aggregate
|
||||
summary are under
|
||||
[`artifacts/atmospheric-rendering/stage2-closeout-release-gate-f92479ac/`](../../artifacts/atmospheric-rendering/stage2-closeout-release-gate-f92479ac/).
|
||||
|
||||
## Remaining external gates
|
||||
|
||||
Campaign AR is not declared shipped by this report. Three evidence classes are
|
||||
not available to this machine-local run:
|
||||
|
||||
1. A second connected client/account must produce a nonzero authoritative
|
||||
`RemotePlayers` caster row and a visible moving remote-player shadow.
|
||||
2. Supported physical GPU classes other than the installed Radeon RX 9070 XT
|
||||
and integrated AMD adapter must repeat the required pack-off/Low/Medium/
|
||||
High/Auto resolution and pacing rows. The integrated adapter currently
|
||||
proves safe Auto-to-retail fallback, not active Low or the complete matrix.
|
||||
3. The project owner must later perform and explicitly accept the final
|
||||
pack-off/pack-on visual matrix, including moving sun and moon shadows,
|
||||
foliage cutouts, temporal shimmer/cascade seams, indoor gating, rays and
|
||||
sun-only volumetrics, and retail restoration.
|
||||
|
||||
These are evidence gates, not authorization for more renderer features. The
|
||||
current code, SDK, connected lifecycle, package lifecycle, long lifetime, and
|
||||
machine-local automation are complete.
|
||||
Loading…
Add table
Add a link
Reference in a new issue