Skip to content
Commit 115b5246 authored by Philip Rogers's avatar Philip Rogers Committed by Chromium LUCI CQ
Browse files

Factor code to enable performance measurement of new cull rect update

https://crrev.com/1034777 ("Optimize cull rect update on scroll") is
part of the scroll update optimizations experiment and depends on a
new cull rect update using containing-block order
(https://crrev.com/1033837, "Update cull rects in containing block
order"). The containing-block cull rect update ended up showing a large
perf benefit, so this patch moves it behind the scroll update
optimizations feature flag so we can measure that benefit.

The major steps in this patch are:
1. Revert the old cull rect simulation, r1039420, which was not
sufficient to measure the improvements of r1033837 (see
https://crbug.com/1253726#c46).
2. Introduce OldCullRectUpdater which is a copy of the cull rect update
code prior to r1033837.
3. Update the old cull rect code for fixes that landed after r1033837,
including https://crrev.com/1037133 ("Fix cull rect and paint subtree
skipping issue with overflow-clip-margin"), https://crrev.com/1036052
("Fallback to a main thread animation if background color animation
affected by blur"), and https://crrev.com/1038318 ("SET: Ensure that
shared elements are not culled by paint culling").
4. Ensure the new cull rect update is only called for the scroll update
optimizations codepath, and the old cull rect update is only called for
the non-optimized scroll update codepath.

Bug: 1253726
Change-Id: I510e45dfe5002e02e3766d8130338179cfe8085a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3871778


Reviewed-by: default avatarXianzhu Wang <wangxianzhu@chromium.org>
Commit-Queue: Philip Rogers <pdr@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1042725}
parent b1af6d78
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment