parent
e0ba3e7f2c
commit
3ebb120dd2
20 changed files with 700 additions and 100 deletions
|
|
@ -0,0 +1,89 @@
|
|||
# Campaign OVERHAUL v2 — owner-directed closeout, 2026-09-06
|
||||
|
||||
**CLOSED — OWNER ACCEPTED WITH CARRIED ISSUES.** After the connected testing
|
||||
and the #483 distance repair, the owner directed: "Ok defer that as an issue.
|
||||
I want to close out the campain, commit and merge this worktree with main and
|
||||
then push main to remote gita". This is the final merge-gate disposition:
|
||||
accept the campaign with #484 deferred, not a claim that every remaining G4
|
||||
checklist row was individually run or passed. Unreported rows remain
|
||||
unreported; known failed evidence remains FAIL.
|
||||
|
||||
## Shipped scope
|
||||
|
||||
S1-S5 provide the geometry and cross-cell membership products, single retail
|
||||
frame walk, depth/alpha ordering, and consumer/material cutovers. Gate-found
|
||||
repairs cover outdoor buildings, portal reveal, dungeon lighting, held items,
|
||||
cathedral exterior collision and finally missing Far-terrain registration.
|
||||
FW's predecessor ledger remains historical; its old clip model is not the
|
||||
shipping architecture. M4 as a whole is not declared complete.
|
||||
|
||||
The last bounded fix, #483, carries the existing height-table terrain bounds
|
||||
through Near/Far construction and all Far conversions, registers terrain
|
||||
independently of buildings, retains it during demotion and removes it during
|
||||
full retirement. It changes no radius, fog, LOD or retail walk algorithm.
|
||||
The owner used the repaired build; the subsequently reported mountain flicker
|
||||
is separately retained as #484, with no confirmed cause or speculative fix.
|
||||
|
||||
## Final candidate verification
|
||||
|
||||
- Release App/test build: PASS, zero warnings/errors.
|
||||
- Narrow production-path regression suite: 106 passed / 0 failed / 0 skipped,
|
||||
using the explicit recipe10 package. The initial 105/1 run selected the
|
||||
obsolete default recipe8 package; both reports are retained under
|
||||
`artifacts/483-far-terrain/`. No source change masked that mismatch.
|
||||
- Final no-build App hermetic-filter regression: **7,161 passed / 0 failed /
|
||||
0 skipped**. Report:
|
||||
`artifacts/483-closeout-app-hermetic/483-closeout-app-hermetic.trx`.
|
||||
Filter excludes Lane InstalledDat, Linux, Manual, Timing, Live and
|
||||
PreparedPackage. This is an App result, not a new complete-solution run.
|
||||
- Post-owner independent retail review: **PASS**, no blocking finding.
|
||||
Independent architecture/lifetime review: **PASS**, no blocking finding.
|
||||
Both reviewed the six production/two test files; no further fix round.
|
||||
Review scope and named/paired retail evidence are in
|
||||
`483-far-terrain-registration-contract.md`; neither review certifies #484.
|
||||
- App SHA256:
|
||||
`869BA14CB2C610E006C80BDFFCBD75629339A3486B8B98D7708B23050700FF34`.
|
||||
Core SHA256:
|
||||
`B0E676482A45ED77C2AB050BBBC988139D1BF6D99308C42ABB0CFF440D39A0BC`.
|
||||
Package `acdream-v10-s5-c5.pak` SHA256:
|
||||
`4E0FA6C589ECE12E13099A56385077964961EC52F888BC9161C6F5D34829B59B`.
|
||||
- Owner launches: `logs/owner-g4-20260906-r2/` (PID17856) and
|
||||
`logs/owner-g4-20260906-r3/` (PID24476), same repaired build.
|
||||
No new automated visual/PNG PASS is invented for this closeout.
|
||||
|
||||
## Preserved evidence and carried work
|
||||
|
||||
The previous integrated source `eea83ac884d0b0fd74d86a17a16d7d5d93f64d94`
|
||||
passed Release, 17,094 complete-solution hermetic tests, repeated unchanged
|
||||
geometry/membership and Signature8 checks, lifecycle/reconnect and R6.
|
||||
Those results are historical integrated evidence, not a full-suite run on
|
||||
the final #483 delta.
|
||||
|
||||
Canonical InstalledDat remains **376 pass / 8 known failures / 1 known skip**.
|
||||
The five final visual controls retain 51 inspected PNGs and their narrow,
|
||||
provisional verdicts. Four controls exited0; the wall control exited
|
||||
**0xC0000374 (process FAIL)** despite graceful network logout. No native stack
|
||||
establishes its cause or equates it with the AMD notice. See
|
||||
`c1c-integrated-verification.md`,
|
||||
`s5-final-lifecycle-stability-verification.md` and
|
||||
`s5-final-visual-controls.md` for exact limitations, paths and sealed manifests.
|
||||
|
||||
Carried without claiming repair: **#484** distant silhouette flicker (explicit
|
||||
owner deferral); **#422** native shutdown symptom; **#477** AMD crash notice /
|
||||
unconfirmed initiating cause; the known InstalledDat failures/skip; the known
|
||||
retail cathedral exterior-slab leak; owner-deferred FPS/C2; and the existing
|
||||
divergence-register residuals including **AP-149** (Far static/building
|
||||
closure). #483 adds no intentional retail deviation and retires none of
|
||||
those residuals. Remaining unreported G4 matrix rows are not fabricated PASS
|
||||
rows; the owner's closeout instruction supersedes waiting for that session.
|
||||
|
||||
## Integration authorization
|
||||
|
||||
Commit the owned candidate and documentation, merge the campaign branch into
|
||||
main, then push **origin/main** to Gitea
|
||||
`https://git.snakedesert.se/erik/acdream.git`. Do not push the GitHub remote.
|
||||
Preserve main's unrelated untracked files and WorldBuilder submodule checkout;
|
||||
no reset, clean, stash, history rewrite or force push. Actual Git completion
|
||||
is reported after the operations succeed, not asserted by this pre-commit note.
|
||||
Retail is untouched. Its presence does not block a build by the owner's
|
||||
explicit override; a running ACDream still must not have its binaries replaced.
|
||||
|
|
@ -5,6 +5,50 @@ Owner order: **implement, owner tests, then review**. This overrides the normal
|
|||
pre-owner review order for this bounded fix; no claim of review closure follows
|
||||
from implementation or successful compilation.
|
||||
|
||||
**Latest owner safety correction (2026-09-06):** retail being open does NOT
|
||||
block building/testing/launching ACDream. The owner explicitly directed
|
||||
"Just ignore if retail is up or not, does not affect our building. Now build
|
||||
and launch." Leave retail untouched. Only a running ACDream blocks overwriting
|
||||
its build or launching a duplicate. This supersedes all older both-client
|
||||
absence requirements below; those describe the earlier handoff, not current
|
||||
permission. The requested launch is manual, with review after the owner's test.
|
||||
|
||||
## Final disposition — CLOSED, 2026-09-06
|
||||
|
||||
The owner directed campaign closeout and integration, with subsequent mountain
|
||||
flicker deferred as #484. After the owner session, independent retail and
|
||||
architecture/lifetime reviews both **PASS**, no blocking findings and no new
|
||||
fix round. Retail review verified unchanged get_land_limits bounds, independent
|
||||
Far terrain admission, all three metadata-preserving conversion paths and
|
||||
unchanged walk/LOD policy against named retail and the paired evidence below.
|
||||
Lifetime review verified the sole owner, retained publication receipt,
|
||||
demotion/full-removal split, late-clear non-resurrection and production-route
|
||||
regressions. Neither review certifies #484 or closes AP-149.
|
||||
|
||||
Final no-build App hermetic-filter regression: **7,161/0/0**; report
|
||||
`artifacts/483-closeout-app-hermetic/483-closeout-app-hermetic.trx`.
|
||||
The Release build and 106 narrow passes below cover the same product candidate.
|
||||
See `2026-09-06-campaign-closeout.md` for the owner's merge-gate disposition
|
||||
and retained failures. No new individual visual PASS is asserted.
|
||||
|
||||
## Historical execution — owner client launched
|
||||
|
||||
After the explicit owner override, Release App/test build passed with zero
|
||||
warnings/errors. Initial narrow run: 105 pass / 1 fail because it selected the
|
||||
old default acdream.pak (recipe 8, expected 10). No product change was made for
|
||||
that environment failure. Rerun with ACDREAM_PAK_PATH explicitly selecting the
|
||||
same acdream-v10-s5-c5.pak as the client: **106 pass / 0 fail / 0 skip**.
|
||||
Both TRX reports remain under artifacts/483-far-terrain/.
|
||||
|
||||
The fixed uncommitted candidate launched once: PID17856 at
|
||||
2026-09-06T07:37:36.5010165Z, enteredWorld07:37:40.5272305Z; logs are
|
||||
logs/owner-g4-20260906-r2/. App SHA256
|
||||
869BA14CB2C610E006C80BDFFCBD75629339A3486B8B98D7708B23050700FF34;
|
||||
Core B0E676482A45ED77C2AB050BBBC988139D1BF6D99308C42ABB0CFF440D39A0BC.
|
||||
Retail untouched, no automated route or automatic close. Owner testing and
|
||||
post-owner review were pending at this launch checkpoint; the final disposition
|
||||
above supersedes it and the earlier unbuilt handoff statements below.
|
||||
|
||||
## Confirmed cause
|
||||
|
||||
Owner-g4-20260906-r1 logged NearRadius4/FarRadius25, unchanged maximum preference.
|
||||
|
|
@ -29,7 +73,8 @@ preserves this known gap instead of asserting a usable far draw product.
|
|||
both tiers. Keep exactly one landscape owner and existing walk ordering/LOD.
|
||||
Near publication supplies buildings separately; far entries have no buildings.
|
||||
3. Forward the terrain metadata through both PublishAsFar conversions and all
|
||||
normal load/promotion routes. No extra DAT or collision/static read for Far.
|
||||
normal load/promotion routes, including LandblockStreamer's unconditional
|
||||
LoadFar near-payload stripping. No extra DAT or collision/static read for Far.
|
||||
Respect the retained publication receipt and existing retry/budget semantics.
|
||||
4. Near-to-far retirement clears building references but retains the terrain
|
||||
entry/bounds. Full terrain removal removes its landscape entry. Repeated
|
||||
|
|
@ -50,7 +95,8 @@ do not claim it retired because distant terrain now draws.
|
|||
|
||||
- Far build keeps EnvCells null and performs only its existing heightmap read,
|
||||
but carries exact non-flat authored vertical bounds.
|
||||
- Production publisher + real landscape/walk product produces a nonempty
|
||||
- Actual LoadFar worker -> DrainCompletions -> production publisher + real
|
||||
landscape/walk product preserves the bounds and produces a nonempty
|
||||
terrain turn for an in-view far-only block beyond near radius4, with no
|
||||
building/object population. The old missing-registration implementation must
|
||||
fail this assertion; a renderer-slot count alone is insufficient.
|
||||
|
|
@ -64,11 +110,17 @@ do not claim it retired because distant terrain now draws.
|
|||
## Ownership, safety and handoff
|
||||
|
||||
One OpenAI implementer owns only LandblockBuild.cs, LandblockBuildFactory.cs,
|
||||
LandblockRenderPublisher.cs, LandblockPresentationPipeline.cs,
|
||||
LandblockRenderPublisher.cs, LandblockPresentationPipeline.cs, LandblockStreamer.cs,
|
||||
Rendering/Walk/WalkLandscapeAssembler.cs and their directly affected tests.
|
||||
Small related declaration/comment edits may be proposed, not broadened silently.
|
||||
Lead owns issue/ledger/architecture/register and this contract. No shader/PAK edit.
|
||||
|
||||
Scope amendment: the implementer found that the real LoadFar worker reconstructs
|
||||
LandblockBuild while stripping near payload, losing separately carried terrain
|
||||
bounds. The lead authorized only that metadata forwarding in the sixth production
|
||||
file and an actual worker-to-walk regression. This implements requirement 3;
|
||||
no scheduling, loading policy or new retail deviation is authorized.
|
||||
|
||||
**Retail PID25988 is owner-held: DO NOT TOUCH.** No close, input, debugger attach,
|
||||
build, tests or launch while either client is running. Code edits may proceed.
|
||||
Do not invoke Claude or start review agents. Return the uncommitted scoped diff
|
||||
|
|
@ -76,3 +128,47 @@ and exact unrun test commands; implementation is NOT yet built or tested.
|
|||
After the owner closes retail, lead does the green Release build and narrow
|
||||
regression run, launches one manual client, and leaves review until after the
|
||||
owner's test. No main merge and no G4 acceptance are implied.
|
||||
|
||||
## Lead static retail check — 2026-09-06
|
||||
|
||||
Named pseudo-C identifies the exact helper as
|
||||
`CLandBlock::get_land_limits0052F1D0`, not calc_lighting. The existing local
|
||||
Ghidra endpoint8081 is offline; no new tool or retail process was launched.
|
||||
Instead the lead read the paired file `C:\Turbine\Asheron's Call\acclient.exe`
|
||||
as data: timestamp2013-09-06, PDB GUID9e847e2f-777c-4bd9-886c-22256bb87f32,
|
||||
age1, SHA256006ffeadc5d679c871497112a5bd1f87714d0e273e2166bae5052dde369297b1.
|
||||
The separately named acclient_codex_oracle.exe is2015 and was excluded.
|
||||
|
||||
Direct PE byte inspection agrees with the named source:
|
||||
|
||||
- 0050634F onward loads mid_width from this+4, squares it, and walks the
|
||||
complete block_draw_list backwards. Non-null and block+FC in-view tests
|
||||
precede the virtual DrawBlock call. There is no building-presence gate.
|
||||
- 0052F281 onward loads the maximum byte's height-table value, adds
|
||||
float[007C8F1C]=200.0 (bytes00004843) and stores this+E0; the minimum-byte
|
||||
value subtracts float[007928B0]=1.0 (bytes0000803F), stored at this+E4.
|
||||
The existing compute helper's formula is therefore preserved, not replaced
|
||||
by the GPU AABB's different margins.
|
||||
|
||||
This is factual input verification for the repair, not the postponed code
|
||||
review or a test PASS. Retail remained open and untouched throughout.
|
||||
|
||||
## Candidate handoff — 2026-09-06
|
||||
|
||||
The implementer returned the six production files plus
|
||||
LandblockBuildFactoryTests.cs and LandblockConcretePresentationPipelineTests.cs
|
||||
uncommitted. The candidate and regression tests are written; ownership is back
|
||||
with the lead. No implementation agent remains active on this repair.
|
||||
Only whitespace validation (`git diff --check`) ran. The candidate is
|
||||
**UNBUILT, UNTESTED and UNREVIEWED**; the previous eea83ac88 binary is unchanged.
|
||||
Retail PID25988 remains owner-held, ACDream is absent, ACE UDP9000/PID2296 is up.
|
||||
No build, test, client launch, debugger attach or client close was performed.
|
||||
|
||||
When both clients are absent, build the App test project in Release (which
|
||||
builds its App dependencies) and run the narrow lane below before owner launch.
|
||||
The test run must not be reported as a visual gate or the deferred review.
|
||||
|
||||
```powershell
|
||||
dotnet build tests/AcDream.App.Tests/AcDream.App.Tests.csproj -c Release --no-restore -m:1 -p:UseSharedCompilation=false
|
||||
dotnet test tests/AcDream.App.Tests/AcDream.App.Tests.csproj -c Release --no-build --no-restore --filter "FullyQualifiedName~LandblockBuildFactoryTests|FullyQualifiedName~LandblockConcretePresentationPipelineTests|FullyQualifiedName~LandblockPresentationPipelineTests|FullyQualifiedName~LandblockRenderPublisherTests|FullyQualifiedName~WalkLandscapeAssemblerTests|FullyQualifiedName~RetailFrameWalkTests|FullyQualifiedName~WalkLandCellOrderTests" --logger "trx;LogFileName=483-terrain-regression.trx" --results-directory artifacts/483-far-terrain
|
||||
```
|
||||
|
|
|
|||
|
|
@ -0,0 +1,53 @@
|
|||
# #484 — distant mountain silhouette flicker
|
||||
|
||||
**OPEN — OWNER-DEFERRED, 2026-09-06.** The owner explicitly requested filing
|
||||
this issue and closing/merging the campaign. Investigation stops here; exact
|
||||
pose and consecutive-frame reproduction are future issue work, not a pending
|
||||
campaign gate. Cause remains unconfirmed. No production fix or PASS claimed.
|
||||
|
||||
2026-09-06; owner report on the uncommitted #483 candidate based on e0ba3e7f2.
|
||||
Owner says flicker continues with character/camera still; turning reveals more
|
||||
mountain at affected spots. User image:
|
||||
`C:/Users/erikn/AppData/Local/Temp/codex-clipboard-d6976e08-527f-47b9-8f00-79429065ea13.png`.
|
||||
A still does not establish the temporal mechanism. No fix or visual PASS yet.
|
||||
|
||||
## Read-only findings
|
||||
|
||||
- #483's launched App hash remains
|
||||
869BA14CB2C610E006C80BDFFCBD75629339A3486B8B98D7708B23050700FF34;
|
||||
PID17856, logs/owner-g4-20260906-r2/. Retail was untouched.
|
||||
- `TerrainModernRenderer.AppendCellIndexRuns` covers all 384 mesh indices for
|
||||
side1/cell0; other LOD cell grids expand disjoint complete row ranges. This
|
||||
is draw granularity, not a changing geometry LOD. No obvious stale terrain
|
||||
list accumulation found in driver/renderer clear paths.
|
||||
- Terrain indirect commands use a per-frame upload-ring allocation. Fog only
|
||||
blends colour; the terrain shader does not discard fogged fragments.
|
||||
- CPU walk uses CY/near and view-edge planes, while the world camera projection
|
||||
has .1 m near / 5000 m far. A radius25 square can reach roughly 6.8 km
|
||||
diagonally. This permits hardware clipping of CPU-admitted blocks, but that
|
||||
is NOT sufficient evidence of this fault or justification for extending far.
|
||||
- Named retail also uses finite far clipping: zfar0081EC88 defaults to4000;
|
||||
PrimD3DRender::SetFOVInternal0059AB40 builds the projection from znear/zfar;
|
||||
SetDefaultD3DStates sets clipping state0x88 to1 at005A3B30. Terrain submits
|
||||
XYZ through DrawPrimitiveUP, not a projected-Z clamp/far bypass. Only sky
|
||||
temporarily multiplies zfar by4, then restores it.
|
||||
- Lead verified those three load-bearing facts from the matching 2013 PE as
|
||||
file data (no attach): SHA256
|
||||
006ffeadc5d679c871497112a5bd1f87714d0e273e2166bae5052dde369297b1.
|
||||
VA0081EC88 bytes00007A45 encode4000; 0059AB40 body loads globals81EC88/81EC84
|
||||
before the perspective call; 005A3B32 has push1/push88 before SetRenderState.
|
||||
The far-clipping hypothesis remains unproven; no projection change was made.
|
||||
|
||||
## Next discriminating observation
|
||||
|
||||
Owner was asked to leave the client at an affected viewpoint and provide /loc.
|
||||
The one window observation instead caught arrival in Neftet, not the reported
|
||||
mountain silhouette. No input was sent to either client. Need that pose before
|
||||
capturing consecutive stable frames and camera/terrain admission/clip facts.
|
||||
Distinguish disappearing block/triangle coverage from changing shaded pixels;
|
||||
then write the bounded fix contract, add a discriminating regression, verify
|
||||
and gate the actual repair. Do not turn an unproven far-plane theory into a fix.
|
||||
No new code, build, test, client close/launch, review, or G4 acceptance this turn.
|
||||
|
||||
Current safety: retail remaining open does not block build/test/launch (explicit
|
||||
owner override). Leave retail untouched; do not overwrite a running ACDream.
|
||||
|
|
@ -1,11 +1,14 @@
|
|||
# G4 owner checklist — final candidate, 2026-09-05
|
||||
# G4 owner checklist — retained matrix; closeout 2026-09-06
|
||||
|
||||
Status: **NOT RUN / NOT ACCEPTED**. This is the remaining owner session,
|
||||
not another implementation or review round. Binding scope is the campaign
|
||||
plan's S5 gate and section10 scene matrix. The automatic checks do not replace
|
||||
the owner's judgment. Do not merge or mark the campaign closed from this card.
|
||||
Status: **OWNER-DIRECTED CLOSEOUT ACCEPTED WITH CARRIED ISSUES.** On 2026-09-06
|
||||
the owner directed deferral of #484, campaign closeout, commit, merge to main
|
||||
and push to Gitea. This supersedes waiting for the remaining matrix session;
|
||||
it does not assert individual PASS results for unreported rows or erase FAILs.
|
||||
See `2026-09-06-campaign-closeout.md` for the merge-gate disposition and exact
|
||||
final #483 candidate. The earlier checklist and evidence below are retained
|
||||
history, not a new launch request.
|
||||
|
||||
## Candidate and launch
|
||||
## Historical candidate and launch (2026-09-05)
|
||||
|
||||
Use the existing Release binaries built at
|
||||
`eea83ac884d0b0fd74d86a17a16d7d5d93f64d94`; documentation checkpoint
|
||||
|
|
@ -17,7 +20,9 @@ Exact App/Core/package hashes and green build evidence are in
|
|||
Before launch, recheck binary/package hashes, both client processes and ACE
|
||||
UDP9000; record the launch commit, flags, profile, process and log directory.
|
||||
Keep the saved High/MSAA4, near4/far25 profile for the normal candidate run.
|
||||
No rebuild beside either client; no code change after the accepted binary.
|
||||
The original no-rebuild-beside-either-client rule was superseded on 2026-09-06:
|
||||
retail stays untouched but does not block building. Do not overwrite running
|
||||
ACDream binaries or launch duplicates.
|
||||
Owner session has no automatic route or automatic close. A retail comparator
|
||||
is needed for the two-client row and known cathedral slab comparison; launch
|
||||
each client in its own command. Close owned clients gracefully when agreed.
|
||||
|
|
@ -42,7 +47,8 @@ each client in its own command. Close owned clients gracefully when agreed.
|
|||
## Owner session
|
||||
|
||||
For every row retain PASS/FAIL, actual `/loc`, symptom if any, and PNG/log
|
||||
paths. All rows below remain **PENDING** on this final binary. The starting
|
||||
paths. Rows without a reported individual verdict remain **UNREPORTED**, not
|
||||
new PASS results; waiting for them was superseded by owner closeout. The starting
|
||||
locations are navigation aids, not a substitute for movement or camera work.
|
||||
|
||||
| Row | Check | Start / navigation |
|
||||
|
|
@ -60,13 +66,14 @@ network logout or a client-authored code0 does not override the OS exit.
|
|||
Do not retry just to replace a failed record. The lead reads local crash
|
||||
reports/Windows evidence without changing registry, driver or dump settings.
|
||||
|
||||
## Acceptance and remaining closeout
|
||||
## Historical acceptance requirements and final disposition
|
||||
|
||||
Owner PASS must identify the tested rows and any explicit carried exception.
|
||||
The historical acceptance of#422 in Campaign VM is not automatically a new
|
||||
OVERHAUL acceptance. A good visual session does not prove the original AMD
|
||||
reset's initiating cause, remove the installed-data failures, or convert
|
||||
the recorded shutdown failure to PASS. Their disposition remains explicit.
|
||||
the recorded shutdown failure to PASS. Their failures remain explicit in the
|
||||
closeout report.
|
||||
|
||||
FPS/C2 performance work is owner-deferred. Retail's known cathedral leak is
|
||||
unchanged; its proposed post-campaign improvement is not part of this gate.
|
||||
|
|
@ -74,7 +81,7 @@ unchanged; its proposed post-campaign improvement is not part of this gate.
|
|||
After the owner results, reconcile the shipping documentation before closure:
|
||||
architecture, WorldBuilder inventory, divergence register, launch options,
|
||||
FW ledger (superseded, not deleted), roadmap/milestones and campaign memory.
|
||||
Keep the existing failure records. Only when G4 and that closeout actually
|
||||
agree with the code can the campaign be marked CLOSED — USER ACCEPTED and
|
||||
the authorized merge considered. Do not rebuild the accepted product for
|
||||
documentation-only changes.
|
||||
Keep the existing failure records. The owner's 2026-09-06 closeout instruction
|
||||
now authorizes integration with carried issues, rather than requiring another
|
||||
matrix session. Documentation records that disposition without inventing
|
||||
per-row passes. Do not rebuild the accepted product for documentation-only changes.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue