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

Issue 2581843002: Implement merging non-composited paint property nodes in the PACompositor. (Closed)

Created:
4 years ago by chrishtr
Modified:
3 years, 11 months ago
Reviewers:
pdr., trchen, wkorman
CC:
ajuma+watch_chromium.org, blink-reviews, blink-reviews-platform-graphics_chromium.org, Rik, chromium-reviews, danakj+watch_chromium.org, dshwang, drott+blinkwatch_chromium.org, krit, f(malita), jbroman, Justin Novosad, pdr+graphicswatchlist_chromium.org, rwlbuis, Stephen Chennney
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Implement merging non-composited paint property nodes in the PACompositor. Currently, the PaintArtifactCompositor naively puts every PaintChunk into its own composited layer. This patch improves on that by merging a PaintChunk into the same layer as the PaintChunk which precedes it, if the new PaintChunk has a compatible PropertyTreeState (no directly composited property tree nodes between the state of the new PaintChunk and the old one). This algorithm is spelled out in a design doc, see crbug.com/668342. A large amount of this patch is additional tests and testing machinery to support the change in behavior. BUG=668342 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 Committed: https://crrev.com/7239114dd9ee5270ff6ac3e066113b34814f777d Cr-Commit-Position: refs/heads/master@{#440775}

Patch Set 1 #

Patch Set 2 : none #

Patch Set 3 : none #

Patch Set 4 : none #

Patch Set 5 : none #

Total comments: 48

Patch Set 6 : none #

Patch Set 7 : none #

Patch Set 8 : ' #

Patch Set 9 : none #

Patch Set 10 : none #

Patch Set 11 : none #

Total comments: 15

Patch Set 12 : none #

Patch Set 13 : none #

Patch Set 14 : none #

Patch Set 15 : none #

Patch Set 16 : none #

Total comments: 8

Patch Set 17 : none #

Patch Set 18 : none #

Patch Set 19 : none #

Patch Set 20 : none #

Patch Set 21 : none #

Total comments: 4

Patch Set 22 : none #

Patch Set 23 : none #

Total comments: 6

Patch Set 24 : none #

Total comments: 1

Patch Set 25 : none #

Patch Set 26 : none #

Unified diffs Side-by-side diffs Delta from patch set Stats (+1677 lines, -154 lines) Patch
M third_party/WebKit/LayoutTests/FlagExpectations/enable-slimming-paint-v2 View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 4 chunks +12 lines, -0 lines 0 comments Download
M third_party/WebKit/LayoutTests/TestExpectations View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 2 chunks +5 lines, -1 line 0 comments Download
M third_party/WebKit/Source/core/paint/PaintLayerClipper.h View 1 2 3 4 5 6 7 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 1 chunk +12 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/paint/README.md View 1 2 3 4 5 1 chunk +2 lines, -1 line 0 comments Download
M third_party/WebKit/Source/platform/BUILD.gn View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 2 chunks +2 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 5 chunks +81 lines, -4 lines 0 comments Download
M third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 10 chunks +401 lines, -76 lines 0 comments Download
M third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositorTest.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 8 chunks +646 lines, -18 lines 0 comments Download
A third_party/WebKit/Source/platform/graphics/compositing/README.md View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +59 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/platform/graphics/paint/ClipPaintPropertyNode.h View 1 2 3 chunks +16 lines, -6 lines 0 comments Download
M third_party/WebKit/Source/platform/graphics/paint/GeometryMapper.h View 1 2 3 4 5 6 7 8 2 chunks +8 lines, -8 lines 0 comments Download
M third_party/WebKit/Source/platform/graphics/paint/PropertyTreeState.h View 1 2 3 4 5 6 7 8 9 10 11 4 chunks +62 lines, -1 line 0 comments Download
A third_party/WebKit/Source/platform/graphics/paint/PropertyTreeState.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +76 lines, -0 lines 0 comments Download
A third_party/WebKit/Source/platform/graphics/paint/PropertyTreeStateTest.cpp View 1 2 3 4 5 6 7 8 1 chunk +156 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/platform/testing/PictureMatchers.h View 1 2 3 4 5 6 2 chunks +18 lines, -2 lines 0 comments Download
M third_party/WebKit/Source/platform/testing/PictureMatchers.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 1 chunk +120 lines, -36 lines 0 comments Download

Messages

