New issue
Advanced search Search tips

Issue 668342 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Jan 2017
EstimatedDays: ----
NextAction: ----
OS: Mac
Pri: 2
Type: Bug

Blocking:
issue 472842



Sign in to add a comment

Design and implement property tree optimizations / squashing in PaintLayerCompositor

Project Member Reported by chrishtr@chromium.org, Nov 24 2016

Issue description

.
 
Project Member

Comment 2 by bugdroid1@chromium.org, Dec 14 2016

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

commit de314bfb82cdafe6eb2295b66a8d108e080170f0
Author: chrishtr <chrishtr@chromium.org>
Date: Wed Dec 14 05:05:03 2016

Refactor PaintChunkProperties to use PropertyTreeState

BUG= 668342 
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

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

[modify] https://crrev.com/de314bfb82cdafe6eb2295b66a8d108e080170f0/third_party/WebKit/Source/core/paint/BlockPainter.cpp
[modify] https://crrev.com/de314bfb82cdafe6eb2295b66a8d108e080170f0/third_party/WebKit/Source/core/paint/BoxClipper.cpp
[modify] https://crrev.com/de314bfb82cdafe6eb2295b66a8d108e080170f0/third_party/WebKit/Source/core/paint/FramePainter.cpp
[modify] https://crrev.com/de314bfb82cdafe6eb2295b66a8d108e080170f0/third_party/WebKit/Source/core/paint/PaintControllerPaintTest.cpp
[modify] https://crrev.com/de314bfb82cdafe6eb2295b66a8d108e080170f0/third_party/WebKit/Source/core/paint/PaintLayerPainter.cpp
[modify] https://crrev.com/de314bfb82cdafe6eb2295b66a8d108e080170f0/third_party/WebKit/Source/core/paint/SVGPaintContext.h
[modify] https://crrev.com/de314bfb82cdafe6eb2295b66a8d108e080170f0/third_party/WebKit/Source/core/paint/ScrollableAreaPainter.cpp
[modify] https://crrev.com/de314bfb82cdafe6eb2295b66a8d108e080170f0/third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.cpp
[modify] https://crrev.com/de314bfb82cdafe6eb2295b66a8d108e080170f0/third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositorTest.cpp
[modify] https://crrev.com/de314bfb82cdafe6eb2295b66a8d108e080170f0/third_party/WebKit/Source/platform/graphics/paint/PaintChunkProperties.h
[modify] https://crrev.com/de314bfb82cdafe6eb2295b66a8d108e080170f0/third_party/WebKit/Source/platform/graphics/paint/PaintChunker.cpp
[modify] https://crrev.com/de314bfb82cdafe6eb2295b66a8d108e080170f0/third_party/WebKit/Source/platform/graphics/paint/PaintChunkerTest.cpp
[modify] https://crrev.com/de314bfb82cdafe6eb2295b66a8d108e080170f0/third_party/WebKit/Source/platform/graphics/paint/PaintControllerTest.cpp
[modify] https://crrev.com/de314bfb82cdafe6eb2295b66a8d108e080170f0/third_party/WebKit/Source/platform/graphics/paint/PropertyTreeState.h
[modify] https://crrev.com/de314bfb82cdafe6eb2295b66a8d108e080170f0/third_party/WebKit/Source/platform/testing/PaintPrinters.cpp
[modify] https://crrev.com/de314bfb82cdafe6eb2295b66a8d108e080170f0/third_party/WebKit/Source/platform/testing/PaintPropertyTestHelpers.h
[modify] https://crrev.com/de314bfb82cdafe6eb2295b66a8d108e080170f0/third_party/WebKit/Source/platform/testing/TestPaintArtifact.cpp
[modify] https://crrev.com/de314bfb82cdafe6eb2295b66a8d108e080170f0/third_party/WebKit/Source/web/tests/WebPluginContainerTest.cpp

Project Member

Comment 3 by bugdroid1@chromium.org, Dec 15 2016

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

commit 78f6bee5b544282274f8b962a7cca4bf98f2c621
Author: chrishtr <chrishtr@chromium.org>
Date: Thu Dec 15 07:02:22 2016

Set a direct compositing reason for 3D transform paint property tree nodes.

As part of this, starts allocating a transform node to represent direct
compositing of will-change:transform elements and their stacking children.

BUG= 668342 
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

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

[modify] https://crrev.com/78f6bee5b544282274f8b962a7cca4bf98f2c621/third_party/WebKit/LayoutTests/FlagExpectations/enable-slimming-paint-v2
[modify] https://crrev.com/78f6bee5b544282274f8b962a7cca4bf98f2c621/third_party/WebKit/Source/core/layout/compositing/CompositingReasonFinder.cpp
[modify] https://crrev.com/78f6bee5b544282274f8b962a7cca4bf98f2c621/third_party/WebKit/Source/core/layout/compositing/CompositingReasonFinder.h
[modify] https://crrev.com/78f6bee5b544282274f8b962a7cca4bf98f2c621/third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.cpp
[modify] https://crrev.com/78f6bee5b544282274f8b962a7cca4bf98f2c621/third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilderTest.cpp
[delete] https://crrev.com/0ffae0a7cd06b6c571b1c7f1c7843948419039f0/third_party/WebKit/Source/core/paint/test_data/transform.html
[modify] https://crrev.com/78f6bee5b544282274f8b962a7cca4bf98f2c621/third_party/WebKit/Source/platform/graphics/paint/TransformPaintPropertyNode.h

