diff options
Diffstat (limited to 'docs')
| -rw-r--r-- | docs/04-implementation/04-real-render-walls.md | 37 |
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. |
