Repository navigation
Conversation
Chromium redraws every lensed backdrop on the CPU each frame the page moves under it: about 11 ms a frame on a desktop page of cards, enough to drop to 42 fps on an RTX 4080. While the page scrolls, and for 150 ms after, the root carries data-lens-paused and the lens tokens fall back to the same blur and colour without the refraction. Scrolling measures at 60 fps with 0.3 ms of compositor draw, the same as Clear.
Settings > Appearance gains a switch, on by default, for the scroll pause. Turned off, the root carries data-lens-steady and lens.ts no longer pauses the lens. The Glass rows (wallpaper, blur and this switch) now load with the Glass palettes only, which keeps the Settings route within its size budget: 72,866 bytes over a 72,800 limit inline, 67,133 lazy.
…ting The setting adds 151 bytes gzip to the Activity startup path (the preference, its effect and two catalogue strings); CI measured 341883 against the 341850 limit.
This branch has not been deployed
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.
Liquid Glass drops frames whenever the page scrolls. Chromium redraws every lensed backdrop (cards, sidebar, bottom bar, floating panel) on the CPU each frame the page moves under it.
While the window scrolls, and for 150 ms after,
src/ui/lens.tsmarks the root withdata-lens-paused, and the lens tokens fall back to the same blur and colour without the refraction. At rest the look is unchanged; the bent edge and rim return 150 ms after scrolling stops.Measured in headless Chrome on an RTX 4080 SUPER with hardware compositing, 4 s of continuous scroll, median of 3:
"Draw" is the renderer compositor's
MainFrame.Drawtime per frame. Removing onlyurl(#doona-lens)restored the baseline; removing the leading blur changed nothing.Not addressed here: at rest, live updates still redraw the lens, at about 4.8 ms a frame on the desktop activity page against 1.3 ms without it.
Settings > Appearance has a switch for the pause, on by default and shown only with Liquid Glass. Turned off, the root carries
data-lens-steadyand the lens keeps refracting while scrolling. The Glass rows (wallpaper, blur, this switch) now load lazily with the Glass palettes, which keeps the Settings route in budget: 67,133 bytes gzip against a 72,800 limit, down from 72,757.The Activity startup budget rises from 341,850 to 342,050 bytes gzip: the setting adds 151 bytes to that path (the preference, its effect and two catalogue strings), and CI measured 341,883.