From d7e2aa8a286333fd7d6b5c01598a5cb5949edd44 Mon Sep 17 00:00:00 2001 From: Arthur Hanson Rasmusson Date: Wed, 4 Nov 2026 17:51:43 -0500 Subject: docs: session-154c - whole-shadow page-hash bracket proves the no-pixel wall is an execution gap (11 launches, zero data pages changed), window decode names the missing viewport family; next = gated viewport prelude --- docs/04-implementation/04-real-render-walls.md | 28 ++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'docs/04-implementation') diff --git a/docs/04-implementation/04-real-render-walls.md b/docs/04-implementation/04-real-render-walls.md index 3cd370a..4500f5d 100644 --- a/docs/04-implementation/04-real-render-walls.md +++ b/docs/04-implementation/04-real-render-walls.md @@ -978,3 +978,31 @@ Current best lineage: `golden=1 golden_force=1 hold_calls=1` + IRAM-gate break/build 0 + `sa_rearm=0` + `sph_bind=1` (binds + draw execution + draw-surface retirements; still no rasterized pixels - the region record for the synthesized stage slots remains the named gap). + +## Session 154c (2026-11-04): whole-shadow page-hash bracket closes the observation gap + +The copy-out samples the launch's tracked output pages, so "0/900 pages +changed" could not distinguish "the engine rasterizes but into an untracked +page" from "the engine rasterizes nothing". A whole-shadow bracket now hashes +every 4 KB page of the emulated vidmem before the forwarded GR publish and +diffs after the output-retirement wait (`sema_gl_vidmem_bracket`, plus the +manual `vidmem_hash_snap`/`vidmem_hash_diff` parameters). On the r1457 boot, +across 11 forwarded launches (10 `NOWRITE-CONFIRMED`, `n_data`/`tracked` +900-902, `wrote=0`), only USERD/ring/PBDMA-progress pages changed (0x80, +0x100, 0x18f, 0x1b0, 0xbc0); no page in the render-target range +0x200000-0x500000 and none at the bounce VAs 0xa000000/0xc000000. The +render-target surface and its bounce candidates are byte-stable, so the +no-pixel state is an execution gap, not an observation gap. + +The live window was also decoded against the class method tables. Present: +the colour-target record (0x840 = SET_COLOR_TARGET, 1280x720, X8R8G8B8, +blocklinear), raster enable (0x37c), shader pipeline binds (vertex 0x11, +tessellation-init 0x21, pixel 0x51), vertex attributes and stream formats, +the index buffer, the slot-2 vertex-stream macro, the slot-0x22 draw call +(0x3910 = CALL_MME_MACRO(34)), and Begin/End. Absent: the viewport family +(0x0a00-0x0a14 scale/offset, 0x0c08/0x0c0c clip, 0x1924 pixel centre, +0x192c/0x193c clip control), scissor, blend and depth/stencil. In a fresh +replayed context a missing viewport clips all geometry, which matches the +zero-fragment observations. The next experiment synthesizes a gated viewport +prelude at the window preamble and re-runs the bracket; a pass is any changed +page inside the render-target range. -- cgit v1.2.3