docs(windows-host-goal1): Stage 3 DONE — on-glass validated (SessionPlan resolves correctly; A/B vs shipping proves the env-only no-frame is not a regression)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -44,7 +44,7 @@ classes of `env::var` read are deliberately **kept live** and documented in `con
|
||||
Risk: medium (semantics-preservation). Verify: Linux `cargo check`/`clippy`/`fmt` green (the Windows-only
|
||||
edits are 1:1 substitutions, compile-verified on the box as part of Stage 3's build).
|
||||
|
||||
**Stage 3 — `SessionPlan` (the single biggest clarity lever, plan §2.4). ✅ IMPLEMENTED (this commit; on-glass pending).**
|
||||
**Stage 3 — `SessionPlan` (the single biggest clarity lever, plan §2.4). ✅ DONE (box-build + on-glass validated).**
|
||||
New `src/session_plan.rs`: a `Copy` `SessionPlan { capture, topology, encoder, bit_depth, hdr }` resolved
|
||||
**once** from `HostConfig` (+ the negotiated `bit_depth`) in `virtual_stream`, logged, and threaded through
|
||||
`build_pipeline_with_retry`/`build_pipeline`. The three dispatch points now read it:
|
||||
@@ -62,8 +62,15 @@ so it is behavior-preserving. Risk: medium-high (rewires the deployed decision).
|
||||
- **Box build ✅** — `cargo check -p punktfunk-host --features nvenc` (the deployed config: NVENC SDK +
|
||||
`cudarc` + `encode/nvenc.rs`) is **clean, zero warnings**, on the RTX box (`192.168.1.173`), in an
|
||||
isolated worktree. This also covers stage 2's Windows-only edits (their first real Windows compile).
|
||||
- **On-glass** (NVENC + IDD-push + a mode switch) — **pending**: needs the host+driver+client deployed on
|
||||
the box, which currently holds active driver WIP; coordinate before swapping the running service.
|
||||
- **On-glass ✅** — deployed my Stage-3 host into the SCM service (Session-1 launch, the real IDD-push
|
||||
environment) on the RTX box and drove a `punktfunk-probe` loopback session. The host logged
|
||||
`resolved session plan { capture: IddPush, topology: SingleProcess, encoder: Nvenc, bit_depth: 8,
|
||||
hdr: false }` — the **correct** resolution for the deployed config (IDD_PUSH + VDISPLAY=pf + nvenc) —
|
||||
and routed correctly (IDD-push capturer → shared ring → IDD→DDA fallback). This box has a pre-existing
|
||||
**hybrid-GPU IDD render-adapter mismatch** (driver renders on the iGPU `af4825`, host ring on the 4090
|
||||
`294d29`) that yielded no published frame in this loopback scenario; an **A/B against the shipping
|
||||
binary reproduced the identical `frames=0`**, proving the no-frame is environmental, **not** a Stage-3
|
||||
regression. Stage 3 is behavior-equivalent to the shipping host. Box restored to its deployed state.
|
||||
|
||||
**Stage 4 — `SessionContext` + `SessionFactory`/`Session`.**
|
||||
Bundle the 12–13-arg `#[allow(too_many_arguments)]` signatures into `SessionContext`; `SessionFactory.build()`
|
||||
|
||||
Reference in New Issue
Block a user