From d84edf0cebb5b9a7b542651f5d1b0d6dc3297d42 Mon Sep 17 00:00:00 2001 From: Erik Date: Sat, 22 Aug 2026 14:14:40 +0200 Subject: [PATCH] docs(render): finalize Campaign AR machine-local gate --- docs/plans/2026-04-11-roadmap.md | 2 +- .../plans/2026-08-21-atmospheric-rendering.md | 32 ++++++++------ ...08-22-atmospheric-stage2-connected-gate.md | 43 +++++++++++++++---- 3 files changed, 53 insertions(+), 24 deletions(-) diff --git a/docs/plans/2026-04-11-roadmap.md b/docs/plans/2026-04-11-roadmap.md index 56128b58..6bad6c33 100644 --- a/docs/plans/2026-04-11-roadmap.md +++ b/docs/plans/2026-04-11-roadmap.md @@ -2070,7 +2070,7 @@ Native macOS graphical support is not committed by this track. The current mandatory renderer requires modern OpenGL capabilities beyond Apple's native 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. A second-client 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. +**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. --- diff --git a/docs/plans/2026-08-21-atmospheric-rendering.md b/docs/plans/2026-08-21-atmospheric-rendering.md index a02376cd..d13a3f56 100644 --- a/docs/plans/2026-08-21-atmospheric-rendering.md +++ b/docs/plans/2026-08-21-atmospheric-rendering.md @@ -4,9 +4,10 @@ **Status:** MACHINE-LOCAL STAGE 2 COMPLETE — the authored sun-and-moon shadow-source extension, Stage 1 owner gate, connected ACE matrix, dense A/B, long lifetime, graphical package lifecycle, shader, locked-restore, Release, -and complete-test gates pass. A second-client remote-player row, unavailable -physical GPU classes, and final project-owner pack-off/pack-on acceptance remain -external closeout gates; the campaign is not yet declared shipped. +and complete-test gates pass. A distinct-account second-client remote-player +row, unavailable physical GPU classes, and final project-owner pack-off/pack-on +acceptance remain external closeout gates; the campaign is not yet declared +shipped. **Phase id:** **Campaign AR** — assigned by the project owner on 2026-08-22 **Scheduling:** originally held for the post-M7 rendering-polish pass; the project owner explicitly authorized implementation on 2026-08-21. This @@ -30,9 +31,9 @@ source selection, and finished every automated gate that did not require the project owner's physical-display judgment. The owner accepted the subsequent live visual/performance round on 2026-08-22 after the default Atmospheric exposure was corrected from 1.0 to 0.80. The machine-local Stage 2 rows are now -complete. Remaining closeout is limited to a second connected remote player, -unavailable physical-hardware rows, and final owner acceptance; it does not add -another renderer feature tier. +complete. Remaining closeout is limited to a second connected remote player on +a distinct ACE account, unavailable physical-hardware rows, and final owner +acceptance; it does not add another renderer feature tier. Stage 1's dense-scene regression is pinned by the connected failures already captured on 2026-08-22: Atmospheric fell back at 68,395, 67,581, and even @@ -503,8 +504,11 @@ The exact commands, commits, metrics, artifacts, and evidence limits are in the transitions and weather, and fresh-process renderer/context/device-recreation assertions against a real ACE session, proving exact resource convergence and no stale maps/owners. - Remote-player diagnostics remained zero because only one account/client was - available; a second connected client must close that evidence row. + The implemented two-client gate proved the observer login and movement, but + ACE rejected the concurrent primary login when both used the available + account. The gate now accepts separate primary and observer credentials and + keeps them out of its artifacts; a distinct-account connected run must close + the authoritative nonzero `RemotePlayers` row. 2. **EXTERNAL HARDWARE GATE.** Repeat the current clean-source RX 9070 XT pack-off/Low/Medium/High/Auto × 1080p/1440p/4K × capped/uncapped matrix on every other supported physical GPU class. The integrated-AMD Auto-to-retail @@ -684,9 +688,9 @@ gate passed on 2026-08-22. The v1 manifest schema, semantic binding table, compatibility/failure guide, validator, built-in pack, and three buildable external samples are present and automated. Connected graphical package lifecycle and long-run convergence pass. -The second-client remote-player row, remaining physical GPU classes, and final -project-owner acceptance remain open; the 30-row RX 9070 XT reference matrix is -complete. +The distinct-account second-client remote-player row, remaining physical GPU +classes, and final project-owner acceptance remain open; the 30-row RX 9070 XT +reference matrix is complete. Publish the manifest/schema, semantic binding table, sample no-op pack, Atmospheric pack, compatibility diagnostics, authoring/validation tool, and @@ -926,9 +930,9 @@ and adds the current renderer's ownership and lifecycle boundaries. The design, implementation, Stage 1 owner gate, and every available machine-local Stage 2 connected, performance, lifetime, package, shader, build, and complete-test gate are complete. The campaign becomes **shipped** only -after the second-client remote-player row, remaining physical-hardware rows, -and final visual gates above pass and the project owner accepts both sides of -the final matrix: +after the distinct-account second-client remote-player row, remaining physical- +hardware rows, and final visual gates above pass and the project owner accepts +both sides of the final matrix: - **pack off:** unchanged output, performance, ownership, and lifecycle from acdream's authoritative default retail-faithful renderer; and diff --git a/docs/research/2026-08-22-atmospheric-stage2-connected-gate.md b/docs/research/2026-08-22-atmospheric-stage2-connected-gate.md index 4198e36f..98566ce6 100644 --- a/docs/research/2026-08-22-atmospheric-stage2-connected-gate.md +++ b/docs/research/2026-08-22-atmospheric-stage2-connected-gate.md @@ -1,9 +1,9 @@ # 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 +**Verdict:** PASS for every machine-local Stage 2 row that the available +credentials and hardware can exercise; a distinct-account remote-player row, +external hardware, and final project-owner acceptance remain explicit gates ## Scope and evidence boundary @@ -113,28 +113,53 @@ 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. +## Remote-player gate availability + +The connected remote-player gate was exercised on exact commit `a861510a`: +[`artifacts/atmospheric-rendering/connected-remote-player-20260822-140355/report.json`](../../artifacts/atmospheric-rendering/connected-remote-player-20260822-140355/report.json). +The observer entered the world and moved at the target location. The concurrent +primary client then timed out waiting for `CharacterList`: ACE did not permit a +second simultaneous character from the same account. Both clients were closed +cleanly, and the failed row is not represented as renderer evidence. + +The gate now accepts a separate observer account and password, keeps credentials +out of its report, fails fast on session failure, and records whether distinct +accounts were configured. The authoritative nonzero `RemotePlayers` caster row +and visible moving remote-player shadow therefore require only access to a +second account; no missing renderer or test-harness implementation remains. + ## Final automated gate -On clean exact code commit `f92479ac`: +On clean exact code commit `d78ce100`: - 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 repository-owned fresh-process gate passed **15,179/15,179** tests with + zero skips or failures across 14 assemblies. App contributed **5,951/5,951**. 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/). +[`artifacts/atmospheric-rendering/stage2-closeout-release-gate-d78ce100/`](../../artifacts/atmospheric-rendering/stage2-closeout-release-gate-d78ce100/). + +An earlier rerun exposed that the dense-shadow allocation assertion had only a +single warmup frame and could include tiered-JIT work under full-suite parallel +load. Commit `d78ce100` changes that test fixture only: it performs a complete +64-frame dense warm window before measurement. The focused test passed 12 +fresh-process repeats, the complete App assembly passed, and the final gate +above is the authority; production renderer behavior was not changed by this +hardening. ## 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. +1. A second connected client using a distinct account must produce a nonzero + authoritative `RemotePlayers` caster row and a visible moving remote-player + shadow. The connected gate is implemented; the available single account was + rejected by ACE for concurrent play as recorded above. 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