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

Issue 1739893006: Skip PaintLayer empty paint phases if it previously painted nothing (Closed)

Created:
4 years, 10 months ago by Xianzhu
Modified:
4 years, 9 months ago
Reviewers:
chrishtr
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, slimming-paint-reviews_chromium.org, szager+layoutwatch_chromium.org, zoltan1
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Skip PaintLayer empty paint phases if it previously painted nothing This avoids later painting of empty phases if the layer is marked to need a paint phase but the phase painted nothing in the following cases: - the object marking the layer needing the paint phase is not visible (e.g. because it is clipped) - the layer was marked needing the paint phase by some object that has been deleted or moved to another layer. Instead of directly clearing the needsPaintPhase flags, this CL adds a new set of flags to indicate if the previous paint of the phases painted nothing. This is because invalidations of the needsPaintPhase flags and the new flags need different conditions. The new flags are cleared when scroll offset, interest rect or clipping changes. Cluster telemetry runs show that this will improve non-cached painting by 1.7% and fully-cached painting (with subsequence-caching disabled) by 45%. BUG=574938 Committed: https://crrev.com/8ad6e62af5301a7e8dacd12fc1ae7914258b9e7a Cr-Commit-Position: refs/heads/master@{#380841}

Patch Set 1 #

Patch Set 2 : #

Patch Set 3 : Revert LayoutBox #

Patch Set 4 : Keep LayoutBox change #

Patch Set 5 : #

Patch Set 6 : Rebase #

Total comments: 3

Patch Set 7 : Add documentation #

Total comments: 2

Patch Set 8 : Doc about PaintLayer::needsRepaint #

Patch Set 9 : PaintLayer now has more than 32 bit fields #

Patch Set 10 : Fix 32bit build #

Patch Set 11 : Fix empty phase flag issue about non-subsequenced layers #

Patch Set 12 : Rebase #

Unified diffs Side-by-side diffs Delta from patch set Stats (+107 lines, -25 lines) Patch
M third_party/WebKit/Source/core/layout/LayoutBox.cpp View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +9 lines, -9 lines 0 comments Download
M third_party/WebKit/Source/core/paint/PaintLayer.h View 1 2 3 4 5 6 7 8 9 10 11 2 chunks +30 lines, -7 lines 0 comments Download
M third_party/WebKit/Source/core/paint/PaintLayer.cpp View 1 2 3 4 5 6 7 8 9 10 11 2 chunks +4 lines, -1 line 0 comments Download
M third_party/WebKit/Source/core/paint/PaintLayerPainter.cpp View 1 2 3 4 5 6 7 8 9 10 11 3 chunks +39 lines, -8 lines 0 comments Download
M third_party/WebKit/Source/core/paint/README.md View 1 2 3 4 5 6 7 8 9 1 chunk +25 lines, -0 lines 0 comments Download

Messages

