Repository navigation
Hold paused show frames, catch up clocks and enforce profiling thresholds - #213
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Pause and Escape previously left ISF feedback/FRAMEINDEX and external input pictures advancing. Render stalls also advanced shader TIME by at most 250 ms and show/media clocks by at most 2 s, accumulating drift. Snapshot composition fades advanced in wall time while layer fades followed show speed.
This holds source/effect frames at Pause or speed zero, latches Escape until explicit GO/Play/recall or releasing Pause, and preserves an independent operator Pause. Blackout and manual output faders remain available in wall time. Running show/media clocks and shader TIME catch up to elapsed wall time; shader TIMEDELTA keeps a bounded integration step. Missed simulation frames are not replayed. Snapshot composition and layer fades now share show time.
The endurance analyzer adds --check with nonzero exit on callback/lock budget violations, control drops, decoder errors, lost or incomplete telemetry. It reports peak tracked memory and lifetime callback/lock percentiles, rejects inactive audio and counter resets, and requires a fresh process for qualification.
Validation: application and engine tests compile on macOS; 19 local CPU/widget CTest areas pass after rebuilding all targets, the clock regressions also pass ASan/UBSan (leak detection disabled), and seven analyzer tests pass, including CLI exit codes. New GPU regressions cover persistent feedback hold/resume, external-input consumption, paused snapshot composition fades, blackout while held, and TIME versus TIMEDELTA across 650 ms / 3.1 s stalls. Linux CI passes all 65 CTest tests, including show_hold and the packaged application smoke test. Workspace ASan, ThreadSanitizer, the UI scenario and fuzzing also pass. Windows engine tests have passed and packaging is in progress; macOS engine tests are still running. The PR remains draft pending the remaining platform results. The exhaustive ISF library render remains disabled.
The single docs/README.md removes the completed show-control definition task and retains actual outstanding profiling, physical endurance/receiver acceptance and color transforms. No hardware performance or receiver A/V claim is made.