New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 675805 link

Starred by 1 user

Issue metadata

Status: WontFix
Owner:
Closed: Nov 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug



Sign in to add a comment

[SPv2] Implement the equivalent of compositing display item folding

Project Member Reported by trchen@chromium.org, Dec 20 2016

Issue description

In SPv1 there is an optimization to fold BeginCompositing/Drawing/EndCompositing into a single drawing display item. This was because Skia could perform peephole optimization to skip layer creation if the layer contains only simple opacity/blending, and the drawing is simple primitive.

In SPv2 this optimization is disabled because layerization happens after, and the opacity/blending may need to be layerized for correct grouping. However we still want the performance benefit if we decided not to layerize the effect. This will be done as a part of chrishtr's effort to implement non-composited effects in PaintArtifactCompositor.

BTW, Skia can fail to detect self-overlapping path for complex text (and thus apply the peephole optimization when it shouldn't). See fast/text/complex-text-opacity.html for an example.
 
Project Member

Comment 1 by bugdroid1@chromium.org, Dec 20 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/89df64fbe6300c209e5a3f7e2f7a30a51be8b706

commit 89df64fbe6300c209e5a3f7e2f7a30a51be8b706
Author: trchen <trchen@chromium.org>
Date: Tue Dec 20 22:05:54 2016

[SPv2] Disable CompositingRecorder collapsing for SPv2

CompositingRecorder collapses its begin/end display items if there is only
one drawing display item in between. This won't work if the display item
may be layerized and the compositing operation is backdrop-dependent.

For example:

<drawing content="X"/>
<composite blend=multiply>
  <drawing content="Y"/>
</composite>

Will be collapsed as:

<drawing content="X"/>
<drawing content="saveLayer(blend=multiply); Y; restore();"/>

However the result will be incorrect if the second drawing display item gets
layerized.

This CL disables this optimization in SPv2.

BUG= 674805 , 675805 
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Review-Url: https://codereview.chromium.org/2580143003
Cr-Commit-Position: refs/heads/master@{#439887}

[modify] https://crrev.com/89df64fbe6300c209e5a3f7e2f7a30a51be8b706/third_party/WebKit/LayoutTests/FlagExpectations/enable-slimming-paint-v2
[modify] https://crrev.com/89df64fbe6300c209e5a3f7e2f7a30a51be8b706/third_party/WebKit/Source/core/paint/PaintControllerPaintTest.cpp
[modify] https://crrev.com/89df64fbe6300c209e5a3f7e2f7a30a51be8b706/third_party/WebKit/Source/platform/graphics/paint/CompositingRecorder.cpp

Status: WontFix (was: Available)
Obsolete.

Sign in to add a comment