Total messages: 46 (24 generated)
Xianzhu
https://codereview.chromium.org/1739893006/diff/100001/third_party/WebKit/Source/core/layout/LayoutBox.cpp File third_party/WebKit/Source/core/layout/LayoutBox.cpp (right): https://codereview.chromium.org/1739893006/diff/100001/third_party/WebKit/Source/core/layout/LayoutBox.cpp#newcode1488 third_party/WebKit/Source/core/layout/LayoutBox.cpp:1488: enclosingSelfPaintingLayer.setNeedsPaintPhaseFloat(); This change is because a self-painting floating layer ...
4 years, 9 months ago (2016-03-08 22:08:42 UTC) #5
chrishtr
The skip-paint-phases optimization needs more documentation. Could you add Markdown for it? https://codereview.chromium.org/1739893006/diff/100001/third_party/WebKit/Source/core/layout/LayoutBox.cpp File third_party/WebKit/Source/core/layout/LayoutBox.cpp ...
4 years, 9 months ago (2016-03-09 03:40:47 UTC) #6
chrishtr
On 2016/03/09 at 03:40:47, chrishtr wrote: > The skip-paint-phases optimization needs more documentation. (in general, ...
4 years, 9 months ago (2016-03-09 03:41:08 UTC) #7
Xianzhu
On 2016/03/09 03:41:08, chrishtr wrote: > On 2016/03/09 at 03:40:47, chrishtr wrote: > > The ...
4 years, 9 months ago (2016-03-09 21:39:52 UTC) #8
chrishtr
https://codereview.chromium.org/1739893006/diff/120001/third_party/WebKit/Source/core/paint/README.md File third_party/WebKit/Source/core/paint/README.md (right): https://codereview.chromium.org/1739893006/diff/120001/third_party/WebKit/Source/core/paint/README.md#newcode112 third_party/WebKit/Source/core/paint/README.md:112: we paint with different clipping, scroll offset or interest ...
4 years, 9 months ago (2016-03-10 17:05:44 UTC) #9
Xianzhu
https://codereview.chromium.org/1739893006/diff/120001/third_party/WebKit/Source/core/paint/README.md File third_party/WebKit/Source/core/paint/README.md (right): https://codereview.chromium.org/1739893006/diff/120001/third_party/WebKit/Source/core/paint/README.md#newcode112 third_party/WebKit/Source/core/paint/README.md:112: we paint with different clipping, scroll offset or interest ...
4 years, 9 months ago (2016-03-10 18:10:32 UTC) #10
chrishtr
lgtm
4 years, 9 months ago (2016-03-10 18:26:38 UTC) #12
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1739893006/140001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1739893006/140001
4 years, 9 months ago (2016-03-10 18:27:01 UTC) #13
commit-bot: I haz the power
Try jobs failed on following builders: android_compile_dbg on tryserver.chromium.android (JOB_FAILED, https://build.chromium.org/p/tryserver.chromium.android/builders/android_compile_dbg/builds/34227) linux_android_rel_ng on tryserver.chromium.android (JOB_FAILED, ...
4 years, 9 months ago (2016-03-10 18:47:42 UTC) #15
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1739893006/160001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1739893006/160001
4 years, 9 months ago (2016-03-10 18:55:38 UTC) #18
commit-bot: I haz the power
Try jobs failed on following builders: android_compile_dbg on tryserver.chromium.android (JOB_FAILED, https://build.chromium.org/p/tryserver.chromium.android/builders/android_compile_dbg/builds/34260) linux_android_rel_ng on tryserver.chromium.android (JOB_FAILED, ...
4 years, 9 months ago (2016-03-10 19:17:35 UTC) #20
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1739893006/180001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1739893006/180001
4 years, 9 months ago (2016-03-10 20:14:30 UTC) #23
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/137901)
4 years, 9 months ago (2016-03-10 21:25:31 UTC) #26
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1739893006/200001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1739893006/200001
4 years, 9 months ago (2016-03-10 23:12:03 UTC) #29
commit-bot: I haz the power
Try jobs failed on following builders: cast_shell_linux on tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/cast_shell_linux/builds/128645)
4 years, 9 months ago (2016-03-10 23:39:26 UTC) #31
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1739893006/200001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1739893006/200001
4 years, 9 months ago (2016-03-12 00:09:10 UTC) #34
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1739893006/220001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1739893006/220001
4 years, 9 months ago (2016-03-12 00:26:07 UTC) #37
commit-bot: I haz the power
Try jobs failed on following builders: linux_chromium_asan_rel_ng on tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_asan_rel_ng/builds/130172)
4 years, 9 months ago (2016-03-12 02:10:34 UTC) #39
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1739893006/220001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1739893006/220001
4 years, 9 months ago (2016-03-12 02:15:10 UTC) #41
commit-bot: I haz the power
Committed patchset #12 (id:220001)
4 years, 9 months ago (2016-03-12 04:41:09 UTC) #43
commit-bot: I haz the power
Patchset 12 (id:??) landed as https://crrev.com/8ad6e62af5301a7e8dacd12fc1ae7914258b9e7a Cr-Commit-Position: refs/heads/master@{#380841}
4 years, 9 months ago (2016-03-12 04:42:27 UTC) #45
Xianzhu
4 years, 9 months ago (2016-03-18 17:02:35 UTC) #46
Message was sent while issue was closed.
A revert of this CL (patchset #12 id:220001) has been created in
https://codereview.chromium.org/1815293002/ by wangxianzhu@chromium.org.

The reason for reverting is: BUG=595839.

Powered by Google App Engine
This is Rietveld 408576698