Project Member

Comment 4 by bugdroid1@chromium.org, Dec 16 2016

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

commit 5aa24fc6891c693c3c7f8ceee14e7cb1a0c24ef2
Author: chrishtr <chrishtr@chromium.org>
Date: Fri Dec 16 18:19:58 2016

Add optional debugging output of what paint chunks go into what layers.

BUG= 668342 
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

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

[modify] https://crrev.com/5aa24fc6891c693c3c7f8ceee14e7cb1a0c24ef2/third_party/WebKit/Source/core/frame/FrameView.cpp
[modify] https://crrev.com/5aa24fc6891c693c3c7f8ceee14e7cb1a0c24ef2/third_party/WebKit/Source/core/frame/FrameView.h
[modify] https://crrev.com/5aa24fc6891c693c3c7f8ceee14e7cb1a0c24ef2/third_party/WebKit/Source/core/testing/Internals.cpp
[modify] https://crrev.com/5aa24fc6891c693c3c7f8ceee14e7cb1a0c24ef2/third_party/WebKit/Source/core/testing/Internals.h
[modify] https://crrev.com/5aa24fc6891c693c3c7f8ceee14e7cb1a0c24ef2/third_party/WebKit/Source/core/testing/Internals.idl
[modify] https://crrev.com/5aa24fc6891c693c3c7f8ceee14e7cb1a0c24ef2/third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.cpp
[modify] https://crrev.com/5aa24fc6891c693c3c7f8ceee14e7cb1a0c24ef2/third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.h
[modify] https://crrev.com/5aa24fc6891c693c3c7f8ceee14e7cb1a0c24ef2/third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositorTest.cpp
[modify] https://crrev.com/5aa24fc6891c693c3c7f8ceee14e7cb1a0c24ef2/third_party/WebKit/Source/platform/graphics/paint/DisplayItemList.cpp
[modify] https://crrev.com/5aa24fc6891c693c3c7f8ceee14e7cb1a0c24ef2/third_party/WebKit/Source/platform/graphics/paint/DisplayItemList.h

Project Member

Comment 5 by bugdroid1@chromium.org, Dec 27 2016

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

commit 7239114dd9ee5270ff6ac3e066113b34814f777d
Author: chrishtr <chrishtr@chromium.org>
Date: Tue Dec 27 19:19:57 2016

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

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

[modify] https://crrev.com/7239114dd9ee5270ff6ac3e066113b34814f777d/third_party/WebKit/LayoutTests/FlagExpectations/enable-slimming-paint-v2
[modify] https://crrev.com/7239114dd9ee5270ff6ac3e066113b34814f777d/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/7239114dd9ee5270ff6ac3e066113b34814f777d/third_party/WebKit/Source/core/paint/PaintLayerClipper.h
[modify] https://crrev.com/7239114dd9ee5270ff6ac3e066113b34814f777d/third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.cpp
[modify] https://crrev.com/7239114dd9ee5270ff6ac3e066113b34814f777d/third_party/WebKit/Source/core/paint/README.md
[modify] https://crrev.com/7239114dd9ee5270ff6ac3e066113b34814f777d/third_party/WebKit/Source/platform/BUILD.gn
[modify] https://crrev.com/7239114dd9ee5270ff6ac3e066113b34814f777d/third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.cpp
[modify] https://crrev.com/7239114dd9ee5270ff6ac3e066113b34814f777d/third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.h
[modify] https://crrev.com/7239114dd9ee5270ff6ac3e066113b34814f777d/third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositorTest.cpp
[add] https://crrev.com/7239114dd9ee5270ff6ac3e066113b34814f777d/third_party/WebKit/Source/platform/graphics/compositing/README.md
[modify] https://crrev.com/7239114dd9ee5270ff6ac3e066113b34814f777d/third_party/WebKit/Source/platform/graphics/paint/ClipPaintPropertyNode.h
[modify] https://crrev.com/7239114dd9ee5270ff6ac3e066113b34814f777d/third_party/WebKit/Source/platform/graphics/paint/GeometryMapper.h
[add] https://crrev.com/7239114dd9ee5270ff6ac3e066113b34814f777d/third_party/WebKit/Source/platform/graphics/paint/PropertyTreeState.cpp
[modify] https://crrev.com/7239114dd9ee5270ff6ac3e066113b34814f777d/third_party/WebKit/Source/platform/graphics/paint/PropertyTreeState.h
[add] https://crrev.com/7239114dd9ee5270ff6ac3e066113b34814f777d/third_party/WebKit/Source/platform/graphics/paint/PropertyTreeStateTest.cpp
[modify] https://crrev.com/7239114dd9ee5270ff6ac3e066113b34814f777d/third_party/WebKit/Source/platform/testing/PictureMatchers.cpp
[modify] https://crrev.com/7239114dd9ee5270ff6ac3e066113b34814f777d/third_party/WebKit/Source/platform/testing/PictureMatchers.h

Project Member

Comment 7 by bugdroid1@chromium.org, Dec 29 2016

Status: Fixed (was: Assigned)

Sign in to add a comment