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

Issue 2247543003: Tweak priorities of paint invalidation reasons (Closed)

Created:
4 years, 4 months ago by Xianzhu
Modified:
4 years, 4 months ago
Reviewers:
pdr., trchen
CC:
blink-reviews, blink-reviews-layout_chromium.org, chromium-reviews, krit, eae+blinkwatch, f(malita), fs, gyuyoung2, jchaffraix+rendering, kouhei+svg_chromium.org, leviw+renderwatch, pdr+renderingwatchlist_chromium.org, pdr+svgwatchlist_chromium.org, rwlbuis, Stephen Chennney, 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

Tweak priorities of paint invalidation reasons 1. Distinguish PaintInvalidationNone and PaintInvalidationProbablyNone, so that callers of ObjectPaintInvalidator::computePaintInvalidationReasion() can treat them differently to avoid unnecessary overriding cases that definitely no paint invalidation is needed. 2. Check emptiness of newBounds and oldBounds earlier. This avoids unnecessary object and layer paint invalidations when both oldBounds and newBounds are empty but we computed a non-none paint invalidation reason. 3. Renamed LayoutObject::paintedOutputOfObjectHasNoEffect to paintedOutputOfObjectHasNoEffectRegardlessOfSize because it doesn't check for empty size. The behavior is required to do correct paint invalidation when the size changes to empty. Now the name is better suited to the actual behavior. These changes will help spv1 paint invalidation and GeometryMapper-based spv2 paint invalidation to produce the same result. BUG=510908 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 Committed: https://crrev.com/bb6578fd92bd2477a4d781aa51ef285367617eee Cr-Commit-Position: refs/heads/master@{#412763}

Patch Set 1 #

Patch Set 2 : - #

Patch Set 3 : - #

Patch Set 4 : - #

Patch Set 5 : Rebaseline on Linux #

Patch Set 6 : Rebaseline on Linux #

Patch Set 7 : Prioritize reasons "became visible/invisible" #

Patch Set 8 : Prioritize reasons "became visible/invisible" #

Total comments: 1

Patch Set 9 : NeedsRebaseline (for win and mac) #

Total comments: 4

Patch Set 10 : Comments #

Patch Set 11 : Based on reviewer's comments #

Patch Set 12 : - #

Patch Set 13 : - #

Patch Set 14 : - #

