acdream/docs/superpowers/plans
Erik 5dc4140c11 feat(render): Phase A8 — indoor visibility + streaming fixes batch
Lands the working A8 indoor-rendering and streaming fixes accumulated this
session. User has verified these visually to some degree (e.g. lifestone /
translucent meshes confirmed fine under the FrontFace flip; bridge / wall /
collision regressions confirmed fixed after travel); not every path has been
exhaustively gated. The cellar-flap defect remains OPEN and will be solved
the retail-faithful way via a dedicated brainstorm (see handoff docs).

Rendering core (reviewed, high confidence):
- EnvCellRenderer SSBO stride fix: upload packed Matrix4x4[] (64B) instead of
  the 80B CPU InstanceData struct the shader never expected — fixes the
  transform/texture "explosion" for any draw with >1 instance (cells that
  dedupe to a shared cellGeomId). Real root cause.
- WB-style global FrontFace(CW) + per-batch CullMode carried through the MDI
  layout (GroupKey + BuildIndirectArrays + DrawIndirectRange split into
  same-cull runs with absolute uDrawIDOffset per run).
- EntitySet partitioning (IndoorPass / OutdoorScenery / LiveDynamic) +
  WorldEntity.BuildingShellAnchorCellId so building shells scope to their
  dat-derived building cell instead of rendering everywhere.
- RenderOutsideInAcdream (look into buildings from outside) +
  CollectVisiblePortalBuildings frustum cull of portal bounds.
- Sky-when-inside-building + per-cell audit probe + GL-state probe.

Streaming / perf (test-covered; not independently code-reviewed this session):
- Near/far priority queues so near work wins over far; PromoteToNear carries
  full landblock + mesh data; LandblockEntriesWithoutAnimatedIndex avoids
  rebuilding the animated-lookup dict in the hot draw path. Fixes the
  bridge-not-appearing / missing-walls / broken-collision-after-travel
  regressions and improves post-transition FPS.

Tooling + docs:
- tools/A8CellAudit: offline dat cell/portal/building dumper (portals +
  buildings modes) — reproduces the cellar-flap investigation with no launch.
- docs/research cellar-flap root-cause + option-2 handoff (the didInsideStencil
  double-duty finding + the WB-recursive design decision + brainstorm prompt),
  entity-taxonomy, replan, issue-78 visibility investigation.

Diagnostics retained on purpose: ACDREAM_A8_DIAG_* gates, portal_stencil.vert
provisional pos.w clamp, and the probe families are kept (env-var gated, zero
cost when off) because the pending option-2 cellar-flap brainstorm needs them.
Strip in the option-2 ship commit.

