diff --git a/README.md b/README.md index d118007..e09f56d 100644 --- a/README.md +++ b/README.md @@ -57,7 +57,7 @@ protocol, FEC, and crypto, linked into the host and every client over a stable C | **Core** — `punktfunk-core` + C ABI (protocol · FEC · crypto · QUIC) | ✅ Complete & hardened | | **GameStream host** → stock Moonlight | ✅ Live end-to-end: pairing, RTSP, audio, per-client virtual output at native resolution, GPU zero-copy NVENC, gamepads | | **Native protocol** — `punktfunk/1` | ✅ Validated live: QUIC control + GF(2¹⁶) FEC/AES-GCM data plane, PIN pairing, mDNS discovery, mid-stream mode renegotiation | -| **Windows host** (Windows 11 22H2+, x64) | 🟡 Implemented & shipping as a signed installer: DXGI/WGC capture · its own all-Rust IddCx **virtual display** (secure-desktop capable) · GPU encode (NVENC on NVIDIA, AMF/QSV on AMD/Intel, software H.264 without a GPU) · WASAPI audio · bundled virtual-gamepad drivers (no ViGEmBus) · HDR incl. Vulkan-game HDR. NVIDIA live-validated; AMD/Intel CI-green | +| **Windows host** (Windows 11 22H2+, x64) | 🟡 Implemented & shipping as a signed installer: its own all-Rust IddCx **virtual display** (secure-desktop capable) with a **sealed IDD-push** capture path — finished frames pushed straight into its own driver, not screen-scraped (no DDA/WGC) · GPU encode (NVENC on NVIDIA, AMF/QSV on AMD/Intel, software H.264 without a GPU) · WASAPI audio · bundled virtual-gamepad drivers (no ViGEmBus) · HDR incl. Vulkan-game HDR. NVIDIA live-validated; AMD/Intel CI-green | | **macOS / iOS / tvOS client** (`clients/apple`) | ✅ Streaming live: VideoToolbox decode, controllers incl. DualSense, discovery, pairing, speed test | | **Linux client** (`clients/linux`, GTK4) | ✅ Streaming live: FFmpeg + VAAPI zero-copy decode, PipeWire audio, SDL3 controllers; ships as Flatpak/apt/rpm/Arch | | **Android client** (`clients/android`, phone + TV) | ✅ Streaming live: AMediaCodec decode + HDR10, AAudio audio, controllers, discovery, pairing | diff --git a/crates/punktfunk-host/README.md b/crates/punktfunk-host/README.md index 3d4f48c..3ad47e2 100644 --- a/crates/punktfunk-host/README.md +++ b/crates/punktfunk-host/README.md @@ -20,8 +20,9 @@ platform-facing around it. - **Per-client virtual displays at the exact WxH@Hz.** Linux uses per-compositor backends — **KWin**, **gamescope**, **Mutter**, and **Sway/wlroots**; Windows uses its own all-Rust IddCx virtual display, even on the secure desktop (UAC / lock screen). -- **GPU zero-copy capture → encode.** dmabuf → CUDA/Vulkan → NVENC on Linux; DXGI/WGC → GPU encode on - Windows. Encoders auto-select by GPU vendor: **NVENC** (NVIDIA), **VAAPI** (Linux AMD/Intel), +- **GPU zero-copy capture → encode.** dmabuf → CUDA/Vulkan → NVENC on Linux; on Windows the host + pushes frames straight into its own IDD (sealed IDD-push, no screen-scraping) → GPU encode. + Encoders auto-select by GPU vendor: **NVENC** (NVIDIA), **VAAPI** (Linux AMD/Intel), **AMF/QSV** (Windows AMD/Intel), or software H.264 as a floor. HDR/10-bit and HEVC 4:4:4 supported. - **Input injection.** Mouse/keyboard (libei / gamescope EIS / wlr / Windows SendInput) and virtual **gamepads** — Xbox 360/One, DualSense, DualShock 4 — with rumble and HID feedback back-channels. @@ -70,7 +71,7 @@ src/ main.rs CLI + subcommand dispatch config.rs · session_plan.rs · session_tuning.rs · pipeline.rs session setup + the frame pipeline vdisplay/ per-compositor virtual outputs (kwin · gamescope · mutter · wlroots) - capture/ · capture.rs screen/dmabuf capture (+ Windows DXGI/WGC) + capture/ · capture.rs screen/dmabuf capture (+ Windows IDD-push) encode/ · encode.rs per-GPU encoders (nvenc · vaapi · ffmpeg_win (AMF/QSV) · sw) zerocopy/ dmabuf → CUDA → NVENC bridges (EGL/GL tiled, Vulkan LINEAR) inject/ · inject.rs input backends (libei · wlr · uinput gamepads · UHID DualSense/DS4)