Total messages: 94 (65 generated)
chrishtr
4 years ago (2016-12-19 23:57:38 UTC) #12
wkorman
lgtm https://codereview.chromium.org/2581843002/diff/80001/third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.cpp File third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.cpp (right): https://codereview.chromium.org/2581843002/diff/80001/third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.cpp#newcode319 third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.cpp:319: extra line https://codereview.chromium.org/2581843002/diff/80001/third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.cpp#newcode417 third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.cpp:417: recordPendingLayer(paintArtifact, pendingLayer, ccCombinedBounds); Possible ...
4 years ago (2016-12-20 00:28:56 UTC) #22
pdr.
https://codereview.chromium.org/2581843002/diff/80001/third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.cpp File third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.cpp (right): https://codereview.chromium.org/2581843002/diff/80001/third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.cpp#newcode337 third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.cpp:337: gfx::Transform translation; I don't understand the paired begin/end display ...
4 years ago (2016-12-20 06:46:30 UTC) #23
pdr.
https://codereview.chromium.org/2581843002/diff/80001/third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.cpp File third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.cpp (right): https://codereview.chromium.org/2581843002/diff/80001/third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.cpp#newcode259 third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.cpp:259: static void recordPairedBeginDisplayItems( Can you add a todo(chrishtr) comment ...
4 years ago (2016-12-20 22:50:58 UTC) #24
chrishtr
https://codereview.chromium.org/2581843002/diff/80001/third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.cpp File third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.cpp (right): https://codereview.chromium.org/2581843002/diff/80001/third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.cpp#newcode319 third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.cpp:319: On 2016/12/20 at 00:28:56, wkorman wrote: > extra line ...
4 years ago (2016-12-20 23:36:32 UTC) #25
chrishtr
https://codereview.chromium.org/2581843002/diff/80001/third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.cpp File third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.cpp (right): https://codereview.chromium.org/2581843002/diff/80001/third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.cpp#newcode259 third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.cpp:259: static void recordPairedBeginDisplayItems( On 2016/12/20 at 22:50:58, pdr (OOO ...
4 years ago (2016-12-20 23:48:31 UTC) #26
trchen
https://codereview.chromium.org/2581843002/diff/80001/third_party/WebKit/Source/platform/graphics/paint/PropertyTreeState.cpp File third_party/WebKit/Source/platform/graphics/paint/PropertyTreeState.cpp (right): https://codereview.chromium.org/2581843002/diff/80001/third_party/WebKit/Source/platform/graphics/paint/PropertyTreeState.cpp#newcode9 third_party/WebKit/Source/platform/graphics/paint/PropertyTreeState.cpp:9: bool PropertyTreeState::hasDirectCompositingReasons() const { This feels a weird place ...
4 years ago (2016-12-20 23:49:37 UTC) #27
chrishtr
https://codereview.chromium.org/2581843002/diff/80001/third_party/WebKit/Source/platform/graphics/paint/PropertyTreeState.cpp File third_party/WebKit/Source/platform/graphics/paint/PropertyTreeState.cpp (right): https://codereview.chromium.org/2581843002/diff/80001/third_party/WebKit/Source/platform/graphics/paint/PropertyTreeState.cpp#newcode9 third_party/WebKit/Source/platform/graphics/paint/PropertyTreeState.cpp:9: bool PropertyTreeState::hasDirectCompositingReasons() const { On 2016/12/20 at 23:49:36, trchen ...
4 years ago (2016-12-20 23:58:10 UTC) #28
trchen
https://codereview.chromium.org/2581843002/diff/80001/third_party/WebKit/Source/platform/graphics/paint/PropertyTreeState.cpp File third_party/WebKit/Source/platform/graphics/paint/PropertyTreeState.cpp (right): https://codereview.chromium.org/2581843002/diff/80001/third_party/WebKit/Source/platform/graphics/paint/PropertyTreeState.cpp#newcode9 third_party/WebKit/Source/platform/graphics/paint/PropertyTreeState.cpp:9: bool PropertyTreeState::hasDirectCompositingReasons() const { On 2016/12/20 23:58:10, chrishtr wrote: ...
4 years ago (2016-12-21 00:37:11 UTC) #29
chrishtr
Updated to address all comments. I have revised the algorithm to apply clips and effects ...
4 years ago (2016-12-22 19:17:33 UTC) #30
pdr.
https://codereview.chromium.org/2581843002/diff/200001/third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.cpp File third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.cpp (right): https://codereview.chromium.org/2581843002/diff/200001/third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.cpp#newcode273 third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.cpp:273: struct RectAndClipState { Nit: remove this (not used). https://codereview.chromium.org/2581843002/diff/200001/third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.cpp#newcode303 ...
4 years ago (2016-12-22 19:46:26 UTC) #35
chrishtr
https://codereview.chromium.org/2581843002/diff/200001/third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.cpp File third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.cpp (right): https://codereview.chromium.org/2581843002/diff/200001/third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.cpp#newcode273 third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.cpp:273: struct RectAndClipState { On 2016/12/22 at 19:46:26, pdr (OOO ...
4 years ago (2016-12-22 19:53:54 UTC) #36
trchen
https://codereview.chromium.org/2581843002/diff/300001/third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.cpp File third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.cpp (right): https://codereview.chromium.org/2581843002/diff/300001/third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.cpp#newcode464 third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.cpp:464: // transforms into single clips in the same way ...
4 years ago (2016-12-22 22:21:24 UTC) #43
pdr.
LGTM
4 years ago (2016-12-22 22:24:32 UTC) #44
chrishtr
https://codereview.chromium.org/2581843002/diff/300001/third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.cpp File third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.cpp (right): https://codereview.chromium.org/2581843002/diff/300001/third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.cpp#newcode464 third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.cpp:464: // transforms into single clips in the same way ...
4 years ago (2016-12-22 22:28:46 UTC) #45
trchen
On 2016/12/22 22:28:46, chrishtr wrote: > https://codereview.chromium.org/2581843002/diff/300001/third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.cpp > File > third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.cpp > (right): > > ...
4 years ago (2016-12-22 22:48:37 UTC) #46
chrishtr
On 2016/12/22 at 22:48:37, trchen wrote: > On 2016/12/22 22:28:46, chrishtr wrote: > > https://codereview.chromium.org/2581843002/diff/300001/third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.cpp ...
4 years ago (2016-12-22 22:58:17 UTC) #48
trchen
Yep neither issue should be blocking this CL. Let's submit & iterate! lgtm
4 years ago (2016-12-22 23:18:54 UTC) #51
chrishtr
In a follow-on patch I will add unittests for the three bugs mentioned in this ...
3 years, 12 months ago (2016-12-24 00:19:18 UTC) #64
chrishtr
https://codereview.chromium.org/2581843002/diff/440001/third_party/WebKit/LayoutTests/FlagExpectations/enable-slimming-paint-v2 File third_party/WebKit/LayoutTests/FlagExpectations/enable-slimming-paint-v2 (right): https://codereview.chromium.org/2581843002/diff/440001/third_party/WebKit/LayoutTests/FlagExpectations/enable-slimming-paint-v2#newcode541 third_party/WebKit/LayoutTests/FlagExpectations/enable-slimming-paint-v2:541: crbug.com/668342 fast/clip/010.html [ Failure ] Fails due to presence ...
3 years, 12 months ago (2016-12-24 20:57:00 UTC) #71
chrishtr
https://codereview.chromium.org/2581843002/diff/460001/third_party/WebKit/Source/platform/testing/PictureMatchers.cpp File third_party/WebKit/Source/platform/testing/PictureMatchers.cpp (right): https://codereview.chromium.org/2581843002/diff/460001/third_party/WebKit/Source/platform/testing/PictureMatchers.cpp#newcode57 third_party/WebKit/Source/platform/testing/PictureMatchers.cpp:57: if (layerAlpha < 255) { Made a small tweak ...
3 years, 12 months ago (2016-12-26 16:17:17 UTC) #75
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/2581843002/460001
3 years, 12 months ago (2016-12-26 16:17:26 UTC) #77
commit-bot: I haz the power
Try jobs failed on following builders: ios-device on master.tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/ios-device/builds/128060) ios-device-xcode-clang on master.tryserver.chromium.mac (JOB_FAILED, ...
3 years, 12 months ago (2016-12-26 16:19:18 UTC) #79
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/2581843002/480001
3 years, 12 months ago (2016-12-26 21:39:23 UTC) #82
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/355596)
3 years, 12 months ago (2016-12-26 23:34:49 UTC) #84
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/2581843002/480001
3 years, 12 months ago (2016-12-27 15:58:26 UTC) #86
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/2581843002/500001
3 years, 12 months ago (2016-12-27 17:17:24 UTC) #89
commit-bot: I haz the power
Committed patchset #26 (id:500001)
3 years, 12 months ago (2016-12-27 19:20:32 UTC) #92
commit-bot: I haz the power
3 years, 11 months ago (2017-01-02 15:46:48 UTC) #94
Message was sent while issue was closed.
Patchset 26 (id:??) landed as
https://crrev.com/7239114dd9ee5270ff6ac3e066113b34814f777d
Cr-Commit-Position: refs/heads/master@{#440775}

Powered by Google App Engine
This is Rietveld 408576698