summaryrefslogtreecommitdiffstats
path: root/wiki/Execution-Frontier.md
diff options
context:
space:
mode:
Diffstat (limited to 'wiki/Execution-Frontier.md')
-rw-r--r--wiki/Execution-Frontier.md43
1 files changed, 26 insertions, 17 deletions
diff --git a/wiki/Execution-Frontier.md b/wiki/Execution-Frontier.md
index f5bfa9d..5af5e6d 100644
--- a/wiki/Execution-Frontier.md
+++ b/wiki/Execution-Frontier.md
@@ -14,7 +14,7 @@
> [`../docs/04-implementation/03-execution-frontier.md`](../docs/04-implementation/03-execution-frontier.md);
> the docs tree wins on disagreement.
-Status: 2026-11-12, tree `master @ 800c108f`.
+Status: 2026-11-13, tree `master @ 436cbf9d`.
Tags: `[live]` observed; `[wip]` partial; `[wall]` current blocker; theories
are labelled as such.
@@ -104,10 +104,15 @@ replay executes; the **first non-black GPU-rendered output** landed: a
pbuffer probe returns `pixel=ff0000ff`, the off-screen path produced 500/500
non-black 640x480 frames per run and captured videos (45.4 s on 2026-11-11, a
50 s capture on 2026-11-12), and GZDoom reaches `V_Init: allocate screen`
-with its GL 4.6.0 context when the shared nvClip `modeNum` is even. What is
-missing is **window/screen pixels through the NVIDIA path**: the direct-GL
-client's own 59,556-byte setup push is not yet resolvable/readable host-side
-under the client's page-directory churn, so its draw sections never reach the
+with its GL 4.6.0 context when the shared nvClip `modeNum` is even. The X
+side of the path was hardened in the 11-12/11-13 wave (DDX idle-DMA/ScreenInit,
+USERD-latch, re-probe, kernel-mode spin and flip-event walls closed; X green
+for more than 10 minutes), captured GL sections now execute on the engine, and the
+direct-GL push bodies decode as real GR method streams above 10 GiB through
+the VAS walk. What is missing is **window/screen pixels through the NVIDIA
+path**: the direct-GL payload VAs (`0x4001004` setup push,
+`0x4250000`/`0x4250110` draws) still resolve to zero/implausible PAs because
+their user/UVM VAS is never registered, so its draw sections never reach the
engine, glxgears' window is black, and a synchronous window draw wedges X on
some boots. The guest Vulkan pipeline's inline-to-memory upload arm is its
gap. The full picture lives on
@@ -170,13 +175,17 @@ CUDA guests is in progress.
**Issue D — the graphics pixel frontier.** The display/KMS stack and the GL
client now run end to end (NvKms registers, X settles, the stock GLX path is
fully green with glxinfo 4.6.0 and ~520 FPS glxgears, the DDX 3D replay
-executes, the first non-black GPU-rendered frames and videos are captured
-off-screen, and the direct-GL ring/USERD machinery is substantially hardened);
-but the direct-GL client's 59,556-byte setup push is not yet readable/
-resolvable host-side under its page-directory churn, so its draw sections
-never open on the engine, glxgears' window is black, and a window draw wedges
-X on some boots. Command-stream delivery, the window/screen present and X
-screen-init stability are the named blockers
+executes, the X DDX/ScreenInit stability walls are closed with X green >10
+minutes, captured GL sections execute on the engine, the first non-black
+GPU-rendered frames and videos are captured off-screen, and the direct-GL
+ring/USERD machinery is substantially hardened); client push bodies now
+decode as real GR method streams above 10 GiB via the VAS walk. The remaining
+gap is registration: the direct-GL payload VAs (`0x4001004` setup push,
+`0x4250000`/`0x4250110` draws) still resolve to zero/implausible PAs because
+their user/UVM VAS is never registered, so its draw sections never open on
+the engine, glxgears' window is black, and a window draw wedges X on some
+boots. Command-stream delivery, the window/screen present and the X
+first-generation screen-init lottery are the named blockers
([`Graphics-Execution.md`](Graphics-Execution.md)).
## 6. Lines of investigation (live)
@@ -191,11 +200,11 @@ screen-init stability are the named blockers
4. **Hold the acceptance battery** — vector-add, matrix-multiply and the
transformer kernel; each entry is accepted only on its own verification
output (`bad=0` + `STATUS OK`).
-5. **The graphics pixel frontier** — make the direct-GL client's command
- stream (the 59,556-byte setup push and its ring/CE siblings) resolve and
- execute host-side, make the window/screen present land, and stabilise X
- screen-init across boots so the proven off-screen frames become window
- pixels; the lanes, the walls and the milestone ladder are on
+5. **The graphics pixel frontier** — register the direct-GL payload user/UVM
+ VAS (or pin the payload set from the guest pagemap) so the setup push and
+ draw pushes resolve, make the window/screen present land, and reduce the X
+ first-generation screen-init lottery so the proven off-screen frames
+ become window pixels; the lanes, the walls and the milestone ladder are on
[`Graphics-Execution.md`](Graphics-Execution.md).
## 7. Theories, resolved