docs(overhaul): close S5 c4 and narrow ordered sidecars

This commit is contained in:
Erik 2026-09-05 02:12:19 +02:00
parent 03a108ffa5
commit d43f6809b4
3 changed files with 117 additions and 45 deletions

View file

@ -39,49 +39,49 @@ confirmed closed by the owner, 11 need a focused live gate, and 43 are safe to
remain closed. See
[`docs/research/2026-08-28-owner-closed-issue-validity-audit.md`](research/2026-08-28-owner-closed-issue-validity-audit.md).
## #471 — Production walk-ordered building detail is classified but never rendered
## #471 — Production walk-ordered building detail was classified but never rendered
**Status:** OPEN — confirmed 2026-09-04 by the S5-c4 production audit;
Campaign OVERHAUL v2 S5-c4 scope.
**Status:** DONE — fixed by Campaign OVERHAUL v2 S5-c4 at `03a108ffa`
(2026-09-05).
**Evidence/mechanism:** the production path is
**Prior mechanism:** the production path was
`RetailPViewRenderer.DrawWalkDrivenStatics``WalkFrameDriver.Replay`
`PrepareOrderedStream``DrawOrderedRange`. Detail-category commands are
uploaded and deliberately force solo merge runs, but
`WbDrawDispatcher.OrderedStream.cs` issues only the base-pipeline indirect draw.
Its file header still says the detail overlay was deferred. The classic
`SubmitRhi` path does perform the second detail replay. Consequently opaque and
ClipMap building shells drawn through the mandatory production walk omit their
detail material even while the setting and category texture are live. The
existing ordered submitter test proves only three base draws and therefore
does not detect the omission.
uploaded and deliberately forced solo merge runs, but the old
`WbDrawDispatcher.OrderedStream.cs` issued only the base-pipeline indirect draw.
Its file header said the detail overlay was deferred. The classic `SubmitRhi`
path instead performed a second detail replay. Consequently opaque and ClipMap
building shells drawn through the mandatory production walk omitted their
detail material even while the setting and category texture were live. The old
ordered submitter test proved only three base draws and did not detect the
omission.
**Bounded repair:** S5-c4 packet §22 replaces all base-plus-overlay detail with
retail's exact one-pass combined fragment. Arm that combine on the existing
walk-ordered solo base run and retain its original order, blend/depth/cull,
geometry, transform/sidecars, selected GfxObj, setting, sampler, and mip chain.
Do not add an overlay replay or a compensating terrain flush. Prove an ordered
ordinary → opaque-detail → ClipMap-detail → ordinary transcript, exact one draw
per source subset, setting/unavailable-category off rows, nonzero shared
transform prefix, and a pixel mutation that removes only the ordered arm.
**Resolution:** S5-c4 replaces the base-plus-overlay approximation with retail's
exact one-pass material and arms it on the existing ordered source draw. The
ordinary -> opaque-detail -> ClipMap-detail -> ordinary production transcript
proves one physical draw per subset, exact material state, unchanged order and
terrain flushes, neutral adjacent state, and both atmospheric receiver states.
Retail/material review pass 3/10 and production pass 5/10 are clean. The lead
recipe-10 graphical route captured 13/13 intact frames at
`logs/selfgate-20260905-020703-s5c4-onepass-detail` (provisional until owner
inspection).
## #470 — Atmospheric ordered world draws use absolute transform indices for local sidecars
**Status:** OPEN — found 2026-09-04 while auditing the S5-c3 graphical gate;
Campaign OVERHAUL v2 renderer-solid/G4 scope. The defect predates S5-c3 and is
present at least as far back as landed S4-c2 `252886e84`.
**Status:** OPEN — NARROWED 2026-09-05 by S5-c4; Campaign OVERHAUL v2
renderer-solid/G4 scope. The residual predates S5-c3 and is present at least as
far back as landed S4-c2 `252886e84`.
**Evidence/mechanism:** `WbDrawDispatcher.PrepareOrderedStream` writes instance
transforms into the shared directional-shadow transform arena and offsets every
indirect command's `BaseInstance` by that arena prefix. `DrawOrderedRange`
nevertheless selects the ordinary `mesh_modern` pipeline. That shader indexes
the transform, alpha, selection-lighting, and light-set arrays with the same
absolute `gl_BaseInstance + gl_InstanceID`; unlike `mesh_atmospheric`, it does
not subtract push constant `TextureIndexB` for the locally based sidecar arrays.
The classic submit path already selects the atmospheric receiver pipeline and
binds its receiver uniforms correctly. A nonzero shadow prefix therefore makes
the ordered path read past its local sidecars and also bypasses the active
receiver shader contract.
indirect command's `BaseInstance` by that arena prefix. S5-c4 now correctly
selects the frame-aware ordinary/atmospheric ordered pipeline and binds the
active receiver resources, closing that half. It also publishes the prefix as
push `TextureIndexB`. The remaining ordinary `mesh_modern.vert` path still
indexes locally based alpha, selection-lighting, light-set, indoor, and detail
sidecars with the absolute `gl_BaseInstance + gl_InstanceID`; unlike
`mesh_atmospheric`, it does not subtract `TextureIndexB`. A nonzero shadow
prefix can therefore still read past those local arrays.
**Gate observation:** the S5-c3 run at
`logs/selfgate-20260904-223345-s5c3-building-degrade` was launched with the
@ -94,15 +94,15 @@ entries (15 Setup-backed and direct GfxObj `0x01000A2F`), while the house shell
is direct GfxObj `0x01000A2B`; ordinary cell records reach
`ClassifyEntityForWalk` without `buildingSelection`.
**Bounded next step before G4:** first add a production-path command-recording
and offscreen-pixel proof with a deliberately nonzero transform-arena prefix,
distinct alpha/selection/light sidecars, and active/inactive atmospheric
receivers. Then repair ordered drawing to select/bind the same active receiver
contract as the classic path while preserving absolute transform lookup and
local sidecar lookup. Sabotage the receiver selection and the prefix subtraction
independently. Repeat a pinned-camera retail/off -> High -> retail/off graphical
A/B without movement or resize. This can be paired with #469's final graphical
route, but its code contract remains separate.
**Bounded next step before G4:** add a production-path command-recording and
offscreen-pixel proof with a deliberately nonzero transform-arena prefix and
distinct alpha/selection/light/indoor/detail sidecars. Repair only the ordinary
shader index split: preserve the absolute index for the shared transform array,
but subtract `TextureIndexB` for every locally based sidecar, matching the
already-correct atmospheric shader. Sabotage each index domain independently
and preserve active/inactive receiver selection/binding. Repeat a pinned-camera
retail/off -> High -> retail/off graphical A/B without movement or resize. This
can share #469's final graphical route, but its code contract remains separate.
## #469 — Atmospheric shadow-gate transition switches the whole outdoor lighting direction abruptly and can darken the world