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

Issue 2285633005: Reland of Skip PaintLayer empty paint phases if it previously painted nothing (Closed)

Created:
4 years, 3 months ago by Xianzhu
Modified:
4 years, 3 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

Reland of Skip PaintLayer empty paint phases if it previously painted nothing (patchset #2 id:140001 of https://codereview.chromium.org/1815293002/ ) The original CL was reverted because it caused crbug.com/595839. The reason of the bug was that we also when we painted the root background we also traverse descendant layers, which actually painted nothing and mistakenly marked the descendant layers not having paintings for descendant backgrounds, float and descendant outlines paint phases, causing the normal painting to skip painting of the paint phases. https://codereview.chromium.org/2294313002/ fixed the root background painting issue, so we can reland this CL now. Also added under-invalidation checking for the needsPaintPhaseXXX() flags by forcing painting even if needsPaintPhaseXXX() is false, and asserting no actual painting occurs. Original issue's description: > Revert of Skip PaintLayer empty paint phases if it previously painted nothing (patchset #12 id:220001 of https://codereview.chromium.org/1739893006/ ) > > Reason for revert: > BUG=595839 > > Original issue's 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} > > TBR=chrishtr@chromium.org > # Not skipping CQ checks because original CL landed more than 1 days ago. > BUG=574938 > > Committed: https://crrev.com/e425e3a8c5204d2d75f34c885c33f077372d1ff8 > Cr-Commit-Position: refs/heads/master@{#382018} TBR=chrishtr@chromium.org # Not skipping CQ checks because original CL landed more than 1 days ago. BUG=595839 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 Committed: https://crrev.com/a6378700ce7244fa1da85321aeb31661cde0ff16 Cr-Commit-Position: refs/heads/master@{#416008}

Patch Set 1 #

Patch Set 2 : - #

Patch Set 3 : - #

Patch Set 4 : Try no foreground phase for PaintLayerPaintingRootBackgroundOnly #

Patch Set 5 : Try no foreground phase for PaintLayerPaintingRootBackgroundOnly #

Patch Set 6 : - #

Patch Set 7 : Some cleanups #

Patch Set 8 : Rebase on https://codereview.chromium.org/2294313002/ #

Patch Set 9 : - #

Messages

Total messages: 41 (32 generated)
Xianzhu
Created Reland of Skip PaintLayer empty paint phases if it previously painted nothing
4 years, 3 months ago (2016-08-26 22:17:07 UTC) #1
Xianzhu
Please ignore the published Email. Just created this for debugging, but codereview published it automatically.
4 years, 3 months ago (2016-08-26 22:28:11 UTC) #2
Xianzhu
This is ready for review. You can compare Patch Set 2 and the latest patch ...
4 years, 3 months ago (2016-08-30 21:36:59 UTC) #19
chrishtr
Can the change to PaintLayerPaintingCompositingForegroundPhase be committed independently of the rest of this CL?
4 years, 3 months ago (2016-08-31 01:19:50 UTC) #24
Xianzhu
On 2016/08/31 01:19:50, chrishtr wrote: > Can the change to PaintLayerPaintingCompositingForegroundPhase be committed > independently ...
4 years, 3 months ago (2016-09-01 16:44:20 UTC) #34
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/2285633005/270001
4 years, 3 months ago (2016-09-01 16:44:42 UTC) #36
chrishtr
lgtm
4 years, 3 months ago (2016-09-01 16:44:44 UTC) #37
commit-bot: I haz the power
Committed patchset #9 (id:270001)
4 years, 3 months ago (2016-09-01 18:51:55 UTC) #39
commit-bot: I haz the power
4 years, 3 months ago (2016-09-01 18:54:01 UTC) #41
Message was sent while issue was closed.
Patchset 9 (id:??) landed as
https://crrev.com/a6378700ce7244fa1da85321aeb31661cde0ff16
Cr-Commit-Position: refs/heads/master@{#416008}

Powered by Google App Engine
This is Rietveld 408576698