From 5b3d5689bfb8ba98fc9b9c04194452adfa3ca427 Mon Sep 17 00:00:00 2001 From: enricobuehler Date: Mon, 15 Jun 2026 10:40:16 +0000 Subject: [PATCH] docs(windows-host): SendInput mouse injection live-validated on RTX 4090 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The Session-1 cursor tracked the client's absolute diagonal sweep across the virtual desktop (baseline (2560,720) → (0,0) → diagonal climb → (6359,719)) — SendInput mouse injection confirmed. Keyboard shares the same SendInput primitive (not separately asserted; needs a focused field). Co-Authored-By: Claude Opus 4.8 (1M context) --- docs/windows-host.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/windows-host.md b/docs/windows-host.md index e93d85f..af2aa0d 100644 --- a/docs/windows-host.md +++ b/docs/windows-host.md @@ -25,7 +25,7 @@ coexisting with a running Apollo (two concurrent NVENC sessions). | Backend | State | GPU-less validation on the VM | |---|---|---| | Virtual display (SudoVDA) | ✅ done | live: open/version/watchdog/ADD/REMOVE via the trait | -| Input (SendInput) | ✅ done | compiles; live injection needs an interactive session (not SSH) | +| Input (SendInput) | ✅ **live on RTX 4090** | mouse injection verified — cursor tracked the client's absolute diagonal sweep across the desktop in Session 1 (keyboard shares the same SendInput primitive) | | Software encode (openh264) | ✅ done | **live: m0 synthetic→openh264→core FEC loopback, 120/120, 0 mismatches** | | Audio (WASAPI loopback) | ✅ done | live: init chain opens (silent VM → no samples) | | Capture (DXGI Desktop Duplication) | ✅ **live on RTX 4090** | SudoVDA monitor → D3D11 zero-copy duplication; output is enumerated under the *rendering* GPU, not the SudoVDA LUID (search all adapters) | @@ -38,8 +38,8 @@ coexisting with a running Apollo (two concurrent NVENC sessions). | Game library (Steam discovery) | ✅ done | Windows Steam roots (Program Files) + VDF other-drive libraries; custom store already cross-platform. Non-default Steam install dir (registry) not yet covered | **Remaining for full parity:** -- **SendInput injection** — needs the interactive session (works once the host runs in Session 1; - not yet exercised live). +- **Keyboard injection** — exercised via the same SendInput path (mouse verified live); not yet + asserted into a focused text field. - **ViGEm rumble + gamepad input** — the pad is created live (ViGEmBus connected); the rumble back-channel + input still need a physical pad to verify. - **GameStream (Moonlight) path on a GPU box** — not yet run live (its fixed ports collide with