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 2698673007: Only create PaintChunks at drawing and foreignLayer boundaries (Closed)

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

Description

Only create PaintChunks for drawings and foreignLayers The display item list contains many types of items (e.g., drawings, begin/end clips, etc) but only drawings and foreign layers are needed for compositing. SPV2 splits up the display item list for compositing by grouping contiguous items into paint chunks that can be composited together. Because there are many non-(drawing, foreignLayer) display items even in SPV2 (e.g., subsequence types), unnecessary layers would be produced. For example: Display item list: [N1, D2, N3, D4, N5] (for drawing D & non-drawing N) Propy tree states: [P1, P1, P2, P1, P1] (for property tree state P) Chunks before patch (5): [N1P1], [D2P1], [N3P2], [D4P1], [N5P1] Chunks after patch (2): [D2P1], [D4P1] The changes in PaintController::copyCachedSubsequence can use a little explanation. This function copies a sequence of display items and uses the cached paint chunks to ensure the newly-copied display items have the correct property tree states. There is no longer a chunk associated with the cached kBeginSubsequence item so the first following chunk is used. The properties used for the begin subsequence item are no longer set but, because properties do not affect non-drawing/layer items, this has no effect. Because layerization now more closely matches spv1, 120 new tests pass. BUG=667946 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Patch Set 1 #

Patch Set 2 : Add tests and cleanup #

Patch Set 3 : Great expectations #

Unified diffs Side-by-side diffs Delta from patch set Stats (+147 lines, -151 lines) Patch
M third_party/WebKit/LayoutTests/FlagExpectations/enable-slimming-paint-v2 View 1 2 20 chunks +9 lines, -121 lines 0 comments Download
M third_party/WebKit/Source/core/paint/PaintControllerPaintTest.cpp View 1 chunk +1 line, -5 lines 0 comments Download
M third_party/WebKit/Source/platform/graphics/paint/PaintChunker.h View 4 chunks +18 lines, -4 lines 0 comments Download
M third_party/WebKit/Source/platform/graphics/paint/PaintChunker.cpp View 7 chunks +24 lines, -4 lines 0 comments Download
M third_party/WebKit/Source/platform/graphics/paint/PaintChunkerTest.cpp View 1 1 chunk +74 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/platform/graphics/paint/PaintController.cpp View 1 2 chunks +21 lines, -17 lines 0 comments Download

Messages

Total messages: 13 (10 generated)
pdr.
3 years, 10 months ago (2017-02-17 15:46:19 UTC) #11
chrishtr
Per offline discussion, we decided to not go forward with this patch, in favor of: ...
3 years, 10 months ago (2017-02-17 20:32:00 UTC) #12
pdr.
3 years, 10 months ago (2017-02-18 02:58:07 UTC) #13
On 2017/02/17 at 20:32:00, chrishtr wrote:
> Per offline discussion, we decided to not go forward with this patch, in favor
of:
> 
> 1. Short-term: add a quick hack to cc to disable the "only one composited
element id"
> DCHECK
> 
> 2. Mid-term, achieve the same goal and more with crbug.com/693693.

Closing per better approach in
https://bugs.chromium.org/p/chromium/issues/detail?id=693693

Powered by Google App Engine
This is Rietveld 408576698