DescriptionOptimize PaintInvalidatorContext::mapLocalRectToVisualRectInBacking()
Now pass GeometryMapper in PaintInvalidatorContext and use it in
mapLocalRectToVisualRectBacking().
The reason of the regression was that I removed the isEmpty() check
from ObjectPaintInvalidator::invalidateSelectionIfNeeded(), hoping
the function was fast if the rect is empty, but I didn't notice that
the function allocated GeometryMapper in each call. This caused cost
of one GeometryMapper allocation for each layout object invalidation.
Performance result on mac_10_12:
complex-content-slow-scroll
Before: 194.856 ms
With this CL: 147.111 ms
BUG=703111
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Review-Url: https://codereview.chromium.org/2763833003
Cr-Commit-Position: refs/heads/master@{#458888}
Committed: https://chromium.googlesource.com/chromium/src/+/b87cdfa7b1b594a30a76793904cf916c06048721
Patch Set 1 #
Total comments: 7
Patch Set 2 : - #
Messages
Total messages: 23 (12 generated)
|