diff options
| author | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-11-14 10:56:43 -0500 |
|---|---|---|
| committer | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-11-14 10:56:43 -0500 |
| commit | ee07d8e565eb73643d86f672e43b1b36acfa62b7 (patch) | |
| tree | 609d2deb10bc5eebe323db1066fd1ad872547618 /wiki/Project-Plan.md | |
| parent | 339da842a4b6c800203952b4be235bc1041a8031 (diff) | |
| download | open-iov-ee07d8e565eb73643d86f672e43b1b36acfa62b7.tar.gz open-iov-ee07d8e565eb73643d86f672e43b1b36acfa62b7.zip | |
docs(wiki): 2026-11-14 status refresh - direct-GL submission decoded (macro-driven), push rescues land, draw-state push reaches the engine; MME multi-part completion is the wall; STATE-CURRENT snapshot
Diffstat (limited to 'wiki/Project-Plan.md')
| -rw-r--r-- | wiki/Project-Plan.md | 26 |
1 files changed, 14 insertions, 12 deletions
diff --git a/wiki/Project-Plan.md b/wiki/Project-Plan.md index 0300b78..3d10d8d 100644 --- a/wiki/Project-Plan.md +++ b/wiki/Project-Plan.md @@ -15,7 +15,7 @@ > [`../docs/06-portability/03-device-validation-and-porting-sequence.md`](../docs/06-portability/03-device-validation-and-porting-sequence.md); > the docs tree wins on disagreement. -Status: 2026-11-13, tree `master @ 436cbf9d`. Tags: `[done]`, `[active]`, +Status: 2026-11-14, tree `master @ 339da842`. Tags: `[done]`, `[active]`, `[ahead]` — the plan's own state vocabulary, distinct from the goal tags. ## 1. How the plan works @@ -40,11 +40,11 @@ itself: ## 2. The phases -| Phase | What it delivers | Exit gate | State (2026-11-13) | +| Phase | What it delivers | Exit gate | State (2026-11-14) | |---|---|---|---| | **P0 — Platform** | Emulated vGPU device, GSP boot and GSP-RM emulation, stock guest driver initialisation | Driver-API smoke green (`ALL OK`) = evaluation rung 2 | `[done]` | | **P1 — First execution (compute)** | Guest CUDA kernels executing on the physical GPU, with engine-authored completions; then hardening | Verified clients + engine-authored completion = rung 3 core; hardening: staged-transfer class, every-boot acceptance, per-guest isolation | `[active]` — execution green; hardening in progress | -| **P2 — Graphics execution** | OpenGL/Vulkan draw commands executed by the physical 3D pipeline and delivered as readable pixels | The graphics ladder: M-GL1 client context-init executes; M-GL2 `glxgears` non-black; M-GL3 GZDoom GL non-black through the mdev | `[active]` — between M-GL1 and M-GL2 with M-GL2's off-screen half proven: the display/KMS and DDX replay machinery work, X + stock GLX are green, the first non-black GPU-rendered frames and videos are captured, the X DDX/ScreenInit stability walls are closed, captured GL sections execute on the engine, and direct-GL push bodies decode above 10 GiB; the remaining walls are registration of the direct-GL payload user/UVM VAS (setup/draw pushes still resolve to zero/implausible PAs), the window/screen present, and the X first-generation screen-init lottery | +| **P2 — Graphics execution** | OpenGL/Vulkan draw commands executed by the physical 3D pipeline and delivered as readable pixels | The graphics ladder: M-GL1 client context-init executes; M-GL2 `glxgears` non-black; M-GL3 GZDoom GL non-black through the mdev | `[active]` — between M-GL1 and M-GL2 with M-GL2's off-screen half proven: the display/KMS and DDX replay machinery work, X + stock GLX are green, the first non-black GPU-rendered frames and videos are captured, the X DDX/ScreenInit stability walls are closed, captured GL sections execute on the engine, the direct-GL submission is fully decoded (macro-driven, no classic draw header), and the client's draw-state push now reaches the engine; the remaining walls are MME macro completion (multi-part keep-window A/B pending), the window/screen present, and the X first-generation start lottery | | **P3 — Sustained and multi-tenant** | Frame rates without assistance; multiple VMs sharing the GPU with measured fairness; soak-stable operation | Graphics M-GL4 (60 fps, no forcing) and M-GL5 (two VMs, two mdevs); CUDA battery + soak; per-guest execution isolation = rungs 4/5 | `[ahead]` | | **P4 — Breadth** | Video (NVENC/NVDEC), Windows/DirectX guests, live migration, non-KVM hypervisor transports | Per-case bring-up gates plus the matrix's evidence expectations | `[ahead]` | | **P5 — Scale and portability** | New GPU generations and driver families carried forward; published performance programme | A profile + measured delta per version, validated on hardware; A/B numbers published per the measurement contract | `[ahead]` | @@ -61,15 +61,17 @@ Ranked, in dependency order: stock GLX path are fully green (`glxinfo -B` rc 0, ~520 FPS `glxgears`), the X DDX/ScreenInit stability walls are closed (X green >10 minutes), the DDX 3D replay runs, the first non-black GPU-rendered frames and videos are - captured off-screen, captured GL sections execute on the engine, and the - direct-GL push bodies decode as real GR method streams above 10 GiB. The - named walls are **registration of the direct-GL payload user/UVM VAS** - (the `0x4001004` setup push and `0x4250000`/`0x4250110` draws still resolve - to zero/implausible PAs, so no draw section opens for `0xbeef0100` and - GZDoom spins after `V_Init`), the window/screen present path (glxgears' - window is black and a window draw wedges X), the X first-generation - screen-init lottery (even `modeNum` required), and then non-black window - frames. Full detail: + captured off-screen, captured GL sections execute on the engine, the + direct-GL submission is fully decoded (macro-driven; no method-grammar + draw header), and the client's draw-state push reaches the engine with the + golden MME overlay. The named walls are **MME macro completion** (the + 2799-word packed program cannot fit the <=2048-word block with the + 156-400-word draw window, so `live_gen` never promotes; the multi-part + keep-window mechanism is committed default-off with the A/B pending), the + window/screen present path (glxgears' window is black and a window draw + wedges X), the X first-generation start lottery (even `modeNum` required; + now the dominant throughput limiter), and then non-black window frames. + Full detail: [`Graphics-Execution.md`](Graphics-Execution.md) §6. 2. **Compute hardening (P1).** The staged-transfer class (failure modes proven, fixes in flight); the every-boot acceptance campaign; per-guest execution |
