From 5cf7b561b5ce91a70f4fe7c8156057220e7f191b Mon Sep 17 00:00:00 2001 From: enricobuehler Date: Mon, 15 Jun 2026 01:48:23 +0000 Subject: [PATCH] docs(windows-host): gamepad done; audio/rumble/GPU-validation remaining Co-Authored-By: Claude Opus 4.8 (1M context) --- docs/windows-host.md | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/docs/windows-host.md b/docs/windows-host.md index 11e3202..4148f9a 100644 --- a/docs/windows-host.md +++ b/docs/windows-host.md @@ -27,11 +27,17 @@ Every OS-touching backend is implemented behind the existing traits and **builds | Capture (DXGI Desktop Duplication) | ✅ done | helpers unit-tested; DuplicateOutput needs a GPU-activated monitor | | NVENC (D3D11, `--features nvenc`) | ✅ compiles+links | needs a GPU at runtime | | Run host (serve/m3-host) | ✅ live | m3-host starts + listens; `c_abi_connection_roundtrip` passes | -| Gamepad (ViGEm) | ⬜ next | needs ViGEmBus driver | -| Host→client audio wiring | ⬜ next | needs `opus` to build on MSVC | +| Gamepad (ViGEm) | ✅ done | compiles; live needs ViGEmBus + a physical pad; rumble back-channel TODO | +| Host→client audio wiring | ⬜ blocked | `opus` crate links *system* libopus (not on MSVC) | -**Remaining for full parity:** ViGEm gamepad + wiring host→client Opus audio (the WASAPI backend -exists; `m3` `audio_thread` is still Linux-gated pending an MSVC `opus` build). +**Remaining for full parity:** +- **Host→client Opus audio** — the WASAPI capture backend is done + init-validated, but the `m3` + `audio_thread` stays Linux-gated because the `opus` crate links *system* libopus, absent on MSVC. + Finish by providing libopus on MSVC (vcpkg) or switching `audio_thread` to a vendoring Opus crate + (audiopus/magnum-opus build libopus from C source), then widen the `audio_thread` cfg. +- **ViGEm rumble back-channel** (`Xbox360Wired::request_notification`) — small; needs a physical pad. +- **Live GPU/in-session validation** — SudoVDA monitor activation, DXGI capture, NVENC encode, and + SendInput injection all need a real GPU and an interactive (console) session, not SSH/Session-0. ### Building & testing on a real-GPU Windows box (NVENC)