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

Issue 2714673002: [SPv2] Implement effect compositing for indirect reasons (Closed)

Created:
3 years, 10 months ago by trchen
Modified:
3 years, 9 months ago
Reviewers:
chrishtr, pdr.
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, fmalita+watch_chromium.org, jbroman, Justin Novosad, kinuko+watch, pdr+graphicswatchlist_chromium.org, rwlbuis, Stephen Chennney
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

[SPv2] Implement effect compositing for indirect reasons The idea is to make PaintArtifactCompositor::collectPendingLayers a recursive algorithm to keep track of the scope of effects in the chunk list. We make a recursive call whenever an effect is entered, and return to caller whenever an effect exits. Pending layers generated in a recursion are only allowed to merge into previous layers generated in the same recursion, as if effects always have a compositing reason. So far this becomes a very conservative algorithm that would zealously composite effects for correctness. When a recursion returned to its caller, the caller would examine the pending layers generated by the callee and potentially peform two transformation: 1. If only one layer is generated, and the layer is compatible to the effect's input space, i.e. no compositing reasons in between two spaces, and the effect itself doesn't have a direct compositing reason, then "decomposite" the effect. 2. If the above transformation is done, then the "decomposited" pending layer can be seen as a regular paint chunk that paints into the current effect. Thus may be merged into a previous layer as if it is just a chunk. BUG=683425 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 Review-Url: https://codereview.chromium.org/2714673002 Cr-Commit-Position: refs/heads/master@{#457620} Committed: https://chromium.googlesource.com/chromium/src/+/d07c15ef0a9b942de053a5eb8fba1547972d6f23

Patch Set 1 #

Total comments: 4

Patch Set 2 : fix one crash bug & update tests & added unit tests #

Total comments: 22

Patch Set 3 : address review comments #

Total comments: 12

Patch Set 4 : address feedbacks up to #16 #

Patch Set 5 : rebase & rebaselined #

Total comments: 1

Patch Set 6 : mark tests 589265 #

Unified diffs Side-by-side diffs Delta from patch set Stats (+609 lines, -351 lines) Patch
M third_party/WebKit/LayoutTests/FlagExpectations/enable-slimming-paint-v2 View 1 2 3 4 5 21 chunks +14 lines, -92 lines 0 comments Download
M third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.h View 1 2 3 4 chunks +43 lines, -20 lines 0 comments Download
M third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.cpp View 1 2 3 1 chunk +224 lines, -80 lines 0 comments Download
M third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositorTest.cpp View 1 2 3 31 chunks +328 lines, -159 lines 0 comments Download

Depends on Patchset:

Messages

Total messages: 32 (15 generated)
trchen
Here is a quick preview for the effect grouping fix. My local test run showed ...
3 years, 10 months ago (2017-02-23 03:04:27 UTC) #3
pdr.
Great work Tien-Ren! https://codereview.chromium.org/2714673002/diff/1/third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.cpp File third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.cpp (right): https://codereview.chromium.org/2714673002/diff/1/third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.cpp#newcode716 third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.cpp:716: // Look at the effect node ...
3 years, 10 months ago (2017-02-23 06:05:18 UTC) #4
trchen
I just realized one weird thing. Although the grouping of composited effects will be correct, ...
3 years, 10 months ago (2017-02-23 22:19:45 UTC) #5
trchen
Ready for full review. :) A few unit tests probe into PendingLayer internals, but those ...
3 years, 9 months ago (2017-02-28 05:36:47 UTC) #9
chrishtr
Some comments. As we discussed offline, not sure if this is the simplest approach, still ...
3 years, 9 months ago (2017-02-28 22:50:37 UTC) #12
trchen
https://codereview.chromium.org/2714673002/diff/20001/third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.cpp File third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.cpp (right): https://codereview.chromium.org/2714673002/diff/20001/third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.cpp#newcode588 third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.cpp:588: .localToAncestorVisualRect( On 2017/02/28 22:50:35, chrishtr wrote: > This is ...
3 years, 9 months ago (2017-03-01 01:26:11 UTC) #13
trchen
https://codereview.chromium.org/2714673002/diff/20001/third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.cpp File third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.cpp (right): https://codereview.chromium.org/2714673002/diff/20001/third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.cpp#newcode588 third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.cpp:588: .localToAncestorVisualRect( On 2017/03/01 01:26:11, trchen wrote: > On 2017/02/28 ...
3 years, 9 months ago (2017-03-07 01:41:24 UTC) #14
chrishtr
After much debate with myself, I think we should proceed with this patch. It's a ...
3 years, 9 months ago (2017-03-09 01:27:00 UTC) #15
chrishtr
Could you also add a unittest with a case like that described in https://codereview.chromium.org/2729613002/ ? ...
3 years, 9 months ago (2017-03-09 01:41:01 UTC) #16
trchen
Pretty much done! Still need to rebaseline FlagExpectations/enable-slimming-paint-v2, will upload another one soon. > Could ...
3 years, 9 months ago (2017-03-15 22:46:53 UTC) #17
chrishtr
https://codereview.chromium.org/2714673002/diff/80001/third_party/WebKit/LayoutTests/FlagExpectations/enable-slimming-paint-v2 File third_party/WebKit/LayoutTests/FlagExpectations/enable-slimming-paint-v2 (right): https://codereview.chromium.org/2714673002/diff/80001/third_party/WebKit/LayoutTests/FlagExpectations/enable-slimming-paint-v2#newcode1320 third_party/WebKit/LayoutTests/FlagExpectations/enable-slimming-paint-v2:1320: Bug(none) animations/animated-filter-svg-element.html [ Failure ] What is the cause ...
3 years, 9 months ago (2017-03-16 00:36:39 UTC) #20
trchen
On 2017/03/16 00:36:39, chrishtr wrote: > https://codereview.chromium.org/2714673002/diff/80001/third_party/WebKit/LayoutTests/FlagExpectations/enable-slimming-paint-v2 > File third_party/WebKit/LayoutTests/FlagExpectations/enable-slimming-paint-v2 > (right): > > https://codereview.chromium.org/2714673002/diff/80001/third_party/WebKit/LayoutTests/FlagExpectations/enable-slimming-paint-v2#newcode1320 ...
3 years, 9 months ago (2017-03-16 19:11:46 UTC) #23
chrishtr
On 2017/03/16 at 19:11:46, trchen wrote: > On 2017/03/16 00:36:39, chrishtr wrote: > > https://codereview.chromium.org/2714673002/diff/80001/third_party/WebKit/LayoutTests/FlagExpectations/enable-slimming-paint-v2 ...
3 years, 9 months ago (2017-03-16 20:00:16 UTC) #24
chrishtr
lgtm Looks good modulo that last change.
3 years, 9 months ago (2017-03-16 20:00:25 UTC) #25
trchen
On 2017/03/16 20:00:16, chrishtr wrote: > OK, please change Bug(none) to crbug.com/589265 for these then. ...
3 years, 9 months ago (2017-03-16 21:33:53 UTC) #26
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/2714673002/100001
3 years, 9 months ago (2017-03-16 21:34:52 UTC) #29
commit-bot: I haz the power
3 years, 9 months ago (2017-03-17 00:19:21 UTC) #32
Message was sent while issue was closed.
Committed patchset #6 (id:100001) as
https://chromium.googlesource.com/chromium/src/+/d07c15ef0a9b942de053a5eb8fba...

Powered by Google App Engine
This is Rietveld 408576698