Repository navigation
cef_host: say why the resize capture refresh is needed, accurately - #62
Merged
Merged
Conversation
The #61 comment said the capturer drops refresh requests while it sees the content as animating. A trace with gpu.capture on shows the actual sequence: the renderer's first new-size frame is captured at the old size, CEF then sets the new capture size, the capture that asks for is rate-limited, and the capturer's own retries (every ~33 ms) are all turned away by the stricter check for non-compositor refreshes (nothing pending, no recent animation) until the stall kick. Invalidate's refresh demand is treated like a compositor update and captures at once. Comment and changelog only. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
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.
Comment and changelog only. It corrects the explanation #61 gave for the capture refresh, before the prebuilt is published; comments count toward the cef_host input hash.
A trace of the stall with
gpu.captureon (refresh disabled so it reproduces) shows the same sequence in all three stalls:OnRenderFrameMetadataChangedAfterActivationthen sets the new capture size. The capture that asks for is rate-limited (FpsRateLimited demand), because a capture was just taken.kRefreshRequest. Every retry is rejected for the whole stall, and the smoothing sampler's token bucket is never consulted. That puts the rejection inVideoCaptureOracle's non-compositor check: nothing pending, no recent animation.Invalidatesends a refresh demand, which the oracle treats like a compositor update, and it captures at once.The fix in #61 is unchanged. #61 said the capturer drops refresh requests while it sees the content as animating; that rule applies only to the capturer's own retries, not to
Invalidate's demand.🤖 Generated with Claude Code