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:Xianzhu Wang <wangxianzhu@chromium.org> Commit-Queue: Philip Rogers <pdr@chromium.org> Cr-Commit-Position: refs/heads/main@{#1042725}
Loading
Please register or sign in to comment