Skip to content

fix(monitors): keep ready inputs updating during source holds (#801) - #803

Merged
iamfatness merged 2 commits into
mainfrom
codex/monitor-source-admission-801
Oct 7, 2026
Merged

iamfatness merged 2 commits into
mainfrom
codex/monitor-source-admission-801

Conversation

@iamfatness

@iamfatness iamfatness commented Oct 7, 2026 •

Copy link
Copy Markdown
Owner

Fixes #801, under approved parent #517.

An unavailable private GPU monitor copy currently refuses the entire job, freezing healthy Preview and multiview inputs. Admit each source independently and retain one last-good private/CPU frame on the monitor owner (64 sources, 256 MiB logical payload budget). Missing content reports held/unavailable while unrelated inputs continue; holds preserve their original epoch/frame/capture observation. Production aliases are rejected and production leases detach before enqueueing. Undemanded cache references retire on the monitor owner with separate GPU completion leases.

Source exports now include source epoch in held-frame dedup, so a reconnect reusing a frame ID republishes its new pixels. Native snapshots expose bounded source states with an attributable job sequence; the support bundle adds versioned ready/held/unavailable and logical resource observations. Isolation/GPU ingress defaults, 1080p60 quality and Program buffering are unchanged.

Validation so far: Release build; 3 admission, 4 cache, 4 worker and 3 real-pixel tests passed; real private-GPU hold plus healthy pixel changes, all-missing recovery and epoch-reused source export checked. The isolated blocked-monitor Program test passed. Real WGC opt-in test passed with separate CPU/ISO arrivals, production advancing while every optional monitor slot was held, and three reconnect epochs. Support tests 34 passed; full MediaCore suite 2,331 passed on quiet repeat. The first full suite reproduced existing #754's double recovery outcome (2,330 passed/1 failed); failure and successful targeted repeat retained on that issue, attribution unresolved.

Final native head 768c47d built in Release and passed the additive evidence test, real-pixel monitor tests and isolated blocked-monitor test locally. All hosted CI/CodeQL checks passed for that head. Follow-up 247a29f adds only #804's BACKLOG intake row; no native/runtime changes. All hosted CI and CodeQL checks passed for final head 247a29f.

The completed maintained matched harness (3 paired two-minute windows, AB/BA/AB, 10-second warmup, 1080p60/buffer 2/local recording) produced isolated underruns 2/2/0 versus inline 34/186/124. Recording missing counts match; audio loss, Program sequence gaps, render skips and encoder queue failures remain zero. Isolated retention remained 10 inputs/47,923,200 logical bytes with no admission/resource refusal or SHM pool-busy delta. Actual missing-input behavior is separately covered by the pixel fault tests.

The first two isolated windows FAIL release delivery acceptance. Logs locate measured post-GPU-ready publication expiry (19.426/16.593 ms export wall time) in D3DProgramBuffer::deliveryLoop; #804 tracks the outstanding boundary and its unknown driver/mutex/preemption contribution. Full retained verdicts. This PR fixes source-scoped admission; it does not qualify the complete pipeline or establish that it introduced publication delay. Parent #517 and default/release qualification remain open, including #802, #804 and installed/receiver/latency/A/V/resource/fleet gates. Installed files/settings and both runtime defaults are unchanged.

@iamfatness
iamfatness marked this pull request as ready for review October 7, 2026 03:03
@iamfatness
iamfatness merged commit 59d5efb into main Oct 7, 2026
17 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Keep ready monitor inputs updating when one source is unavailable (#517)

1 participant