summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--docs/04-implementation/04-real-render-walls.md37
1 files changed, 37 insertions, 0 deletions
diff --git a/docs/04-implementation/04-real-render-walls.md b/docs/04-implementation/04-real-render-walls.md
index f2ba0ab..74fca80 100644
--- a/docs/04-implementation/04-real-render-walls.md
+++ b/docs/04-implementation/04-real-render-walls.md
@@ -907,3 +907,40 @@ of the SASS. (b) Instrument the completion path for one refused Vulkan
launch (release ordering vs the synth-fault) to restore the black-frame
baseline. (c) Only then resume the mapping work (the r801b `FAULT_PDE` at
the program VA).
+
+## Session 154 (2026-11-02): formation protocol, execution regression, first engine-final stores
+
+Three durable findings from the r1414-r1427 experiment series (host module
+`vgsp.ko` unchanged; insmod-config + protocol only):
+
+1. **Client formation needs one X-client teardown + re-create ("F1").** The
+ boot's first DDX registration leaves a stale X-client VAS whose page
+ directory never resolves the completion-counter page (`counter page
+ 0x20400f000 unreadable via vaspaces/discovered/targeted; slot stays
+ pending`); the GL client then never allocates its channel group
+ (`class=0xa06c` / `chan alloc hObject=0xbeef0100`). Terminating Xorg once
+ and restarting it re-offers a fresh `VAS 0x10005` page directory; the
+ counter derives ~36-64 s later and formation completes on the next client
+ draws. Seven consecutive boots without this step never formed; five boots
+ with it formed every time.
+2. **The IRAM-gate readback default regressed macro execution.** With both
+ IRAM-gate sites enabled (`sema_gl_mme_iram_gate_break=1`
+ `sema_gl_mme_iram_gate_build=1`), the first window-bearing launch after the
+ pack wedges the front end: grfifo frozen FULL, launch `events=0`,
+ `macro-status=0`, `GP_GET-frozen`, no macro ever executes. A fresh boot
+ with both sites off (`=0`) executes macros again (`macro-status` with
+ run=1 progressions, `events>0` ends, SURF/ATTR preludes emitted) - the
+ pre-CONT-107 behaviour. Runtime flips do not recover an already-wedged
+ boot (the lane state is sticky), so the sites must be off from insmod.
+ (`sema_gl_mme_keep_clamp=0` must NOT be used: it breaks the capture path,
+ `sa=0` / IMMATURE-SKIP flood.)
+3. **Golden overlay + gates off produces the first engine-final stores.**
+ With `sema_gl_mme_golden=1` and both gate sites off from insmod, the
+ called-but-uncaptured slots (DRAW_IAB slot 34 `mac=0x22`, slot 57
+ `mac=0x39`) run with zero call drops, and the engine writes guest pages:
+ `output retirement wait: 3/900 pages changed after 217 ms (settled)`,
+ `GUEST-WIT retire ... changed (direct shadow/alias stores)` - first
+ non-zero store retirements on this lane. The screen surface itself stays
+ unchanged (GATE-1 still black); the lane still poisons
+ (`badf1201` -> WEDGE-RECOVER) after ~60 s, and the stores land on
+ relocated-operand pages rather than the render target.