summaryrefslogtreecommitdiffstats
path: root/wiki/Project-Plan.md
diff options
context:
space:
mode:
authorArthur Hanson Rasmusson <arthur@vgpu.io>2026-11-10 06:05:01 -0500
committerArthur Hanson Rasmusson <arthur@vgpu.io>2026-11-10 06:05:01 -0500
commit361d7d13842608aa7d7bd4cb187d540518bb09e3 (patch)
tree586b72a10fca894443b59fca42cc251c7dbd5e1e /wiki/Project-Plan.md
parentbb80290933435059ef491cf02c44ce17a36fd660 (diff)
downloadopen-iov-361d7d13842608aa7d7bd4cb187d540518bb09e3.tar.gz
open-iov-361d7d13842608aa7d7bd4cb187d540518bb09e3.zip
wiki: 2026-11-10 morning refresh - X reliable, GR timeouts fixed; beef-ring/CB/RT walls
Refresh STATE-CURRENT, the Main Page and the status/frontier pages: ebf3130f fixes the X DMA-init path and flips the GR pair-close/pair-safe replay fixes default ON (X green on attempt 1 in three consecutive cycles, backend_timeout=0, draws retire in 3-2400 ms); bb802909 is committed. The replayed draw still writes 0 pages; the beef GR ring resolution, the fixed-CB image's zero 0x80 MVP block and the render-target bind are the named walls. Published to open-iov.org.
Diffstat (limited to 'wiki/Project-Plan.md')
-rw-r--r--wiki/Project-Plan.md20
1 files changed, 11 insertions, 9 deletions
diff --git a/wiki/Project-Plan.md b/wiki/Project-Plan.md
index 8280697..0361ed6 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-09, tree `master @ cb8e822b`. Tags: `[done]`, `[active]`,
+Status: 2026-11-09, tree `master @ bb802909`. Tags: `[done]`, `[active]`,
`[ahead]` — the plan's own state vocabulary, distinct from the goal tags.
## 1. How the plan works
@@ -44,7 +44,7 @@ itself:
|---|---|---|---|
| **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; the display/KMS and direct-GL channel work is live and the guest's GL draws execute on the physical GPU; the constant-buffer (MVP) content, the MME/wedge stability and the DDX get-word/notifier completion are the walls |
+| **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; the display/KMS and direct-GL channel work is live, X is reliable, and the guest's GL draws execute on the physical GPU; the beef GR ring resolution, the fixed-CB image's zero MVP block and the render-target bind are the walls |
| **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]` |
@@ -58,10 +58,11 @@ available (P5 runs across the whole plan).
Ranked, in dependency order:
1. **Graphics pixels (P2).** The client and display stacks execute, the
- guest's GL draws forward and execute on the physical GPU, and the 2D path
- is green; the named walls are the constant-buffer (MVP) content (the draw
- writes 0 pages), the MME front-end/stale-wedge stability, the X DDX
- push-buffer get-word/notifier completion, and the DDX's 4 GB sysmem
+ guest's GL draws forward and execute on the physical GPU, X is reliable,
+ and the 2D path is green; the named walls are the beef GR ring resolution
+ (the fixed-CB scan only runs when `0xbeef0100`'s ring resolves
+ deterministically), the fixed-CB image's zero `0x80` MVP block (parser
+ bugs identified), the render-target bind, and the DDX's 4 GB sysmem
allocation (12 GB guest workaround), then non-black frames. Full detail:
[`Graphics-Execution.md`](Graphics-Execution.md) §6.
2. **Compute hardening (P1).** The staged-transfer class (failure modes proven,
@@ -80,9 +81,10 @@ bring-up (NvKms registers, X settles, GL 4.6); the UVM channel-pool tracker;
the direct-GL GR release and CE ring discovery; the X DDX kick-channel decode
and its three wait fixes (class-aware display arm, `0x8000 -> 0` notification
completion, decoded GL release applied); the GSP event-IRQ fix that completes
-swaps; the 2D path end-to-end; the guest's real GL draws forwarding and
-executing on the physical GPU (`backend_ok=9`); and the guest Vulkan pipeline
-running end to end.
+swaps; the X DMA-init fix (`ebf3130f`) that makes X green on attempt 1; the
+GR backend timeout fix (`backend_timeout=0`); the 2D path end-to-end; the
+guest's real GL draws forwarding and executing on the physical GPU
+(`backend_ok=5-7`); and the guest Vulkan pipeline running end to end.
## 4. The gates