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

Issue 1585823002: Improve performance when calling PaintLayer::setNeedsRepaint() (Closed)

Created:
4 years, 11 months ago by Xianzhu
Modified:
4 years, 11 months ago
Reviewers:
chrishtr
CC:
blink-reviews, blink-reviews-layout_chromium.org, chromium-reviews, eae+blinkwatch, jchaffraix+rendering, leviw+renderwatch, pdr+renderingwatchlist_chromium.org, szager+layoutwatch_chromium.org, zoltan1
Base URL:
https://chromium.googlesource.com/chromium/src.git@RemoveVisualRect
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Improve performance when calling PaintLayer::setNeedsRepaint() Previously we call enclosingLayer()->setNeedsRepaint(), but enclosingLayer() needs to walk the tree up to find the layer. Now save enclosing layer in PaintInvalidationState, so that we can get it directly during paint invalidation. If not during paint invaidation: - for invalidatePaintIncludingNonCompositingDescendants() and invalidateDisplayItemClientsIncludingNonCompositingDescendants(), just call setNeedsRepaint() for all layers encountered during tree traversal; - others still use enclosingLayer()->setNeedsRepaint(). Committed: https://crrev.com/d66c377a43c54efa09cc2b4e90dab452d3f9dfdc Cr-Commit-Position: refs/heads/master@{#370313}

Patch Set 1 #

Patch Set 2 : #

Total comments: 5

Patch Set 3 : #

Patch Set 4 : Rebase #

Patch Set 5 : #

Patch Set 6 : #

Unified diffs Side-by-side diffs Delta from patch set Stats (+71 lines, -11 lines) Patch
M third_party/WebKit/Source/core/layout/LayoutObject.h View 1 2 3 4 5 2 chunks +9 lines, -1 line 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutObject.cpp View 1 2 3 4 5 9 chunks +37 lines, -9 lines 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutObjectChildList.cpp View 1 2 3 4 5 1 chunk +1 line, -0 lines 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutView.cpp View 1 2 3 4 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/core/layout/PaintInvalidationState.h View 1 2 3 4 5 3 chunks +5 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/layout/PaintInvalidationState.cpp View 1 2 3 4 5 4 chunks +18 lines, -0 lines 0 comments Download

Dependent Patchsets:

Messages

