diff options
Diffstat (limited to 'wiki/Host-Module.md')
| -rw-r--r-- | wiki/Host-Module.md | 32 |
1 files changed, 28 insertions, 4 deletions
diff --git a/wiki/Host-Module.md b/wiki/Host-Module.md index acf98ed..6ffbed1 100644 --- a/wiki/Host-Module.md +++ b/wiki/Host-Module.md @@ -6,7 +6,7 @@ > source: [`../docs/03-architecture/06-host-module-and-hybrid-model.md`](../docs/03-architecture/06-host-module-and-hybrid-model.md); > the docs tree wins on disagreement with this page. > -> Status: 2026-10-12, tree `master @ 2f066727`. Tags: `[live]` observed with +> Status: 2026-11-11, tree `master @ 4acac093`. Tags: `[live]` observed with > the stock guest driver; `[wip]` demonstrated live, being productized; > `[gated]` implemented default-off behind supervised gates; `[wall]` known > blocking limit; `[target]` designed, not built; `[planned]` roadmap. @@ -106,9 +106,33 @@ Proxying through the distribution host driver has **no callable entry point from kernel context**, so the module **owns the device and runs its real GSP firmware as the resource-manager server**, with emulation as the control plane. CE copies, release and fault relay are implemented default-off and -verified live [gated]; GR execution is the open wall [wall] — a forwarded -launch reaches the front-end; the inline launch-descriptor install is unobserved -([`Execution-Frontier.md`](Execution-Frontier.md)). +verified live [gated]; forwarded guest CUDA launches execute on the engine +with engine-authored completions relayed to the guest; the guest's real GL +draws now forward and execute on the physical GR engine (`work_gr +backend_ok=5-7`, `backend_timeout=0`), the DDX 3D replay reads back a real +pixel, and graphics method streams execute in three shapes, +including the direct GL client's own GR/CE channels +([`Execution-Frontier.md`](Execution-Frontier.md), +[`Graphics-Execution.md`](Graphics-Execution.md)). + +The same plane carries the display/modeset path [live in the campaign +configuration]: the module serves the guest display engine's push-buffer +channels (core `0xc57d`, window `0xc57e`, immediate/window `0xc57b`), authors +the notifier/`UPDATE` completion with a class-aware arm (the window class has +no NOTIFY bit; a bound notifier is the arm) and a force-retry for a deferred +event, completes the X DDX's `0x8000 -> 0` notifications, and lets +nvidia-modeset/NvKms register (`/dev/dri`), X settle and GLX clients obtain a +real GL context. The display-capability seam is parameterised. For the DDX's +own 2D push buffers the remaining host levers are publishing/advancing the +GPU-written engine get word and recycling the notifier to `0xffff` after +completion. The DDX 3D replay renders and reads back a pbuffer pixel +(`pixel=ff0000ff`), the off-screen frame path produced 500/500 non-black +animated frames and a 45.4 s video, the RM write-lock holder (Xorg in the +DDX vidheap scrub wait) is fixed (`df6e71bb`), and the direct-GL GR ring +`0xbeef0100` now resolves with advancing releases (`4acac093`). The remaining +GL gap is the direct-GL CE ring `0xbeef0101` (it never resolves, so the +client's CE work does not execute) and the window/screen present path, which +currently wedges X or stays black. ## 6. Debug parameters |