Unified diffs Side-by-side diffs Delta from patch set Stats (+232 lines, -228 lines) Patch
M third_party/WebKit/LayoutTests/TestExpectations View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +21 lines, -0 lines 0 comments Download
M third_party/WebKit/LayoutTests/css3/flexbox/repaint-on-layout-expected.txt View 1 2 3 4 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/LayoutTests/fast/repaint/erase-overflow-expected.txt View 1 2 3 4 5 6 7 2 chunks +2 lines, -2 lines 0 comments Download
M third_party/WebKit/LayoutTests/fast/repaint/intermediate-layout-position-clip-expected.txt View 1 2 3 4 5 6 7 2 chunks +2 lines, -2 lines 0 comments Download
M third_party/WebKit/LayoutTests/fast/repaint/outline-change-continuations-expected.txt View 1 2 3 4 1 chunk +0 lines, -4 lines 0 comments Download
M third_party/WebKit/LayoutTests/fast/repaint/overflow-hide-expected.txt View 1 2 3 4 5 6 7 2 chunks +2 lines, -2 lines 0 comments Download
M third_party/WebKit/LayoutTests/fast/repaint/overflow-show-expected.txt View 1 2 3 4 5 6 7 2 chunks +2 lines, -2 lines 0 comments Download
M third_party/WebKit/LayoutTests/fast/repaint/remove-inline-block-descendant-of-flex-expected.txt View 1 2 3 4 1 chunk +2 lines, -2 lines 0 comments Download
M third_party/WebKit/LayoutTests/fast/repaint/selection-change-in-iframe-with-relative-parent-expected.txt View 1 2 3 4 5 6 7 4 chunks +15 lines, -15 lines 0 comments Download
M third_party/WebKit/LayoutTests/fast/repaint/subtree-root-clip-2-expected.txt View 1 2 3 4 5 6 7 2 chunks +2 lines, -2 lines 0 comments Download
M third_party/WebKit/LayoutTests/fast/repaint/subtree-root-clip-3-expected.txt View 1 2 3 4 5 6 7 2 chunks +2 lines, -2 lines 0 comments Download
M third_party/WebKit/LayoutTests/fast/repaint/subtree-root-clip-expected.txt View 1 2 3 4 5 6 7 2 chunks +2 lines, -2 lines 0 comments Download
M third_party/WebKit/LayoutTests/fast/repaint/window-resize-background-image-fixed-centered-composited-expected.txt View 1 2 3 4 2 chunks +0 lines, -8 lines 0 comments Download
M third_party/WebKit/LayoutTests/fast/repaint/window-resize-background-image-fixed-centered-expected.txt View 1 2 3 4 2 chunks +0 lines, -8 lines 0 comments Download
M third_party/WebKit/LayoutTests/fast/repaint/window-resize-background-image-generated-expected.txt View 1 2 3 4 2 chunks +0 lines, -8 lines 0 comments Download
M third_party/WebKit/LayoutTests/fast/repaint/window-resize-background-image-non-fixed-expected.txt View 1 2 3 4 2 chunks +0 lines, -8 lines 0 comments Download
M third_party/WebKit/LayoutTests/fast/repaint/window-resize-media-query-expected.txt View 1 2 3 4 2 chunks +0 lines, -8 lines 0 comments Download
M third_party/WebKit/LayoutTests/platform/linux/compositing/squashing/remove-squashed-layer-plus-move-expected.txt View 1 2 3 4 1 chunk +2 lines, -2 lines 0 comments Download
M third_party/WebKit/LayoutTests/platform/linux/fast/repaint/abspos-shift-image-incorrect-repaint-expected.txt View 1 2 3 4 2 chunks +3 lines, -3 lines 0 comments Download
M third_party/WebKit/LayoutTests/platform/linux/fast/repaint/bugzilla-6388-expected.txt View 1 2 3 4 5 6 7 2 chunks +2 lines, -2 lines 0 comments Download
M third_party/WebKit/LayoutTests/platform/linux/fast/repaint/float-overflow-expected.txt View 1 2 3 4 14 chunks +16 lines, -16 lines 0 comments Download
M third_party/WebKit/LayoutTests/platform/linux/fast/repaint/float-overflow-right-expected.txt View 1 2 3 4 14 chunks +16 lines, -16 lines 0 comments Download
M third_party/WebKit/LayoutTests/platform/linux/fast/repaint/layoutstate-invalid-invalidation-inline-relative-positioned-expected.txt View 1 2 3 4 2 chunks +2 lines, -2 lines 0 comments Download
M third_party/WebKit/LayoutTests/platform/linux/fast/repaint/offset-change-wrong-invalidation-with-float-expected.txt View 1 2 3 4 1 chunk +2 lines, -2 lines 0 comments Download
M third_party/WebKit/LayoutTests/platform/linux/fast/repaint/repaint-descandant-on-ancestor-layer-move-expected.txt View 1 2 3 4 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/LayoutTests/platform/linux/fast/repaint/selection-clear-expected.txt View 1 2 3 4 5 6 7 1 chunk +10 lines, -2 lines 0 comments Download
M third_party/WebKit/LayoutTests/platform/linux/fast/repaint/shift-relative-positioned-container-with-image-addition-expected.txt View 1 2 3 4 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/LayoutTests/platform/linux/fast/repaint/shift-relative-positioned-container-with-image-removal-expected.txt View 1 2 3 4 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/LayoutTests/platform/linux/fast/repaint/table-cell-move-expected.txt View 1 2 3 4 5 6 7 3 chunks +4 lines, -8 lines 0 comments Download
M third_party/WebKit/LayoutTests/platform/linux/svg/carto.net/tabgroup-expected.txt View 1 2 3 4 5 6 7 11 chunks +12 lines, -12 lines 0 comments Download
M third_party/WebKit/LayoutTests/platform/linux/svg/custom/js-late-clipPath-and-object-creation-expected.txt View 1 2 3 4 5 6 7 3 chunks +4 lines, -4 lines 0 comments Download
M third_party/WebKit/LayoutTests/platform/linux/svg/custom/js-late-gradient-and-object-creation-expected.txt View 1 2 3 4 5 6 7 2 chunks +4 lines, -4 lines 0 comments Download
M third_party/WebKit/LayoutTests/platform/linux/svg/custom/js-late-pattern-and-object-creation-expected.txt View 1 2 3 4 5 6 7 2 chunks +4 lines, -4 lines 0 comments Download
M third_party/WebKit/LayoutTests/platform/linux/svg/text/ems-display-none-expected.txt View 1 2 3 4 5 6 7 3 chunks +4 lines, -4 lines 0 comments Download
M third_party/WebKit/LayoutTests/platform/linux/svg/text/exs-display-none-expected.txt View 1 2 3 4 5 6 7 3 chunks +4 lines, -4 lines 0 comments Download
M third_party/WebKit/LayoutTests/svg/custom/js-late-marker-and-object-creation-expected.txt View 1 2 3 4 5 6 7 3 chunks +4 lines, -4 lines 0 comments Download
M third_party/WebKit/LayoutTests/svg/custom/js-late-mask-and-object-creation-expected.txt View 1 2 3 4 5 6 7 3 chunks +4 lines, -4 lines 0 comments Download
M third_party/WebKit/LayoutTests/svg/custom/js-update-transform-addition-expected.txt View 1 2 3 4 5 6 7 2 chunks +2 lines, -2 lines 0 comments Download
M third_party/WebKit/LayoutTests/svg/custom/js-update-transform-changes-expected.txt View 1 2 3 4 5 6 7 2 chunks +2 lines, -2 lines 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutBlockFlow.h View 1 2 3 4 5 6 7 8 9 10 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutBlockFlowLine.cpp View 1 2 3 4 5 6 7 8 9 10 1 chunk +2 lines, -2 lines 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutBox.h View 1 2 3 4 5 6 7 8 9 10 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutBox.cpp View 1 2 3 4 5 6 7 8 9 10 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutObject.h View 1 2 3 4 5 6 7 8 9 10 1 chunk +4 lines, -2 lines 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutReplaced.h View 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/core/layout/svg/LayoutSVGHiddenContainer.h View 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/core/paint/BoxPaintInvalidator.h View 1 2 3 4 5 6 7 8 9 10 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/core/paint/BoxPaintInvalidator.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 9 chunks +26 lines, -24 lines 0 comments Download
M third_party/WebKit/Source/core/paint/ObjectPaintInvalidator.h View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +5 lines, -4 lines 0 comments Download
M third_party/WebKit/Source/core/paint/ObjectPaintInvalidator.cpp View 1 2 3 4 5 6 7 8 9 10 10 chunks +26 lines, -13 lines 0 comments Download
M third_party/WebKit/Source/core/paint/SVGModelObjectPaintInvalidator.cpp View 1 2 3 4 5 6 7 8 9 10 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/platform/graphics/PaintInvalidationReason.h View 1 2 3 4 5 6 7 8 9 10 1 chunk +5 lines, -0 lines 0 comments Download

