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

Issue 2565073002: Implement the algorithm to test merging and overlap in PaintArtifactCompositor. (Closed)

Created:
4 years ago by chrishtr
Modified:
3 years, 12 months ago
Reviewers:
trchen
CC:
ajuma+watch_chromium.org, blink-reviews, blink-reviews-layout_chromium.org, blink-reviews-paint_chromium.org, blink-reviews-platform-graphics_chromium.org, Rik, chromium-reviews, danakj+watch_chromium.org, dshwang, drott+blinkwatch_chromium.org, krit, eae+blinkwatch, f(malita), jbroman, jchaffraix+rendering, Justin Novosad, leviw+renderwatch, pdr+graphicswatchlist_chromium.org, pdr+renderingwatchlist_chromium.org, rwlbuis, Stephen Chennney, szager+layoutwatch_chromium.org, zoltan1
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Implement the algorithm to test merging and overlap in PaintArtifactCompositor. BUG= CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Patch Set 1 #

Patch Set 2 : none #

Patch Set 3 : none #

Total comments: 1
Unified diffs Side-by-side diffs Delta from patch set Stats (+424 lines, -128 lines) Patch
A third_party/WebKit/LayoutTests/compositing/layer-creation/examples.html View 1 2 1 chunk +25 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/frame/FrameView.cpp View 1 2 1 chunk +1 line, -0 lines 0 comments Download
M third_party/WebKit/Source/core/layout/compositing/CompositingReasonFinder.h View 1 chunk +0 lines, -1 line 0 comments Download
M third_party/WebKit/Source/core/paint/PaintLayerPainter.cpp View 1 2 2 chunks +7 lines, -0 lines 1 comment Download
M third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.h View 3 chunks +4 lines, -2 lines 0 comments Download
M third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.cpp View 3 chunks +8 lines, -1 line 0 comments Download
M third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.h View 1 2 2 chunks +23 lines, -3 lines 0 comments Download
M third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.cpp View 1 2 12 chunks +174 lines, -45 lines 0 comments Download
M third_party/WebKit/Source/platform/graphics/paint/DisplayItemList.h View 1 2 2 chunks +6 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/platform/graphics/paint/DisplayItemList.cpp View 1 2 2 chunks +66 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/platform/graphics/paint/PaintChunkProperties.h View 3 chunks +8 lines, -2 lines 0 comments Download
M third_party/WebKit/Source/platform/graphics/paint/PaintChunker.h View 1 chunk +1 line, -0 lines 0 comments Download
M third_party/WebKit/Source/platform/graphics/paint/PaintChunker.cpp View 1 2 3 chunks +13 lines, -2 lines 0 comments Download
M third_party/WebKit/Source/platform/graphics/paint/PaintController.h View 1 2 1 chunk +0 lines, -2 lines 0 comments Download
M third_party/WebKit/Source/platform/graphics/paint/PaintController.cpp View 1 2 1 chunk +9 lines, -58 lines 0 comments Download
M third_party/WebKit/Source/platform/graphics/paint/PropertyTreeState.h View 1 2 1 chunk +55 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/platform/graphics/paint/TransformPaintPropertyNode.h View 5 chunks +24 lines, -12 lines 0 comments Download

Messages

Total messages: 4 (3 generated)
trchen
4 years ago (2016-12-13 22:46:01 UTC) #4
https://codereview.chromium.org/2565073002/diff/40001/third_party/WebKit/Sour...
File third_party/WebKit/Source/core/paint/PaintLayerPainter.cpp (right):

https://codereview.chromium.org/2565073002/diff/40001/third_party/WebKit/Sour...
third_party/WebKit/Source/core/paint/PaintLayerPainter.cpp:494:
properties.willChangeTransform = m_paintLayer.layoutObject()
I think this is not quite right. For example:

<div style="will-change:transform;">
  <div style="position:absolute; z-index:0; overflow:hidden;">Foo</div>
</div>

The "Foo" element should be promoted to a cc layer for the will-change hint, but
this code won't propagate the compositing hint from its parent.

Also simple propagation won't work, for example:

<div style="will-change:transform;">
  <div style="position:absolute; z-index:0; overflow:hidden;">Foo</div>
  <div style="position:absolute; z-index:0; overflow:hidden;">Bar</div>
</div>

Both 'Foo' and 'Bar' want a cc layer other than their grand parent (not shown in
the example), but they certainly can share a layer.

This is why in your doc I said I'm not certain about the concept of "chunk
compositing reason". The only thing I can think of is foreign layer chunk. Other
than that all compositing reasons are from property nodes.

I would model it this way:
A transform node with 3D transform, will-change hint, animation, scrolling, blah
blah blah gets direct compositing reason. A transform node that has direct
compositing reason mark its parent edge. Two chunks can't be merged if the path
between their transform nodes contains marked edge.

Powered by Google App Engine
This is Rietveld 408576698