Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1565)

Issue 2763833003: Optimize PaintInvalidatorContext::mapLocalRectToVisualRectInBacking() (Closed)

Created:
3 years, 9 months ago by Xianzhu
Modified:
3 years, 9 months ago
Reviewers:
chrishtr, wkorman
CC:
blink-reviews, blink-reviews-layout_chromium.org, blink-reviews-paint_chromium.org, chromium-reviews, dshwang, eae+blinkwatch, jchaffraix+rendering, leviw+renderwatch, pdr+renderingwatchlist_chromium.org, szager+layoutwatch_chromium.org, zoltan1
Target Ref:
refs/heads/master
Project:
chromium
Visibility:
Public.

Description

Optimize 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 : - #

Unified diffs Side-by-side diffs Delta from patch set Stats (+29 lines, -21 lines) Patch
M third_party/WebKit/Source/core/layout/PaintInvalidationState.cpp View 1 2 chunks +10 lines, -1 line 0 comments Download
M third_party/WebKit/Source/core/paint/PaintInvalidator.h View 4 chunks +9 lines, -8 lines 0 comments Download
M third_party/WebKit/Source/core/paint/PaintInvalidator.cpp View 1 5 chunks +6 lines, -8 lines 0 comments Download
M third_party/WebKit/Source/core/paint/PrePaintTreeWalk.h View 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/core/paint/PrePaintTreeWalk.cpp View 2 chunks +3 lines, -3 lines 0 comments Download

Messages

Total messages: 23 (12 generated)
Xianzhu
3 years, 9 months ago (2017-03-22 16:59:41 UTC) #8
Xianzhu
3 years, 9 months ago (2017-03-22 17:00:10 UTC) #10
chrishtr
https://codereview.chromium.org/2763833003/diff/1/third_party/WebKit/Source/core/layout/PaintInvalidationState.cpp File third_party/WebKit/Source/core/layout/PaintInvalidationState.cpp (right): https://codereview.chromium.org/2763833003/diff/1/third_party/WebKit/Source/core/layout/PaintInvalidationState.cpp#newcode638 third_party/WebKit/Source/core/layout/PaintInvalidationState.cpp:638: static GeometryMapper& dummyGeometryMapper() { Is it somehow guaranteed that ...
3 years, 9 months ago (2017-03-22 17:54:31 UTC) #11
wkorman
lgtm https://codereview.chromium.org/2763833003/diff/1/third_party/WebKit/Source/core/layout/PaintInvalidationState.cpp File third_party/WebKit/Source/core/layout/PaintInvalidationState.cpp (right): https://codereview.chromium.org/2763833003/diff/1/third_party/WebKit/Source/core/layout/PaintInvalidationState.cpp#newcode640 third_party/WebKit/Source/core/layout/PaintInvalidationState.cpp:640: (GeometryMapper::create())); We saw pdr@ recently make a perf ...
3 years, 9 months ago (2017-03-22 18:33:40 UTC) #12
Xianzhu
https://codereview.chromium.org/2763833003/diff/1/third_party/WebKit/Source/core/layout/PaintInvalidationState.cpp File third_party/WebKit/Source/core/layout/PaintInvalidationState.cpp (right): https://codereview.chromium.org/2763833003/diff/1/third_party/WebKit/Source/core/layout/PaintInvalidationState.cpp#newcode638 third_party/WebKit/Source/core/layout/PaintInvalidationState.cpp:638: static GeometryMapper& dummyGeometryMapper() { On 2017/03/22 17:54:31, chrishtr wrote: ...
3 years, 9 months ago (2017-03-22 18:50:02 UTC) #13
Xianzhu
https://codereview.chromium.org/2763833003/diff/1/third_party/WebKit/Source/core/layout/PaintInvalidationState.cpp File third_party/WebKit/Source/core/layout/PaintInvalidationState.cpp (right): https://codereview.chromium.org/2763833003/diff/1/third_party/WebKit/Source/core/layout/PaintInvalidationState.cpp#newcode638 third_party/WebKit/Source/core/layout/PaintInvalidationState.cpp:638: static GeometryMapper& dummyGeometryMapper() { On 2017/03/22 18:50:02, Xianzhu wrote: ...
3 years, 9 months ago (2017-03-22 18:50:48 UTC) #14
Xianzhu
https://codereview.chromium.org/2763833003/diff/1/third_party/WebKit/Source/core/layout/PaintInvalidationState.cpp File third_party/WebKit/Source/core/layout/PaintInvalidationState.cpp (right): https://codereview.chromium.org/2763833003/diff/1/third_party/WebKit/Source/core/layout/PaintInvalidationState.cpp#newcode640 third_party/WebKit/Source/core/layout/PaintInvalidationState.cpp:640: (GeometryMapper::create())); On 2017/03/22 18:33:40, wkorman wrote: > We saw ...
3 years, 9 months ago (2017-03-22 18:51:38 UTC) #15
chrishtr
lgtm https://codereview.chromium.org/2763833003/diff/1/third_party/WebKit/Source/core/layout/PaintInvalidationState.cpp File third_party/WebKit/Source/core/layout/PaintInvalidationState.cpp (right): https://codereview.chromium.org/2763833003/diff/1/third_party/WebKit/Source/core/layout/PaintInvalidationState.cpp#newcode638 third_party/WebKit/Source/core/layout/PaintInvalidationState.cpp:638: static GeometryMapper& dummyGeometryMapper() { On 2017/03/22 at 18:50:48, ...
3 years, 9 months ago (2017-03-22 18:56:22 UTC) #16
Xianzhu
https://codereview.chromium.org/2763833003/diff/1/third_party/WebKit/Source/core/layout/PaintInvalidationState.cpp File third_party/WebKit/Source/core/layout/PaintInvalidationState.cpp (right): https://codereview.chromium.org/2763833003/diff/1/third_party/WebKit/Source/core/layout/PaintInvalidationState.cpp#newcode638 third_party/WebKit/Source/core/layout/PaintInvalidationState.cpp:638: static GeometryMapper& dummyGeometryMapper() { On 2017/03/22 18:56:21, chrishtr wrote: ...
3 years, 9 months ago (2017-03-22 19:20:43 UTC) #17
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2763833003/20001
3 years, 9 months ago (2017-03-22 19:21:20 UTC) #20
commit-bot: I haz the power
3 years, 9 months ago (2017-03-22 22:05:40 UTC) #23
Message was sent while issue was closed.
Committed patchset #2 (id:20001) as
https://chromium.googlesource.com/chromium/src/+/b87cdfa7b1b594a30a76793904cf...

Powered by Google App Engine
This is Rietveld 408576698