summaryrefslogtreecommitdiffstats
path: root/STATE-CURRENT.md
diff options
context:
space:
mode:
authorArthur Hanson Rasmusson <arthur@vgpu.io>2026-11-11 10:50:17 -0500
committerArthur Hanson Rasmusson <arthur@vgpu.io>2026-11-11 10:50:17 -0500
commit2f7635151e173e353d9105e4fef2aa343ea9a525 (patch)
tree01a05bb7b694c7aa1d3ac97dd95a062018630d98 /STATE-CURRENT.md
parent4acac093f514b007915cab903e49e084f85a4e18 (diff)
downloadopen-iov-2f7635151e173e353d9105e4fef2aa343ea9a525.tar.gz
open-iov-2f7635151e173e353d9105e4fef2aa343ea9a525.zip
wiki: 2026-11-11 status refresh - first non-black GPU frames + 45.4 s video; direct-GL GR ring resolves; CE-ring/window walls (STATE-CURRENT too)
Diffstat (limited to 'STATE-CURRENT.md')
-rw-r--r--STATE-CURRENT.md61
1 files changed, 61 insertions, 0 deletions
diff --git a/STATE-CURRENT.md b/STATE-CURRENT.md
index 7c43dea..5762b4f 100644
--- a/STATE-CURRENT.md
+++ b/STATE-CURRENT.md
@@ -1,5 +1,66 @@
# Open-IOV Current State
+> **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).**
+> The **first non-black GPU-rendered GL output and the first captured video**
+> landed on the emulated vGPU. r1764 (`131d44e0`) proved the pbuffer path: the
+> probe returns `PROBE rc=0 err=0x0 pixel=ff0000ff` and the off-screen frame
+> producer published 40/40 animated 640x480 frames rendered on the physical
+> GPU (pbuffer -> sysmem -> kvmfr ivshmem -> host `frame_reader.py`). r1769
+> validated the V6 ring-ledger scrub release (`f6184ac3`): X green 4/4 cycles,
+> zero panics/wedges, `gl_frames 500/500` non-black, 454 PPMs, and a 640x480
+> h264 10 fps 45.4 s video
+> (`backups/evidence-20261002-victory/r1769/vgpu-gl-animation.mp4`). The
+> scrubber release value is the guest's `lastSubmittedWorkId`; the ring ledger
+> counts GPFIFO pushes and advances fin forward-only (never all-ones), so the
+> fin=12 underflow class is closed.
+>
+> Commit `4acac093` (V9/V10) resolves the **direct-GL GR ring `0xbeef0100`**
+> (beef-family always-probe, per-channel promote backoff, rank-collision
+> fallback, parked-candidate eviction). Receipts: `RING-VAS` mapped, RAM scan
+> `va=0x4020000 -> pa=0x1ee8000`, 132 `sema-push`, 101 `sema-sw` releases
+> advancing `0x1 -> 0x27` (39 frames); glxgears 504-516 FPS with no
+> regression; a ~120 s GZDoom run had zero DDX channel-idle timeouts. GZDoom
+> now **passes the VBO wall whenever the shared nvClip `modeNum` is even**:
+> on a fresh X it logs window -> `GL_VERSION 4.6.0` -> 640x480 -> `I_Init` ->
+> `V_Init: allocate screen` with 0 SIGSEGV, and its direct-GL channels
+> register with the GR lane live. The SIGSEGV at `0x20` was root-caused
+> (coredump + LD_PRELOAD shim + host gdb) to `FFlatVertexBuffer::Copy` ->
+> `memcpy(NULL, ..., 640)` because `glMapBufferRange`/`glBufferData` return
+> NULL + `0x505` when the client's `__glNVStateInit` fails the modeswitch
+> test with an odd `modeNum` (live read: wedged X = 3, fresh X = 2). The +1
+> is the guest kernel's nvKms deferred close (the host completes
+> UPDATE -> FINISHED but no control arrives at the +1) - guest-side, not
+> module-induced.
+>
+> **New top wall:** the direct-GL **CE ring `0xbeef0101` (gpfifo=0x4100000)
+> never resolves** - `VAS-PROMOTE cand pdb=0x108eb3000 walk rc=-2` plus
+> `NOT mapped by any registered VAS` every ~7 s - so GZDoom's CE work never
+> executes and the guest wedges ~90 s after `V_Init`. Next: walk all parked
+> candidates regardless of owner VAS and/or keep >=2 fresh same-VAS parks.
+> **Window/screen pixels remain unproven:** glxgears' window is still black
+> (the GLX probe/frames path is a per-window lottery), and X window creation
+> wedges on 3/6 boots in an unkillable Xorg spin (`_nv052600rm+0x7b`); one
+> cycle also saw 2x "Wait for channel idle timed out".
+>
+> Walls ranked: (1) direct-GL CE ring `0xbeef0101` resolution (blocks the
+> GZDoom game loop); (2) window/screen pixels and the GLX per-window lottery;
+> (3) X startup/stability and the VASpace/ScreenInit allocation lottery
+> (`_nv052600rm+0x7b`, `0x51`, vmalloc); (4) the DDX 4 GB sysmem
+> allocation/OOM (12 GB guest); (5) sustained non-black window frames.
+>
+> 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): HEAD `4acac093` == `vgpu/master`; working tree
+> `M kernel/gsp_sema_service.c` (in-flight campaign work); evidence under
+> `backups/evidence-20261002-victory/r1769/`, `r1774/`, `r1775/`; pstore
+> empty; no reboot during the check.
+>
> **Snapshot: 2026-11-10 ~16:45 (SESSION 156 continued; HEAD `df6e71bb`,
> tree has in-flight kernel/tool work; supersedes the 06:10 entry below).**
> The **first real GPU readback** landed: a guest