summaryrefslogtreecommitdiffstats
path: root/STATE-CURRENT.md
diff options
context:
space:
mode:
Diffstat (limited to 'STATE-CURRENT.md')
-rw-r--r--STATE-CURRENT.md66
1 files changed, 66 insertions, 0 deletions
diff --git a/STATE-CURRENT.md b/STATE-CURRENT.md
index 5762b4f..66f9cc7 100644
--- a/STATE-CURRENT.md
+++ b/STATE-CURRENT.md
@@ -1,5 +1,71 @@
# Open-IOV Current State
+> **Snapshot: 2026-11-12 ~19:05 (SESSION 156 continued; HEAD `800c108f`, one
+> unpushed commit on `master`; working tree clean; supersedes the 2026-11-11
+> ~10:45 entry below).**
+> The graphics front consolidated and the **X/GLX path is fully green** on the
+> stock guest driver: `glxinfo -B` returns 0 with OpenGL 4.6.0 direct
+> rendering, `glxgears` renders ~520 FPS on the emulated GPU's NVIDIA
+> renderer, and the Xorg channel-idle WAIT count is zero (`91aa8d91`). The
+> **first non-black GPU-rendered output** remains proven and now has two
+> captures: the 45.4 s 640x480 h264 video (2026-11-11) and a 500/500
+> non-black-frame 50 s capture (2026-11-12, c71; frames:
+> pbuffer -> guest sysmem -> kvmfr ivshmem -> host reader). Both are
+> **off-screen pbuffer** captures, not window/screen captures.
+>
+> **The top wall is delivery of the direct-GL client's own command stream.**
+> The ring/VAS anchor and USERD machinery were substantially hardened
+> (verified page-directory discovery, per-rank content scans, eager push pins
+> at the ring latch, client-allocated USERD resolution via
+> `hUserdMemory`/`userdOffset`, foreign-USERD skip, aperture-aware wire
+> fallback, wrapped-PUT acceptance), and the direct-GL GR ring resolves with
+> advancing releases. But the client's **59,556-byte setup push (GPU VA
+> `0x4024004`)** is still not resolvable/readable host-side while the client's
+> page-directory incarnation churns (the pages sit in the emulated FB
+> aperture beyond the visible window; the CE ring sibling `0xbeef0101`
+> resolves only intermittently), so no GL draw section opens, no `GR LAUNCH`
+> is submitted for the direct client, and GZDoom spins in its GL pipeline
+> after `V_Init` with a black window.
+>
+> **Guest-init and sizing regressions root-caused and fixed.** The
+> c81-c85 "adapter init fails" class (`0x24:0x72:1512`, then
+> `0x62:0x40:2520` on retries) was a kernel-cmdline `NVreg_RegistryDwords`
+> override that replaced the `modprobe.d` value and dropped the all-sysmem
+> `RMInstLoc` configuration; without it the driver's BAR2 verify ran against
+> mismatched emulated BAR shadows and failed. With `nvidia-instloc.conf` as
+> the single source (instloc + scrub disabled), cold boots give
+> `nvidia-smi -L` green and X + GLX green again. The emulated FB info replies
+> are in **kilobytes** (`8c7bf295`) and the GART defaults to **256 MiB**
+> (`d1dc85a2`); together they removed the 4 GiB guest-allocation/OOM class.
+> The shared nvClip `modeNum` must be even for the GL client's userspace
+> state init (odd = guest userspace state, cleared by one X restart; not a
+> host bug). The offscreen SDL GLX-pbuffer harness (`gz_pbuf.c`) reaches
+> context creation and `SwapWindow`, but the pipeline work it submits is not
+> completed; an offscreen llvmpipe capture is an explicitly excluded
+> fallback, not the goal.
+>
+> Walls ranked: (1) direct-GL command-stream delivery (setup push + CE ring);
+> (2) window/screen present (the DDX shared-surface `gpuRefCount`/
+> `lastKickoffRefCount` poll still must be satisfied through a verified
+> surface VA; glxgears' window is black); (3) X screen-init stability (the
+> DDX idle-DMA ScreenInit lottery); (4) non-black window frames and sustained
+> rate.
+>
+> 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): two clean reboots today (09:32, which moved the
+> host kernel to 6.8.0-149, and 17:04); `vgsp` loaded (refcount 0) + mdev
+> `347752a4-85e5-4894-b24a-73ae4389c0ec` + QEMU cycle gzA1 live (PID 12256,
+> launched 18:50); `0000:01:00.0` bound to `open-iov-gsp-phys`; dmesg shows
+> the ring-latch push pins for the RC-watchdog channel and no `GR LAUNCH`
+> yet this cycle; pstore empty; no Xid/Oops. The open-iov.org wiki was
+> refreshed alongside this snapshot (11 pages, revs 24125-24132; 68 pages
+> audited, 0 problems).
+>
> **Snapshot: 2026-11-11 ~10:45 (SESSION 156 continued; HEAD `4acac093` ==
> `vgpu/master`; working tree carries in-flight kernel work; supersedes the
> 2026-11-10 ~16:45 entry below).**