From 21e0d611b5efbdcf6a14520c3294d6a78bb32220 Mon Sep 17 00:00:00 2001 From: Arthur Hanson Rasmusson Date: Mon, 9 Nov 2026 19:05:16 -0500 Subject: wiki: 2026-11-09 evening refresh - X DDX waits fixed; GZDoom reaches MAP01 on llvmpipe Refresh Project Status, Graphics Execution, OpenGL, Execution Frontier, Execution Plane, Physical GPU Backend, Host Module, System Overview, Project Goals, Project Plan and the FAQ, plus STATE-CURRENT and the Main Page: the X DDX waits (class-aware display arm, 0x8000->0 notification completion, decoded GL release) are fixed; GZDoom reaches MAP01 on Mesa llvmpipe; the NVIDIA renderer path, the DDX get-word/notifier completion, the DDX 4 GB sysmem footprint and physical dispatch of the GL draws are the pixel walls. Published to open-iov.org. --- STATE-CURRENT.md | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) (limited to 'STATE-CURRENT.md') diff --git a/STATE-CURRENT.md b/STATE-CURRENT.md index 7ff44bb..19661e1 100644 --- a/STATE-CURRENT.md +++ b/STATE-CURRENT.md @@ -1,5 +1,56 @@ # Open-IOV Current State +> **Snapshot: 2026-11-09 ~19:05 (SESSION 156 continued; HEAD `e342bd0f`, +> tree clean, `vgpu/master` in sync; supersedes the 12:45 entry below).** +> Since the 12:45 entry the campaign closed the X-side execution machinery +> and moved the pixel gate to concrete blockers. The X server's deaths were +> separated from driver bugs: the DDX waits are fixed by `408d67d3` +> (class-aware display arm - the 0xc57e window class has no NOTIFY bit, so a +> bound notifier is the arm; bfef `0x8000 -> 0` NvNotification completion; +> the decoded GL release is applied via `sema_gl_hold_apply`, default off; +> the 0x8000 sweep is extended to the X DDX's own RM channels), on top of the +> PMA-scrub deadlock fixes (`3701f985`, `ad93b227`) and the channel-VAS push +> read (`c3887218`). The residual death is an OOM: the X DDX allocates 4 GB +> of system pages at startup (kprobe and gdbstub: `nv_alloc_pages` count +> 1048576 from Xorg), which an 8 GB guest cannot absorb once GZDoom adds its +> own footprint; the current run uses a 12 GB guest. +> +> With the DDX unblocked, GZDoom reached `MAP01` for the first time, but on +> **Mesa llvmpipe**: the NVIDIA Vulkan ICD fails `vkCreateDevice` and the +> default OpenGL/EGL path falls back to Mesa (`libEGL ... failed to create +> dri2 screen`). The emulated-vGPU render path is therefore not the one that +> rendered; the campaign is forcing GLX (`SDL_VIDEO_X11_FORCE_EGL=0`) on the +> 12 GB run and has fully decoded the DDX push-buffer wait: the 2D reserve +> exits only when the GPU-written engine get word advances (`get <= put`) and +> the kick requires the notifier to be recycled to `0xffff` after completion. +> A diagnostic host write of the get word released the loop and let GZDoom +> reach `MAP01`; the kernel levers (publish/advance the get word; recycle the +> notifier) are the next implementation. +> +> Honest state: still no rendered frame through the emulated vGPU and no +> video; GZDoom's `MAP01` is a llvmpipe datapoint, not the target. Milestone +> position: between M-GL1 and M-GL2. Current walls, ranked: (1) renderer +> selection - the NVIDIA Vulkan ICD must create a device or the forced-GLX +> path must reach glcore; (2) the DDX push-buffer get-word/notifier +> completion; (3) the 4 GB X DDX sysmem allocation (suspected emulation gap) +> that forces the 12 GB guest; (4) the direct-GL draws still report +> `forwarded=0` - decoded and host-completed, not dispatched to the physical +> GR engine. Estimate (subjective): a first NVIDIA-path frame hours-to-days +> if these behave like their predecessors; the two-VM GPU-accelerated video +> after that. +> +> CUDA front unchanged (backgrounded while graphics holds the device; its +> 10-30 status stands): `41343c63` green (`victory_mail` `VADD bad=0` + +> `STATUS OK`; `vecadd_loop` 100 launches PASS); the fresh-boot battery's +> red class is D2H-stage with release-discipline fixes staged; the SESSION +> 143 Vulkan fence regression is not re-measured. +> +> Live at check (read-only): host up 20 h (fresh boot 2026-11-08 22:29); +> `vgsp` loaded (refcount 0) + mdev +> `d3a9e554-f948-45df-b81b-b5e987b0bee8` + QEMU r1678 live (12 GB guest); +> `nvidia-smi` reports no supported GPU (the vgsp claim is held); pstore +> empty; no reboot during the check. +> > **Snapshot: 2026-11-09 ~12:45 (SESSION 156; HEAD `4acc81e8`, tree clean, > `vgpu/master` in sync; supersedes the 2026-11-06 ~19:00 entry below).** > The graphics front moved from the DS SPH validation gate to a working -- cgit v1.2.3