<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://open-iov.org/index.php?action=history&amp;feed=atom&amp;title=Project_Plan</id>
	<title>Project Plan - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://open-iov.org/index.php?action=history&amp;feed=atom&amp;title=Project_Plan"/>
	<link rel="alternate" type="text/html" href="https://open-iov.org/index.php?title=Project_Plan&amp;action=history"/>
	<updated>2026-10-30T19:31:21Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.37.1</generator>
	<entry>
		<id>https://open-iov.org/index.php?title=Project_Plan&amp;diff=24029&amp;oldid=prev</id>
		<title>WikiBot: 2026-10-30 wiki refresh: add Project Plan page (phases, gates, workstreams, next steps)</title>
		<link rel="alternate" type="text/html" href="https://open-iov.org/index.php?title=Project_Plan&amp;diff=24029&amp;oldid=prev"/>
		<updated>2026-10-30T17:12:02Z</updated>

		<summary type="html">&lt;p&gt;2026-10-30 wiki refresh: add Project Plan page (phases, gates, workstreams, next steps)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{About message}}&lt;br /&gt;
&lt;br /&gt;
= Project Plan =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;'''Scope.''' The sequence of work: the phases, the gates that close them, what comes next, and how the plan itself is maintained. This is the ''roadmap'' view — [[Project Goals|&amp;lt;code&amp;gt;Project-Goals.md&amp;lt;/code&amp;gt;]] says what the project is for, [[Project Status|&amp;lt;code&amp;gt;Project-Status.md&amp;lt;/code&amp;gt;]] says where it stands today, and this page says in what order the remaining work happens and what must be true before each step. Canonical sources: the compute milestone ladder in [https://git.vgpu.io/open-iov.git/tree/docs/04-implementation/03-execution-frontier.md &amp;lt;code&amp;gt;../docs/04-implementation/03-execution-frontier.md&amp;lt;/code&amp;gt;], the graphics ladder in [https://git.vgpu.io/open-iov.git/tree/docs/04-implementation/05-graphics-execution-plan.md &amp;lt;code&amp;gt;../docs/04-implementation/05-graphics-execution-plan.md&amp;lt;/code&amp;gt;], the five-rung evaluation ladder in [https://git.vgpu.io/open-iov.git/tree/docs/05-operations/01-performance-correctness-security.md &amp;lt;code&amp;gt;../docs/05-operations/01-performance-correctness-security.md&amp;lt;/code&amp;gt;], and the porting sequence in [https://git.vgpu.io/open-iov.git/tree/docs/06-portability/03-device-validation-and-porting-sequence.md &amp;lt;code&amp;gt;../docs/06-portability/03-device-validation-and-porting-sequence.md&amp;lt;/code&amp;gt;]; the docs tree wins on disagreement.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Status: 2026-10-30, tree &amp;lt;code&amp;gt;master @ b4930168&amp;lt;/code&amp;gt;. Tags: &amp;lt;code&amp;gt;[done]&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;[active]&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;[ahead]&amp;lt;/code&amp;gt; — the plan's own state vocabulary, distinct from the goal tags.&lt;br /&gt;
&lt;br /&gt;
== 1. How the plan works ==&lt;br /&gt;
&lt;br /&gt;
Five rules shape every phase below, and they are the project's contract with itself:&lt;br /&gt;
&lt;br /&gt;
# '''Every milestone has a gate and an acceptance signal, named before the work starts.''' A wall is closed only by its acceptance signal — not by an intention, a decompiler reading, or a lucky run.&lt;br /&gt;
# '''The evaluation ladder is the spine.''' A platform advances initialization → runtime start → execution → sustained → multi-tenant, and nothing claims a rung it has not reached and reproduced.&lt;br /&gt;
# '''Correctness before speed; no number without methodology.''' Performance claims carry their harness, versions and A/B baseline.&lt;br /&gt;
# '''Default-off until validated.''' New mechanisms land behind parameters (the forwarding and graphics seams today) and graduate only after their gate passes; graduation replaces the knob with documented configuration.&lt;br /&gt;
# '''No patches anywhere, and profiles over rewrites.''' Guest drivers, host drivers, firmware and hypervisors stay stock; a new driver, firmware or GPU enters the plan as a ''profile plus a measured delta''.&lt;br /&gt;
&lt;br /&gt;
== 2. The phases ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Phase&lt;br /&gt;
! What it delivers&lt;br /&gt;
! Exit gate&lt;br /&gt;
! State (2026-10-30)&lt;br /&gt;
|-&lt;br /&gt;
| '''P0 — Platform'''&lt;br /&gt;
| Emulated vGPU device, GSP boot and GSP-RM emulation, stock guest driver initialisation&lt;br /&gt;
| Driver-API smoke green (&amp;lt;code&amp;gt;ALL OK&amp;lt;/code&amp;gt;) = evaluation rung 2&lt;br /&gt;
| &amp;lt;code&amp;gt;[done]&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| '''P1 — First execution (compute)'''&lt;br /&gt;
| Guest CUDA kernels executing on the physical GPU, with engine-authored completions; then hardening&lt;br /&gt;
| Verified clients + engine-authored completion = rung 3 core; hardening: staged-transfer class, every-boot acceptance, per-guest isolation&lt;br /&gt;
| &amp;lt;code&amp;gt;[active]&amp;lt;/code&amp;gt; — execution green; hardening in progress&lt;br /&gt;
|-&lt;br /&gt;
| '''P2 — Graphics execution'''&lt;br /&gt;
| OpenGL/Vulkan draw commands executed by the physical 3D pipeline and delivered as readable pixels&lt;br /&gt;
| The graphics ladder: M-GL1 client context-init executes; M-GL2 &amp;lt;code&amp;gt;glxgears&amp;lt;/code&amp;gt; non-black; M-GL3 GZDoom GL non-black through the mdev&lt;br /&gt;
| &amp;lt;code&amp;gt;[active]&amp;lt;/code&amp;gt; — between M-GL1 and M-GL2; the pixel walls are named&lt;br /&gt;
|-&lt;br /&gt;
| '''P3 — Sustained and multi-tenant'''&lt;br /&gt;
| Frame rates without assistance; multiple VMs sharing the GPU with measured fairness; soak-stable operation&lt;br /&gt;
| Graphics M-GL4 (60 fps, no forcing) and M-GL5 (two VMs, two mdevs); CUDA battery + soak; per-guest execution isolation = rungs 4/5&lt;br /&gt;
| &amp;lt;code&amp;gt;[ahead]&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| '''P4 — Breadth'''&lt;br /&gt;
| Video (NVENC/NVDEC), Windows/DirectX guests, live migration, non-KVM hypervisor transports&lt;br /&gt;
| Per-case bring-up gates plus the matrix's evidence expectations&lt;br /&gt;
| &amp;lt;code&amp;gt;[ahead]&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| '''P5 — Scale and portability'''&lt;br /&gt;
| New GPU generations and driver families carried forward; published performance programme&lt;br /&gt;
| A profile + measured delta per version, validated on hardware; A/B numbers published per the measurement contract&lt;br /&gt;
| &amp;lt;code&amp;gt;[ahead]&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The phases overlap on purpose: the graphics workstream is what unblocks P3's first exit gate, and portability work starts from whichever hardware becomes available (P5 runs across the whole plan).&lt;br /&gt;
&lt;br /&gt;
== 3. Where the plan stands, and what is next ==&lt;br /&gt;
&lt;br /&gt;
Ranked, in dependency order:&lt;br /&gt;
&lt;br /&gt;
# '''Graphics pixels (P2).''' Three walls, each with a named next fix: the GL client's submissions; program (SASS) delivery plus program-VA mapping; then non-black frames. Full detail: [[Graphics Execution|&amp;lt;code&amp;gt;Graphics-Execution.md&amp;lt;/code&amp;gt;]] §6.&lt;br /&gt;
# '''Compute hardening (P1).''' The staged-transfer class (failure modes proven, fixes in flight); the every-boot acceptance campaign; per-guest execution isolation. Detail: [[The Execution Frontier|&amp;lt;code&amp;gt;Execution-Frontier.md&amp;lt;/code&amp;gt;]].&lt;br /&gt;
# '''The visible sequence after these''': first non-black frame → 60 fps in one VM with no forcing → two VMs on two mdevs → the CUDA battery 15/15 plus a soak → video → Windows.&lt;br /&gt;
# '''Then P4/P5 row by row''': each item ships with its own gate, profile and evidence, and only then moves in the matrix.&lt;br /&gt;
&lt;br /&gt;
Recently closed, as evidence the gates work: the boot-poisoning defect and the post-reboot client-stall defect (compute reproducibility); the X/GL wall (the X server and GLX run on the emulated vGPU); the engine executing the real GL method stream; and the guest Vulkan pipeline running end to end.&lt;br /&gt;
&lt;br /&gt;
== 4. The gates ==&lt;br /&gt;
&lt;br /&gt;
Each gate's full text lives in its canonical document; this is the map:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Gate&lt;br /&gt;
! What must be true&lt;br /&gt;
! Where it is defined&lt;br /&gt;
|-&lt;br /&gt;
| '''Rung gate'''&lt;br /&gt;
| The previous rung is green and reproducible for this platform before the next is claimed&lt;br /&gt;
| Evaluation ladder&lt;br /&gt;
|-&lt;br /&gt;
| '''Execution gate'''&lt;br /&gt;
| Engine-authored release plus verified guest results, reproduced across fresh boots&lt;br /&gt;
| Execution frontier&lt;br /&gt;
|-&lt;br /&gt;
| '''Graphics gate'''&lt;br /&gt;
| Milestone definitions: capture shows motion, no forcing, no diagnostic mirror, renderer is the NVIDIA driver&lt;br /&gt;
| Graphics plan (§C)&lt;br /&gt;
|-&lt;br /&gt;
| '''Performance gate'''&lt;br /&gt;
| A/B ratios from the published harness; no absolute numbers; variance and run counts reported&lt;br /&gt;
| Measurement contract&lt;br /&gt;
|-&lt;br /&gt;
| '''Portability gate'''&lt;br /&gt;
| Profile fields recorded, firmware/device pairing hashed, first-touch differences explained, supervised physical validation done&lt;br /&gt;
| Porting sequence + matrix&lt;br /&gt;
|-&lt;br /&gt;
| '''Isolation gate'''&lt;br /&gt;
| Fail-closed enforcement; fairness measured before any multi-tenant claim&lt;br /&gt;
| Security document&lt;br /&gt;
|-&lt;br /&gt;
| '''Security gate'''&lt;br /&gt;
| Adversarial review before multi-tenant or production claims&lt;br /&gt;
| Security document&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 5. Workstreams (always on) ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Workstream&lt;br /&gt;
! What it does&lt;br /&gt;
! Entry point&lt;br /&gt;
|-&lt;br /&gt;
| Correctness and acceptance&lt;br /&gt;
| The regression battery, battery-first ordering, regression gates&lt;br /&gt;
| [[The Execution Frontier|&amp;lt;code&amp;gt;Execution-Frontier.md&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|-&lt;br /&gt;
| Graphics execution&lt;br /&gt;
| The execution lanes, capture/decode, the M-GL ladder&lt;br /&gt;
| [[Graphics Execution|&amp;lt;code&amp;gt;Graphics-Execution.md&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|-&lt;br /&gt;
| Performance measurement&lt;br /&gt;
| Microbenchmarks first, then the A/B corpus, then structural optimisation&lt;br /&gt;
| [[Performance|&amp;lt;code&amp;gt;Performance.md&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|-&lt;br /&gt;
| Portability and versions&lt;br /&gt;
| Profiles, measured deltas, the validation sequence; new driver/firmware families behind a review gate&lt;br /&gt;
| [[Hardware and Software Matrix|&amp;lt;code&amp;gt;Hardware-Software-Matrix.md&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|-&lt;br /&gt;
| Developer tooling&lt;br /&gt;
| The firmware workbench: recorded sessions as evidence, offline-first investigation of walls&lt;br /&gt;
| [[risc-v-gsp-rm-debugger|&amp;lt;code&amp;gt;Riscv-GSP-RM-Debugger.md&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|-&lt;br /&gt;
| Security and isolation&lt;br /&gt;
| Threat model, audits, fail-closed posture&lt;br /&gt;
| [https://git.vgpu.io/open-iov.git/tree/docs/05-operations/01-performance-correctness-security.md &amp;lt;code&amp;gt;../docs/05-operations/01-performance-correctness-security.md&amp;lt;/code&amp;gt;]&lt;br /&gt;
|-&lt;br /&gt;
| Documentation and evidence&lt;br /&gt;
| Docs tree canonical; dated status; replayable evidence for every claim&lt;br /&gt;
| [https://git.vgpu.io/open-iov.git/tree/docs/README.md &amp;lt;code&amp;gt;../docs/README.md&amp;lt;/code&amp;gt;]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 6. Contributing to the plan ==&lt;br /&gt;
&lt;br /&gt;
* '''The unit of contribution is a profile plus evidence''', evaluated through the five-rung ladder — see &amp;quot;Adding a new combination&amp;quot; in [[Hardware and Software Matrix|&amp;lt;code&amp;gt;Hardware-Software-Matrix.md&amp;lt;/code&amp;gt;]] and the porting sequence document.&lt;br /&gt;
* '''Nasty bugs''' (non-reproducible, cross-subsystem, blocking a gate) get a tracked issue in the repository; ordinary work stays in the live handoffs.&lt;br /&gt;
* '''Support claims''' are made only by recording hardware + driver + firmware + rung + date in the matrix with the evidence bundle behind them.&lt;br /&gt;
&lt;br /&gt;
== 7. How this plan is maintained ==&lt;br /&gt;
&lt;br /&gt;
The plan is a living sequence, not a dated roadmap: each milestone's gate is owned by its canonical document, the current state is tracked on [[Project Status|&amp;lt;code&amp;gt;Project-Status.md&amp;lt;/code&amp;gt;]], and the plan changes only when a gate is named and its evidence rules are written down. When a wall closes, the canonical doc is updated first and the site pages follow on the next refresh.&lt;br /&gt;
&lt;br /&gt;
== 8. Related pages ==&lt;br /&gt;
&lt;br /&gt;
* [[Project Goals|&amp;lt;code&amp;gt;Project-Goals.md&amp;lt;/code&amp;gt;]] — the goals and their status.&lt;br /&gt;
* [[Project Status|&amp;lt;code&amp;gt;Project-Status.md&amp;lt;/code&amp;gt;]] — the dated milestone ladder.&lt;br /&gt;
* [[The Execution Frontier|&amp;lt;code&amp;gt;Execution-Frontier.md&amp;lt;/code&amp;gt;]] — the compute frontier and its gates.&lt;br /&gt;
* [[Graphics Execution|&amp;lt;code&amp;gt;Graphics-Execution.md&amp;lt;/code&amp;gt;]] — the graphics frontier and the M-GL ladder.&lt;br /&gt;
* [[Performance|&amp;lt;code&amp;gt;Performance.md&amp;lt;/code&amp;gt;]] — the measurement programme.&lt;br /&gt;
* [[Hardware and Software Matrix|&amp;lt;code&amp;gt;Hardware-Software-Matrix.md&amp;lt;/code&amp;gt;]] — the portability plan and support ladder.&lt;br /&gt;
* [https://git.vgpu.io/open-iov.git/tree/docs/README.md &amp;lt;code&amp;gt;../docs/README.md&amp;lt;/code&amp;gt;] — the documentation front door and the project's own status table.&lt;/div&gt;</summary>
		<author><name>WikiBot</name></author>
	</entry>
</feed>