Indoor branch stays behind ACDREAM_A8_INDOOR_BRANCH=1 (default off = pre-A8
visual). Build green; App tests + Core (streaming/dispatcher/loader) tests pass.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-29 10:14:50 +02:00
..
2026-04-11-foundation-a1-streaming.md fix(app): Phase A.1 — separate Visible from Resident in StreamingRegion 2026-04-11 22:08:17 +02:00
2026-04-12-b3-complete-movement.md docs(plans): Phase B.3 Complete — movement + world navigation plan 2026-04-12 15:59:29 +02:00
2026-04-12-physics-collision-engine.md docs(plans): Phase B.3 physics collision engine implementation plan 2026-04-12 09:48:06 +02:00
2026-04-12-player-movement.md docs(plans): Phase B.2 player movement implementation plan 2026-04-12 14:10:13 +02:00
2026-04-13-movement-completion.md docs: movement completion implementation plan (7 tasks) 2026-04-13 23:08:48 +02:00
2026-05-02-l3-1-interpolation-manager.md docs(plan): Phase L.3.1 — InterpolationManager core implementation plan 2026-05-02 18:26:02 +02:00
2026-05-02-l3-positionmanager-jump.md docs(plan): Phase L.3.1+L.3.2 PositionManager + retail-faithful jump plan 2026-05-03 10:10:16 +02:00
2026-05-08-phase-n1-scenery-via-wb-helpers.md plan(N.1): scenery via WorldBuilder helpers — implementation plan 2026-05-08 09:05:53 +02:00
2026-05-08-phase-n3-texture-decode-via-wb.md docs(N.3): mark Phase N.3 shipped + commit implementation plan 2026-05-08 11:37:52 +02:00
2026-05-08-phase-n4-rendering-foundation.md phase(N.4): SHIP — flag default-on + finalize plan + roadmap 2026-05-08 18:01:23 +02:00
2026-05-08-phase-n5-modern-rendering.md docs: defer per-instance highlight to open backlog (no scheduled phase) 2026-05-08 22:22:23 +02:00
2026-05-09-phase-a5-two-tier-streaming.md docs(A.5 T27): spec + plan amendments for T22.5 + ship 2026-05-10 10:06:26 +02:00
2026-05-09-phase-n5b-terrain-modern.md phase(N.5b): SHIP — terrain on modern rendering path 2026-05-09 13:05:12 +02:00
2026-05-10-issue-13-pd-trailer.md refactor(net): #13 Parsed.TrailerTruncated + diag logging 2026-05-10 08:26:08 +02:00
2026-05-10-issue-53-tier1-cache.md docs(post-A.5 #53): Tier 1 cache — implementation plan (writing-plans) 2026-05-10 17:06:42 +02:00
2026-05-11-phase-n6-slice1.md docs(perf): Phase N.6 slice 1 — implementation plan 2026-05-11 11:12:26 +02:00
2026-05-12-phase-c1.5a-portals.md docs(vfx #C.1.5a): implementation plan + spec wiring-location fixes 2026-05-11 13:36:18 +02:00
2026-05-12-phase-l2g-slice1.md docs(phys L.2g): slice 1 implementation plan 2026-05-12 21:52:31 +02:00
2026-05-13-phase-b4b-plan.md docs(B.4b): implementation plan — 6 tasks, TDD picker + handler wiring 2026-05-13 17:37:09 +02:00
2026-05-13-phase-b4c-plan.md docs(B.4c): implementation plan — 4 tasks, door spawn-time sequencer + UM diagnostic 2026-05-14 06:50:51 +02:00
2026-05-13-phase-c1.5b.md docs(vfx #C.1.5b): design + plan for issue #56 + EnvCell DefaultScript 2026-05-11 23:51:44 +02:00
2026-05-14-phase-b5-pickup.md docs(B.5): implementation plan from writing-plans skill 2026-05-14 15:10:23 +02:00
2026-05-16-phase-b6-suppress-movetostate-during-inbound-autowalk.md feat(retail): Phase B.6 — server-driven auto-walk done right 2026-05-16 16:14:44 +02:00
2026-05-16-retail-faithfulness-fixes.md feat(retail): Commit B — retail-faithful AP cadence + screen-rect picker 2026-05-16 13:56:08 +02:00
2026-05-18-retail-chase-camera.md docs(camera): impl plan — retail-faithful chase camera with dev-tools toggle 2026-05-18 19:24:34 +02:00
2026-05-19-indoor-cell-rendering-phase1-diagnostics.md plan: Phase 1 indoor cell rendering diagnostics 2026-05-19 11:13:53 +02:00
2026-05-19-indoor-portal-cell-tracking.md docs(plan): Indoor portal-based cell tracking implementation plan 2026-05-19 16:40:03 +02:00
2026-05-19-indoor-walkable-plane-bsp-port.md docs(plan): indoor walkable-plane BSP port — implementation plan 2026-05-19 21:18:11 +02:00
2026-05-19-indoor-walking-phase1-bsp-cluster.md docs(plan): Indoor walking Phase 1 — BSP cluster implementation plan 2026-05-19 14:15:50 +02:00
2026-05-19-phase2-indoor-cell-rendering-fix.md plan: Phase 2 indoor cell rendering fix 2026-05-19 12:20:57 +02:00
2026-05-20-indoor-bsp-worldorigin-fix.md docs(plan): indoor BSP world-origin fix implementation plan 2026-05-20 07:45:24 +02:00
2026-05-20-indoor-walkable-synthesis-removal.md docs(plan): remove per-frame indoor walkable-plane synthesis (Bug A) 2026-05-20 08:53:58 +02:00
2026-05-20-phase-a4-multi-cell-bsp.md docs(plan): Phase A4 — multi-cell BSP implementation plan 2026-05-20 15:59:54 +02:00
2026-05-21-a6-p3-slice1-cp-retention.md plan(phys): A6.P3 slice 1 — indoor ContactPlane retention (Finding 2 fix) 2026-05-21 21:27:38 +02:00
2026-05-21-cylinder-fallback-dedup.md fix(physics): skip mesh-AABB-fallback cylinder for landblock stabs 2026-05-20 11:42:13 +02:00
2026-05-21-indoor-walk-miss-probe.md docs(physics): spec + plan + findings for ISSUES #83 walk-miss probe spike 2026-05-20 11:00:11 +02:00
2026-05-21-phase-a6-p1-cdb-probe-spike.md docs(plan): Phase A6.P1 — cdb probe spike implementation plan 2026-05-21 18:07:37 +02:00
2026-05-21-phase-o-dat-path-unification.md plan(O): Phase O implementation plan + spec layer-placement fix 2026-05-21 14:49:19 +02:00
2026-05-23-a6-p3-issue98-cellar-up-fix.md diag(phys): A6.P3 #98 — [step-walk-adjust] probe inside AdjustOffset 2026-05-23 16:16:42 +02:00
2026-05-24-door-collision-per-part-bsp.md docs(phys): implementation plan — per-part BSP for server-spawned entities 2026-05-24 15:05:03 +02:00
2026-05-25-issue-100-terrain-cutout.md docs: #100 ship + indoor-cell culling investigation handoff 2026-05-25 22:17:51 +02:00
2026-05-26-phase-a8-replan.md feat(render): Phase A8 — indoor visibility + streaming fixes batch 2026-05-29 10:14:50 +02:00
2026-05-26-phase-a8-restructure.md docs: Phase A8 — mark prior restructure design+plan as SUPERSEDED 2026-05-27 10:08:48 +02:00
2026-05-26-phase-a8-wb-full-port.md docs(plan): Phase A8 — full WB RenderInsideOut + RenderOutsideIn port plan 2026-05-27 09:57:45 +02:00
2026-05-28-phase-a8-wb-render-inside-out-port.md docs(plan): Phase A8 WB RenderInsideOut port — implementation plan 2026-05-27 14:41:54 +02:00