From 37b4d5756977b92d2c9f65ff9f3fa36462309c18 Mon Sep 17 00:00:00 2001 From: Arthur Hanson Rasmusson Date: Sun, 15 Nov 2026 16:39:17 -0500 Subject: docs(wiki): 2026-11-15 evening status refresh - held-window release carrier deterministic (c772), slot-34/SA[34] settled (0x265), call order is the blocker; eng64 chains the release behind the pack carrier; STATE-CURRENT snapshot --- wiki/Project-Plan.md | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) (limited to 'wiki/Project-Plan.md') diff --git a/wiki/Project-Plan.md b/wiki/Project-Plan.md index 9f8b55d..2594282 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-15, tree `master @ 692a7eb0`. Tags: `[done]`, `[active]`, +Status: 2026-11-15, tree `master @ 6aeb20c7`. 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 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), the client's draw-state push reaches the engine, the MME pack completes, the `DRAW_IAB` macro executes, the DS stage image is authored and live for both vertex slots (`st0=st1=020a0481`); the remaining walls are the remaining DS stage type/context bits, the draw-issue `mac=0x22`/stores, the window/screen present, and the per-boot binding/X first-generation start 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), the client's draw-state push reaches the engine, the MME pack completes, the `DRAW_IAB` macro executes, the DS stage image is authored and live for both vertex slots (`st0=st1=020a0481`), and the saved-window release carrier deterministically replays the held window once the pack is resident; the remaining walls are the release call order (`a03a68ea`, landed but unexercised), the pack-completion lottery, the remaining DS stage type/context bits and the stores, the window/screen present, and the per-boot binding/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]` | @@ -68,13 +68,18 @@ Ranked, in dependency order: executes with the SPH-BIND prelude intact and the DS stage VAs populated. The **DS stage-0/1 image is now authored and live** (a VTG SPH at `family+0x900`, first word `020a0481`; the window's own slot-1 bind is - rewritten to it; DS `0x86040626 -> 0x84000420`, two boots). The named walls - are the remaining DS stage type/context bits (SPH5/SPH10/SPH18) plus the - draw-issue call (the 728-B window's released macros are `0x33/0x39/0x1/0x0`, - not `DRAW_IAB`), the window/screen present path (glxgears' window is black - and a window draw wedges X), the per-boot binding/X first-generation start - lottery (even `modeNum` required; now the dominant throughput limiter), and - then non-black window frames. + rewritten to it; DS `0x86040626 -> 0x84000420`, two boots). The release + path is now host-deterministic when the pack completes: the saved-window + release carrier replays the held window with the calls released, and the + slot-34 census plus the SA[34] golden fill prove + `client=golden=used=0x265`. The named walls are the release call order + (the 728-B window places slot-34 after the `0x33/0x39` setup, so the DS + latch pre-empts it; the reorder `a03a68ea` is landed but unexercised), the + pack-completion lottery, the remaining DS stage type/context bits + (SPH5/SPH10/SPH18) and the stores, the window/screen present path + (glxgears' window is black and a window draw wedges X), the per-boot + binding/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, -- cgit v1.2.3