Messages

Total messages: 56 (38 generated)
Xianzhu
https://codereview.chromium.org/2247543003/diff/140001/third_party/WebKit/Source/core/layout/LayoutBlockFlow.h File third_party/WebKit/Source/core/layout/LayoutBlockFlow.h (left): https://codereview.chromium.org/2247543003/diff/140001/third_party/WebKit/Source/core/layout/LayoutBlockFlow.h#oldcode344 third_party/WebKit/Source/core/layout/LayoutBlockFlow.h:344: bool paintedOutputOfObjectHasNoEffect() const override; This is renamed because it ...
4 years, 4 months ago (2016-08-15 22:18:28 UTC) #25
pdr.
https://codereview.chromium.org/2247543003/diff/160001/third_party/WebKit/Source/core/layout/LayoutObject.h File third_party/WebKit/Source/core/layout/LayoutObject.h (right): https://codereview.chromium.org/2247543003/diff/160001/third_party/WebKit/Source/core/layout/LayoutObject.h#newcode1126 third_party/WebKit/Source/core/layout/LayoutObject.h:1126: // Returns true if the object will not generate ...
4 years, 4 months ago (2016-08-15 23:37:42 UTC) #28
Xianzhu
https://codereview.chromium.org/2247543003/diff/160001/third_party/WebKit/Source/core/layout/LayoutObject.h File third_party/WebKit/Source/core/layout/LayoutObject.h (right): https://codereview.chromium.org/2247543003/diff/160001/third_party/WebKit/Source/core/layout/LayoutObject.h#newcode1126 third_party/WebKit/Source/core/layout/LayoutObject.h:1126: // Returns true if the object will not generate ...
4 years, 4 months ago (2016-08-16 01:13:54 UTC) #29
pdr.
On 2016/08/16 at 01:13:54, wangxianzhu wrote: > https://codereview.chromium.org/2247543003/diff/160001/third_party/WebKit/Source/core/layout/LayoutObject.h > File third_party/WebKit/Source/core/layout/LayoutObject.h (right): > > https://codereview.chromium.org/2247543003/diff/160001/third_party/WebKit/Source/core/layout/LayoutObject.h#newcode1126 ...
4 years, 4 months ago (2016-08-16 02:49:47 UTC) #30
Xianzhu
On 2016/08/16 02:49:47, pdr. wrote: > On 2016/08/16 at 01:13:54, wangxianzhu wrote: > > > ...
4 years, 4 months ago (2016-08-16 03:43:50 UTC) #31
pdr.
On 2016/08/16 at 03:43:50, wangxianzhu wrote: > On 2016/08/16 02:49:47, pdr. wrote: > > On ...
4 years, 4 months ago (2016-08-16 18:48:12 UTC) #32
Xianzhu
On 2016/08/16 18:48:12, pdr. wrote: > On 2016/08/16 at 03:43:50, wangxianzhu wrote: > > On ...
4 years, 4 months ago (2016-08-16 20:18:50 UTC) #33
pdr.
On 2016/08/16 at 20:18:50, wangxianzhu wrote: > How about the following explanations: > - PaintInvalidationNone: ...
4 years, 4 months ago (2016-08-17 00:42:44 UTC) #34
trchen
On 2016/08/17 00:42:44, pdr. wrote: > On 2016/08/16 at 20:18:50, wangxianzhu wrote: > > How ...
4 years, 4 months ago (2016-08-17 05:20:04 UTC) #35
Xianzhu
Thanks for the comments. The latest patch uses a real paint invalidation reason PaintInvalidationIncremental instead ...
4 years, 4 months ago (2016-08-17 17:06:51 UTC) #38
pdr.
On 2016/08/17 at 17:06:51, wangxianzhu wrote: > Thanks for the comments. The latest patch uses ...
4 years, 4 months ago (2016-08-17 17:35:18 UTC) #39
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/2247543003/220001
4 years, 4 months ago (2016-08-17 18:41:23 UTC) #42
commit-bot: I haz the power
Try jobs failed on following builders: linux_chromium_rel_ng on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_rel_ng/builds/281712)
4 years, 4 months ago (2016-08-17 20:01:10 UTC) #44
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/2247543003/240001
4 years, 4 months ago (2016-08-17 20:38:35 UTC) #47
commit-bot: I haz the power
Try jobs failed on following builders: win_chromium_rel_ng on master.tryserver.chromium.win (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_rel_ng/builds/275571)
4 years, 4 months ago (2016-08-18 01:02:46 UTC) #49
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/2247543003/260001
4 years, 4 months ago (2016-08-18 05:30:48 UTC) #52
commit-bot: I haz the power
Committed patchset #14 (id:260001)
4 years, 4 months ago (2016-08-18 08:12:07 UTC) #54
commit-bot: I haz the power
4 years, 4 months ago (2016-08-18 08:13:34 UTC) #56
Message was sent while issue was closed.
Patchset 14 (id:??) landed as
https://crrev.com/bb6578fd92bd2477a4d781aa51ef285367617eee
Cr-Commit-Position: refs/heads/master@{#412763}

Powered by Google App Engine
This is Rietveld 408576698