diff options
Diffstat (limited to 'STATE-CURRENT.md')
| -rw-r--r-- | STATE-CURRENT.md | 66 |
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).** |