Total messages: 35 (15 generated)
Xianzhu
4 years, 11 months ago (2016-01-14 18:22:54 UTC) #2
chrishtr
https://codereview.chromium.org/1585823002/diff/20001/third_party/WebKit/Source/core/layout/LayoutObject.cpp File third_party/WebKit/Source/core/layout/LayoutObject.cpp (right): https://codereview.chromium.org/1585823002/diff/20001/third_party/WebKit/Source/core/layout/LayoutObject.cpp#newcode3426 third_party/WebKit/Source/core/layout/LayoutObject.cpp:3426: { This looks like a copy of the old ...
4 years, 11 months ago (2016-01-14 18:51:13 UTC) #3
Xianzhu
https://codereview.chromium.org/1585823002/diff/20001/third_party/WebKit/Source/core/layout/LayoutObject.cpp File third_party/WebKit/Source/core/layout/LayoutObject.cpp (right): https://codereview.chromium.org/1585823002/diff/20001/third_party/WebKit/Source/core/layout/LayoutObject.cpp#newcode3426 third_party/WebKit/Source/core/layout/LayoutObject.cpp:3426: { On 2016/01/14 18:51:13, chrishtr wrote: > This looks ...
4 years, 11 months ago (2016-01-14 19:19:08 UTC) #4
chrishtr
https://codereview.chromium.org/1585823002/diff/20001/third_party/WebKit/Source/core/layout/LayoutObject.cpp File third_party/WebKit/Source/core/layout/LayoutObject.cpp (right): https://codereview.chromium.org/1585823002/diff/20001/third_party/WebKit/Source/core/layout/LayoutObject.cpp#newcode1253 third_party/WebKit/Source/core/layout/LayoutObject.cpp:1253: if (PaintLayer* enclosingLayer = this->enclosingLayer()) In particular, this is ...
4 years, 11 months ago (2016-01-15 00:02:22 UTC) #5
Xianzhu
On 2016/01/15 00:02:22, chrishtr wrote: > https://codereview.chromium.org/1585823002/diff/20001/third_party/WebKit/Source/core/layout/LayoutObject.cpp > File third_party/WebKit/Source/core/layout/LayoutObject.cpp (right): > > https://codereview.chromium.org/1585823002/diff/20001/third_party/WebKit/Source/core/layout/LayoutObject.cpp#newcode1253 > ...
4 years, 11 months ago (2016-01-15 00:09:37 UTC) #6
chrishtr
On 2016/01/15 at 00:09:37, wangxianzhu wrote: > On 2016/01/15 00:02:22, chrishtr wrote: > > https://codereview.chromium.org/1585823002/diff/20001/third_party/WebKit/Source/core/layout/LayoutObject.cpp ...
4 years, 11 months ago (2016-01-15 00:12:15 UTC) #7
Xianzhu
https://codereview.chromium.org/1585823002/diff/20001/third_party/WebKit/Source/core/layout/LayoutObject.cpp File third_party/WebKit/Source/core/layout/LayoutObject.cpp (right): https://codereview.chromium.org/1585823002/diff/20001/third_party/WebKit/Source/core/layout/LayoutObject.cpp#newcode1253 third_party/WebKit/Source/core/layout/LayoutObject.cpp:1253: if (PaintLayer* enclosingLayer = this->enclosingLayer()) On 2016/01/15 00:02:21, chrishtr ...
4 years, 11 months ago (2016-01-15 00:32:05 UTC) #8
chrishtr
lgtm
4 years, 11 months ago (2016-01-15 00:38:43 UTC) #10
commit-bot: I haz the power
This CL has an open dependency (Issue 1584903002 Patch 100001). Please resolve the dependency and ...
4 years, 11 months ago (2016-01-15 00:39:15 UTC) #12
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1585823002/60001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1585823002/60001
4 years, 11 months ago (2016-01-15 01:03:51 UTC) #15
commit-bot: I haz the power
Try jobs failed on following builders: linux_chromium_chromeos_ozone_rel_ng on tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_chromeos_ozone_rel_ng/builds/111635)
4 years, 11 months ago (2016-01-15 01:39:13 UTC) #17
Xianzhu
Hi Chris, Sorry that previous patches didn't actually work because the extra setNeedsReapint call in ...
4 years, 11 months ago (2016-01-19 22:13:49 UTC) #21
chrishtr
lgtm
4 years, 11 months ago (2016-01-19 23:17:08 UTC) #23
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1585823002/160001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1585823002/160001
4 years, 11 months ago (2016-01-19 23:19:01 UTC) #24
commit-bot: I haz the power
Try jobs failed on following builders: linux_chromium_rel_ng on tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_rel_ng/builds/168134)
4 years, 11 months ago (2016-01-20 00:00:00 UTC) #26
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1585823002/160001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1585823002/160001
4 years, 11 months ago (2016-01-20 00:07:35 UTC) #28
commit-bot: I haz the power
Try jobs failed on following builders: mac_chromium_rel_ng on tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/mac_chromium_rel_ng/builds/167085)
4 years, 11 months ago (2016-01-20 01:26:36 UTC) #30
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1585823002/160001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1585823002/160001
4 years, 11 months ago (2016-01-20 01:49:05 UTC) #32
commit-bot: I haz the power
Committed patchset #6 (id:160001)
4 years, 11 months ago (2016-01-20 05:14:51 UTC) #33
commit-bot: I haz the power
4 years, 11 months ago (2016-01-20 05:16:30 UTC) #35
Message was sent while issue was closed.
Patchset 6 (id:??) landed as
https://crrev.com/d66c377a43c54efa09cc2b4e90dab452d3f9dfdc
Cr-Commit-Position: refs/heads/master@{#370313}

Powered by Google App Engine
This is Rietveld 408576698