gramps
b37b8a30f9
perf(capture): overlap GPU readbacks with monotonic publish gate (slice 17)
...
Measure take ty-1824 on the slice-16 build: the downscale fix worked (conv
~47ms, ring allocs 0) but desktop band was still 88% frozen at 6.8 updates/s.
Telemetry isolated the real wall — CreateCopyFromSurfaceAsync readback ~45ms
of each conversion, serialized one-in-flight => ~17/s capture cap. Docs fact:
pool-sized surfaces CLIP, not scale (Microsoft Learn), so readback stays
native; the lever is concurrency.
- MaxConcurrentConversions=3 with pool 2->5 buffers (in-flight frames fit)
- new MonotonicGate (Interlocked compare-exchange): stale OLDER completions
are dropped, never overwrite a newer LatestFrame (mirror of 1742 tear)
- FrameRingBuffer.Rent/ConsumeAllocations now lock; downscale row scratch is
per-conversion locals
- Good Dog test PublishGate_TryPublish_OnlyStrictlyNewerWins; 296/296 green,
0 warnings; docs cited Microsoft screen-capture page + libyuv fixed-point.
Local only, no push.
2026-09-14 18:40:20 -07:00
..
2026-09-14 12:30:44 -07:00
2026-09-12 13:56:55 -07:00
2026-09-14 17:40:59 -07:00
2026-08-06 14:35:34 -07:00
2026-08-12 07:21:15 -07:00
Screen backdrop (schema v5/v6) + five-scene catalog + webcam polish: live desktop/game capture as a permanent non-deletable bottom layer (Source.IsBackdrop), auto full-screen game detection (Win32FullScreenDetector) else primary display, GraphicsCapturePicker re-designation, refcounted shared ScreenCaptureManager, Live-only backdrop by policy (HasBackdrop + v5-v6 backfill + EnforceBackdropPolicy, checkbox gone), SceneCatalog (Starting/Live/BRB/Chat/Ending) with + button re-adding missing scenes, webcam mid-session transparent-container fix (GetPreviewBitmap propagation), Chat half-screen-area cap, 'Add Webcam' always opens the picker (SwapWebcamIdentityAsync, no silent resurrect), WindowsRuntimeMarshal frame-read + 5s-throttled errors, docs updated, tests (65 passing)
2026-08-07 14:15:50 -07:00
2026-08-20 18:02:41 -07:00
2026-09-04 12:16:20 -07:00
Screen backdrop (schema v5/v6) + five-scene catalog + webcam polish: live desktop/game capture as a permanent non-deletable bottom layer (Source.IsBackdrop), auto full-screen game detection (Win32FullScreenDetector) else primary display, GraphicsCapturePicker re-designation, refcounted shared ScreenCaptureManager, Live-only backdrop by policy (HasBackdrop + v5-v6 backfill + EnforceBackdropPolicy, checkbox gone), SceneCatalog (Starting/Live/BRB/Chat/Ending) with + button re-adding missing scenes, webcam mid-session transparent-container fix (GetPreviewBitmap propagation), Chat half-screen-area cap, 'Add Webcam' always opens the picker (SwapWebcamIdentityAsync, no silent resurrect), WindowsRuntimeMarshal frame-read + 5s-throttled errors, docs updated, tests (65 passing)
2026-08-07 14:15:50 -07:00
2026-08-31 18:57:29 -07:00
2026-08-31 19:45:48 -07:00
2026-08-31 19:45:48 -07:00
2026-09-14 18:40:20 -07:00
2026-08-26 06:48:14 -07:00
2026-08-26 06:48:14 -07:00
2026-08-06 14:35:34 -07:00
2026-08-12 07:21:15 -07:00
2026-08-31 18:57:29 -07:00
2026-08-20 18:02:41 -07:00
2026-08-31 19:52:10 -07:00
2026-08-07 17:44:16 -07:00
2026-09-14 16:14:00 -07:00
2026-08-23 12:25:04 -07:00
Screen backdrop (schema v5/v6) + five-scene catalog + webcam polish: live desktop/game capture as a permanent non-deletable bottom layer (Source.IsBackdrop), auto full-screen game detection (Win32FullScreenDetector) else primary display, GraphicsCapturePicker re-designation, refcounted shared ScreenCaptureManager, Live-only backdrop by policy (HasBackdrop + v5-v6 backfill + EnforceBackdropPolicy, checkbox gone), SceneCatalog (Starting/Live/BRB/Chat/Ending) with + button re-adding missing scenes, webcam mid-session transparent-container fix (GetPreviewBitmap propagation), Chat half-screen-area cap, 'Add Webcam' always opens the picker (SwapWebcamIdentityAsync, no silent resurrect), WindowsRuntimeMarshal frame-read + 5s-throttled errors, docs updated, tests (65 passing)
2026-08-07 14:15:50 -07:00
2026-08-31 09:10:17 -07:00
2026-08-31 09:10:17 -07:00
2026-08-31 09:10:17 -07:00
2026-08-31 09:10:17 -07:00
2026-08-31 09:10:17 -07:00
2026-09-14 12:30:44 -07:00
2026-08-25 17:25:25 -07:00
2026-08-06 14:35:34 -07:00
2026-09-12 13:56:55 -07:00
2026-08-31 19:52:10 -07:00
2026-08-31 19:22:02 -07:00
2026-08-07 17:44:16 -07:00
2026-09-14 18:40:20 -07:00
2026-08-23 12:25:04 -07:00
2026-08-21 08:18:52 -07:00
2026-08-31 18:57:29 -07:00
2026-08-29 09:02:55 -07:00
2026-08-31 17:53:34 -07:00
2026-09-14 18:40:20 -07:00
2026-08-22 18:10:59 -07:00
Screen backdrop (schema v5/v6) + five-scene catalog + webcam polish: live desktop/game capture as a permanent non-deletable bottom layer (Source.IsBackdrop), auto full-screen game detection (Win32FullScreenDetector) else primary display, GraphicsCapturePicker re-designation, refcounted shared ScreenCaptureManager, Live-only backdrop by policy (HasBackdrop + v5-v6 backfill + EnforceBackdropPolicy, checkbox gone), SceneCatalog (Starting/Live/BRB/Chat/Ending) with + button re-adding missing scenes, webcam mid-session transparent-container fix (GetPreviewBitmap propagation), Chat half-screen-area cap, 'Add Webcam' always opens the picker (SwapWebcamIdentityAsync, no silent resurrect), WindowsRuntimeMarshal frame-read + 5s-throttled errors, docs updated, tests (65 passing)
2026-08-07 14:15:50 -07:00
2026-08-22 18:10:59 -07:00
2026-08-16 17:48:37 -07:00
2026-08-22 18:10:59 -07:00
2026-09-08 12:07:54 -07:00
2026-09-14 16:14:00 -07:00
2026-09-14 16:14:00 -07:00
2026-08-20 18:02:41 -07:00
2026-08-07 17:44:16 -07:00
2026-08-22 18:10:59 -07:00
2026-08-19 11:59:29 -07:00
2026-09-01 20:55:06 -07:00