fix(render): S3 chunk 3 re-review follow-ups

- the LandCell event doc states the deferred cross-block batch rule (the
  same-landblock lookahead text was stale);
- the AlphaSubmitMark arm's comment gives the true reason it is not a
  flush point (it only enqueues into the CPU alpha list; the drain leaves
  flush first);
- the pending terrain batch is cleared with the other transient frame
  lists in AbortFrame/BeginFrame;
- CompleteWalkTerrainFrame runs in a finally so a throwing Replay cannot
  leak its accumulated ticks into the next frame's sample;
- CopyRenderableEmittersInCell keeps its own doc comment;
- the outdoor-root LandCell pin now observes one real cell turn after its
  terrain;
- the oh1 landscape contract's stale "whole pre-stage" prose is resolved.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
Erik 2026-09-03 10:00:28 +02:00
parent 651badc2b9
commit e10765aaa0
5 changed files with 58 additions and 39 deletions

View file

@ -311,10 +311,11 @@ weather/sky post-pass
| Cell object draw consumes the cell's exact stable far-to-near `shadow_part_list`. | The driver materializes per-cell record buckets, classifies/batches them, and uses a scope-level ordered stream plus separate alpha collection. | OH3/OH7 must replace reconstructed membership/order with exact part entries and exact per-cell alpha barriers. |
| Building is alpha drain -> portal pass -> shell, then cell objects. | `RetailFrameWalk.DrawBuilding` and the driver's building events model this order. | Mechanism broadly matches, but its correctness depends on the sibling OH1 built-mesh/view and depth-lifecycle findings. |
The architecture SSOT currently says that the walk records one retail-ordered
stream including landscape cells, but the implementation and its own comments
admit that terrain is one whole pre-stage. That is an architecture/code
contradiction, not a documented adaptation. The same architecture section
The architecture SSOT says that the walk records one retail-ordered stream
including landscape cells; until S3 chunk 3 the implementation drew terrain as
one whole pre-stage (an architecture/code contradiction, RESOLVED 2026-09-03:
`RetailFrameWalk.DrawLandscape` now emits one land-cell terrain turn per
admitted cell before that cell's own building/object turn). The same architecture section
also states that every admitted portal slice GPU-clips the mesh; the dirty
built-mesh candidate says the opposite. The sibling built-mesh evidence must
arbitrate that claim before the architecture text or production path is