docs(overhaul): close S5 c4 and narrow ordered sidecars
This commit is contained in:
parent
03a108ffa5
commit
d43f6809b4
3 changed files with 117 additions and 45 deletions
|
|
@ -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
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue