docs(#186): close — render InsideSide from dat PortalSide bit (fix 8257b9ba); retail trace overturned PICK + FLOOD-epsilon hypotheses
The live retail cdb trace decided it: retail roots at the connector 0118 at the grey pose (NOT the PICK fork) AND still draws the player room 0116 from that root, because retail's InitCell side test reads the dat PortalSide bit where acdream's render path reconstructed the interior side from the cell AABB centroid (mis-sides a thin connector). ISSUES #186 -> CLOSED; handoff gets a RESOLVED banner. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
8257b9ba10
commit
4dea66b633
2 changed files with 40 additions and 27 deletions
|
|
@ -46,37 +46,37 @@ Copy this block when adding a new issue:
|
|||
|
||||
---
|
||||
|
||||
## #186 — Indoor→indoor GREY flap at a connecting room (top floor, new house type)
|
||||
## #186 — [DONE 2026-07-08 · `8257b9ba`] Indoor→indoor GREY flap at a connecting room (top floor, new house type)
|
||||
|
||||
**Status:** OPEN (diagnosed by class only — NOT captured for this instance; investigation report-only)
|
||||
**Severity:** MEDIUM · **Filed:** 2026-07-08 · **Component:** render / indoor visibility (viewer-cell root)
|
||||
**Status:** CLOSED 2026-07-08 — live gate PASSED (no grey at any camera angle) + probe
|
||||
(216 `root=0118` frames, 0 still grey; `0118->0116` now `TRV`, `vis=4`).
|
||||
**Severity:** MEDIUM · **Filed:** 2026-07-08 · **Component:** render / indoor visibility (portal side-cull)
|
||||
|
||||
**Description:** Top floor of a house type not tried before; a connecting opening/room between two
|
||||
parts of the house. Passing through → a brief **GREY** flap (world background). Stopping at the precise
|
||||
spot → the WHOLE screen is grey and stays; **turning the camera clears it, turning back → grey again**
|
||||
(camera-direction dependent, player stationary).
|
||||
**Description:** Top floor of a new house type; a thin connecting cell between two rooms. Passing
|
||||
through → brief GREY flap; stopping at the spot → whole screen grey and stays; turning the camera
|
||||
clears it, turning back → grey again (camera-direction dependent, player stationary).
|
||||
|
||||
**Root cause — NARROWED (report-only; retail SEAMLESS at the same spot → real acdream bug). FULL HANDOFF:
|
||||
`docs/research/2026-07-08-186-connector-grey-flap-handoff.md`.** The eye seats in a sparse 5-render-poly
|
||||
CONNECTOR cell `0xF6820118` (between player room `0116` and room `0117`), in the doorway threshold looking
|
||||
BACK toward `0116`; acdream's render DROPS `0116` (its back-portal is side-culled) so the doorway aperture
|
||||
shows the fog clear color = grey. Retail keeps `0116` drawn. **RULED OUT (do not revisit):** null-root/AD-21
|
||||
(root valid indoor 88248/88249 frames); viewer-cell root-lag/AD-20 (`eyeInRoot=Y` — eye genuinely inside
|
||||
`0118`'s BSP); the color-clear gating (retail's gated `Clear` @ DrawCells `0x005a48a9` is depth/stencil,
|
||||
fires AFTER `LScape::draw` — the tempting "3-line fix" is DEAD). Confirmed via workflow `wf_362bbeda-933`
|
||||
(4 tracers + synthesis) + live `ACDREAM_PROBE_FLAP` capture + offline cell dump. It's the doorway-FLAP
|
||||
FLOOD/PICK family (frozen render, DO-NOT-RETRY-heavy — the deleted `EyeInsidePortalOpening` rescue, the
|
||||
`PortalSideEpsilon` root-lag).
|
||||
**Root cause (CONFIRMED via live retail cdb trace + dat diagnostic — the report-only "narrowed" note
|
||||
was the right FAMILY but the WRONG mechanism):** the render portal side-cull reconstructed each
|
||||
doorway's interior side (`PortalClipPlane.InsideSide`) from the cell's **AABB centroid**. For the thin
|
||||
connector `0xF6820118` (5 render polys) the bounding-box center falls on the WRONG side of the
|
||||
`0118->0116` doorway → the eye read as a back-portal → the forward room `0116` was culled → the
|
||||
aperture showed the fog clear color = grey. Retail's `PView::InitCell` (0x005a4b70) AND acdream's own
|
||||
PHYSICS path (`CellTransit.cs:190`) read the explicit dat **`PortalSide` bit** (`(Flags&2)==0`); the
|
||||
render path was the only one guessing from geometry.
|
||||
|
||||
**Next step (retail cdb, do FIRST — binary MATCHES `refs/acclient.pdb`):** at the grey pose, `bp
|
||||
SmartBox::update_viewer 0x00453ce0` (dump `viewer_cell` id) and/or `bp PView::DrawCells 0x005a4840` (dump
|
||||
`cell_draw_list`). retail `viewer_cell==0116` → PICK fix (acdream over-switches to the connector /
|
||||
boom coasts the eye in at `pulledIn=-0.00`); retail roots `0118` but draws `0116` too → FLOOD fix
|
||||
(retail admits the back-portal; acdream's side-CULL is the site). Apparatus + code sites + DO-NOT-RETRY
|
||||
in the handoff.
|
||||
**Fix (`8257b9ba`):** `GameWindow.BuildLoadedCell` derives `InsideSide` from the dat `PortalSide` bit,
|
||||
matching retail + physics. Surgical — the dat diagnostic
|
||||
(`Issue186…PortalSide_CentroidVsDatBit_AtGreyEye`) shows the bit agrees with the old centroid on every
|
||||
portal of these cells EXCEPT the one #186 breaks; the `CornerFlood`/`Issue113` dat helpers updated to the
|
||||
same bit keep every real Holtburg/tower/hall flood identical (App 741 / Core 2631 green). Touches neither
|
||||
`PortalSideEpsilon` nor the deleted `EyeInsidePortalOpening` rescue.
|
||||
|
||||
**Acceptance:** no grey flap passing through OR stopping in the connecting room at any camera angle;
|
||||
regression pass on the outside→inside doorway + other multi-room houses.
|
||||
**The retail trace OVERTURNED both prior hypotheses:** NOT PICK (both clients root at `0118` at the pose,
|
||||
eye ≈ identical) and NOT the handoff's FLOOD-epsilon framing — retail draws `0116` from the `0118` root
|
||||
because its dat side bit admits the portal; acdream's centroid guess culled it. Apparatus (kept):
|
||||
`tools/cdb/issue186-connector-decider.cdb` (viewer_cell + cell_draw_list decider) + the offline geometry
|
||||
test. Handoff (now historical): `docs/research/2026-07-08-186-connector-grey-flap-handoff.md`.
|
||||
|
||||
---
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue