diff options
Diffstat (limited to 'STATE-CURRENT.md')
| -rw-r--r-- | STATE-CURRENT.md | 76 |
1 files changed, 75 insertions, 1 deletions
diff --git a/STATE-CURRENT.md b/STATE-CURRENT.md index 17332ca..e82a0f9 100644 --- a/STATE-CURRENT.md +++ b/STATE-CURRENT.md @@ -1,5 +1,79 @@ # Open-IOV Current State +> **Snapshot: 2026-11-06 ~12:55 (SESSION 155 continued; r1538 live; +> HEAD `81bde9b7`; supersedes the ~01:00 entry below).** The graphics +> campaign moved from "the DRAW macro executes" to "**the first calls-kept +> draw windows execute with engine-authored stores, and the DS SPH +> validation is the last gate before pixels**". The fixed-CB upload is +> decoded end-to-end (MME-wrapper form, the assembler image delivered to +> the engine-visible seed page, real-CB receipts gating it). The +> class-error wall that had kept the first calls-kept window from +> executing was a BEGIN/END pair carried across the window boundary; +> `81bde9b7` (`sema_gl_pair_close_entry`) emits the driver's own END form +> (`0x1614` + event word) before the first window run when the tracker +> carries an open pair. r1529 (P0 config + close): 44 beef launches, +> **0 Class Error**, `mac=0x22` x16, and 1-2 engine-changed copy-out +> pages per launch - the slot-34 DRAW_IAB macro (IRAM entry 0x265, 75 +> words) executes (r1526, before the fix: 11 launches, first calls-kept +> window poisoned at SET_FRONT_FACE `0x191c`, error 0x0d +> ILLEGAL_METHOD_IN_BEGIN_END). +> +> The close is not default yet: r1532 (close + SPH window 0x10004) +> misfired after 14 failed launches - the injected END itself faulted +> (`0x1614`, error 0x0d) because the tracker believed a pair was open +> that the front end had already lost - so it stays default-off until the +> pair model is committed only on retire. The SPH version window is not +> the DS gate: r1535 (P0 + close + `sema_sph_version_val=0x10004`) ran 49 +> launches with 0 Class Error and `mac=0x22` x18, but the DS still +> escalated `80000000->84000420->86040624->86040666` and only 1-2 pages +> changed (seed bi=768, clear bi=772/773). The DS signature +> (`stage=00000000,01990900,01990200,00000000,00000000,01990000`, +> `region=0/0`) is SPH2|SPH5|SPH9|SPH10|SPH18 with M_PIPE_STAGE=VSB|TI; +> the three stage VAs are legal V4 headers, so the failing entries are +> channel-level (cache/other binds), not those headers. Ranked next: +> (1) skip binds whose page does not start with SPH version 4 +> (`sema_sph_bind_filter`, receipt `SPH-BIND-FILTER`); (2) emit the +> program region as one 2-word INC run and fix the MME shadow read index +> to `(mthd >> 2) & 0xfff` before trusting the `scratch[0x78]` evidence; +> (3) make the pair model transactional (commit pair state only on +> retire, then re-enable pair-close by default); (4) sweep every bound +> SPH VA's first word and the per-stage bind list. +> +> Live at check (read-only): host up 5 h 13 m (fresh boot this morning); +> `vgsp` loaded (refcount 0) + mdev +> `c71c1617-b502-4ff0-9659-64df695aaa27` + QEMU 484365; r1538 (SPH +> bind/region experiment) is live and left running; its early receipts +> show `SPH-BIND emitted` and `SPH-REGION emitted` (bases +> 0x1500000/0x15c0000/0x1990000/0x1ab0000), mixed 1-2/0 changed-page +> copy-outs, and a 0-byte screen-capture fetch (no non-black frame yet); +> `pstore` empty; no reboot during the check (in-session cycles only); +> HEAD `81bde9b7` == `vgpu/master`, tree clean; `nvidia-smi` reports no +> GPU (the vgsp claim is held). +> +> CUDA front (backgrounded while the graphics campaign holds the device; +> its 10-30 status stands): the physical-engine path is green +> (`41343c63`; `victory_mail` `VADD bad=0` + `STATUS OK`; `vecadd_loop` +> 100 launches PASS); the fresh-boot battery's red class is D2H-stage +> (release-before-work, ledger-vs-writer divergence, memset +> readback/writeback race - all proven; release-discipline fixes staged, +> not yet validated); the SESSION 143 Vulkan fence/completion regression +> is still not re-measured, and the guest Vulkan pipeline renders +> end-to-end but black (the inline-to-memory upload arm is its named +> gap). Two guests with two mdevs coexist at boot level (guest-B CUDA +> awaits per-guest ownership). The Vulkan black-frame path and the GL +> pixel gate are separate; the GL draw is the one currently executing. +> +> Honest state: GATE1 is not met - the X screen is black/static and the +> best capture remains the earlier 2.08% non-black static twin frames +> (not pixels); the app's ~450 FPS is fence-level completion. The +> milestone position is between M-GL1 and M-GL2 (the gate = a swap-hook +> capture with real motion). Estimate (subjective): first non-black +> frames hours-to-days if the DS gate behaves like its predecessors; +> 60 fps / no-forcing and a video on the emulated vGPU weeks after that; +> full CUDA breadth, multi-VM and Windows months. Watch next: r1538's DS +> result, the SPH bind-filter / region-form fixes, and a first non-black +> xwd on a fresh cycle. +> > **Snapshot: 2026-11-04 ~12:45 (graphics-execution campaign, SESSION > 153/154 continued, r1442-r1451; HEAD `bbda751e`, tree clean, > `vgpu/master` in sync).** Since the 10-30 snapshot the active front is @@ -865,7 +939,7 @@ meant to execute on the physical GPU. | `cuMemAlloc` + `cuMemcpy` roundtrip (`ALL OK` in the smoke test) | ✅ payload roundtrip verified 64/64 in the guest | | Full `nvidia-smi` output / kernel launch | 🟡 the static runtime initializes end-to-end with **real releases**; a full `nvidia-smi` (per-process/utilization) remains unverified | | CUDA kernel execution (`vectorAdd`) | ✅ **Guest CUDA executes on the physical GR engine (host bridge disabled, since 2026-10-14):** `victory_mail` `VADD bad=0` + `STATUS OK` and `vecadd_loop` 100 launches PASS; matmul/transformer green after the 2026-10-20 boot-lottery fix (`c72f8948`). Remaining red class: the D2H-stage data classes (release-discipline fixes staged); launch-latency robustness; then battery/soak/multi-tenant breadth. | -| Graphics execution - OpenGL/X on the emulated vGPU | 🟡 Xorg `:0` + `glxinfo` 4.6.0 (NVIDIA, direct rendering) + GZDoom launch are live; the direct GL client forms channels and submits; the engine executes the client's replay windows, MME macros and the DRAW (slot-34) with engine-authored stores - **no rasterised pixels yet** (every capture black). Ladder position: between M-GL1 and M-GL2. | +| Graphics execution - OpenGL/X on the emulated vGPU | 🟡 Xorg `:0` + `glxinfo` 4.6.0 (NVIDIA, direct rendering) + GZDoom launch are live; the direct GL client forms channels and submits; the engine executes the client's replay windows, MME macros and the DRAW (slot-34) with engine-authored stores - the first calls-kept draw windows execute (r1529: 44 launches, 0 Class Error, `mac=0x22` x16, 1-2 engine-changed pages per launch) and the DS SPH validation is the last gate before pixels; **no rasterised pixels yet** (every capture black). Ladder position: between M-GL1 and M-GL2. | | Vulkan on the emulated vGPU | 🟡 the guest pipeline renders end-to-end but black; the inline-to-memory upload arm is the named gap; the SESSION 143 fence/completion regression is still open. | | Video | 🟡 R18 CUDA-animation video on the emulated vGPU (60/60 frames, exact vs CPU math); two two-VM GZDoom videos (the GPU-accelerated one is the labelled virtio-gpu/virgl path, not the emulated vGPU). | | Faults, multi-version, Windows, migration, multi-tenancy, performance | ❌ | |
