See summary. This is a tracking bug.
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/6ae30bb0c7529969fad55409b0cc376be41fc2ca commit 6ae30bb0c7529969fad55409b0cc376be41fc2ca Author: chrishtr <chrishtr@chromium.org> Date: Tue Jan 24 02:48:28 2017 Share GeometryMapper cache between pre-paint and compositing. BUG= 683733 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 Review-Url: https://codereview.chromium.org/2653433002 Cr-Commit-Position: refs/heads/master@{#445618} [modify] https://crrev.com/6ae30bb0c7529969fad55409b0cc376be41fc2ca/third_party/WebKit/Source/core/frame/FrameView.cpp [modify] https://crrev.com/6ae30bb0c7529969fad55409b0cc376be41fc2ca/third_party/WebKit/Source/core/frame/FrameView.h [modify] https://crrev.com/6ae30bb0c7529969fad55409b0cc376be41fc2ca/third_party/WebKit/Source/core/paint/PaintInvalidator.cpp [modify] https://crrev.com/6ae30bb0c7529969fad55409b0cc376be41fc2ca/third_party/WebKit/Source/core/paint/PaintInvalidator.h [modify] https://crrev.com/6ae30bb0c7529969fad55409b0cc376be41fc2ca/third_party/WebKit/Source/core/paint/PrePaintTreeWalk.h [modify] https://crrev.com/6ae30bb0c7529969fad55409b0cc376be41fc2ca/third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.cpp [modify] https://crrev.com/6ae30bb0c7529969fad55409b0cc376be41fc2ca/third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.h [modify] https://crrev.com/6ae30bb0c7529969fad55409b0cc376be41fc2ca/third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositorTest.cpp [modify] https://crrev.com/6ae30bb0c7529969fad55409b0cc376be41fc2ca/third_party/WebKit/Source/platform/graphics/paint/GeometryMapper.cpp [modify] https://crrev.com/6ae30bb0c7529969fad55409b0cc376be41fc2ca/third_party/WebKit/Source/platform/graphics/paint/GeometryMapper.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/4fa3275a1ee7439fb7057ac2d9986c15c9a2e396 commit 4fa3275a1ee7439fb7057ac2d9986c15c9a2e396 Author: chrishtr <chrishtr@chromium.org> Date: Sat Feb 04 02:15:20 2017 Invalidate subsequence caching & empty paint phases if clips changed relative to the containing transformed, root or paint invalidation container. Subsequence caching & empty paint phase optimizations need to be invalidated if any ancestor clips updated, since those clips are used to: a. Adjust painted output (SPInvalidation only, not SPv2), and b. Cull out invisible content (SPInvalidation and SPv2) Previously, we detected that by computing clip rects during paint. This CL moves it to the pre-paint tree walk. BUG= 683733 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 patch from issue 2654643002 at patchset 120001 (http://crrev.com/2654643002#ps120001) Review-Url: https://codereview.chromium.org/2668823002 Cr-Commit-Position: refs/heads/master@{#448147} [modify] https://crrev.com/4fa3275a1ee7439fb7057ac2d9986c15c9a2e396/third_party/WebKit/Source/core/paint/PaintLayerPainter.cpp [modify] https://crrev.com/4fa3275a1ee7439fb7057ac2d9986c15c9a2e396/third_party/WebKit/Source/core/paint/PrePaintTreeWalk.cpp [modify] https://crrev.com/4fa3275a1ee7439fb7057ac2d9986c15c9a2e396/third_party/WebKit/Source/core/paint/PrePaintTreeWalk.h [modify] https://crrev.com/4fa3275a1ee7439fb7057ac2d9986c15c9a2e396/third_party/WebKit/Source/core/paint/PrePaintTreeWalkTest.cpp
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/25c670f083721a982eb4b7aa01d06beaf888365e commit 25c670f083721a982eb4b7aa01d06beaf888365e Author: chrishtr <chrishtr@chromium.org> Date: Mon Feb 06 18:46:43 2017 Fix caching bug in GeometryMapper. There can be multiple clip spaces within the same transform space. We need a separate cache for each. BUG= 683733 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 Review-Url: https://codereview.chromium.org/2672993004 Cr-Commit-Position: refs/heads/master@{#448325} [modify] https://crrev.com/25c670f083721a982eb4b7aa01d06beaf888365e/third_party/WebKit/Source/platform/graphics/paint/GeometryMapper.cpp [modify] https://crrev.com/25c670f083721a982eb4b7aa01d06beaf888365e/third_party/WebKit/Source/platform/graphics/paint/GeometryMapper.h [modify] https://crrev.com/25c670f083721a982eb4b7aa01d06beaf888365e/third_party/WebKit/Source/platform/graphics/paint/GeometryMapperTest.cpp
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/2495a581e31b2b7344b240a0a35cbae1f0be2799 commit 2495a581e31b2b7344b240a0a35cbae1f0be2799 Author: chrishtr <chrishtr@chromium.org> Date: Tue Feb 07 18:30:30 2017 Plumb border radius through when computing clip visual rects. These are used by PaintLayerClipper to notify PaintLayerPainter of the need to apply border-radius clipping masks. BUG= 683733 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 Review-Url: https://codereview.chromium.org/2678263002 Cr-Commit-Position: refs/heads/master@{#448675} [modify] https://crrev.com/2495a581e31b2b7344b240a0a35cbae1f0be2799/third_party/WebKit/Source/core/paint/PaintInvalidator.cpp [modify] https://crrev.com/2495a581e31b2b7344b240a0a35cbae1f0be2799/third_party/WebKit/Source/core/paint/PaintLayerClipper.cpp [modify] https://crrev.com/2495a581e31b2b7344b240a0a35cbae1f0be2799/third_party/WebKit/Source/core/paint/PaintLayerClipper.h [modify] https://crrev.com/2495a581e31b2b7344b240a0a35cbae1f0be2799/third_party/WebKit/Source/core/paint/PaintLayerClipperTest.cpp [modify] https://crrev.com/2495a581e31b2b7344b240a0a35cbae1f0be2799/third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilderTest.cpp [modify] https://crrev.com/2495a581e31b2b7344b240a0a35cbae1f0be2799/third_party/WebKit/Source/core/paint/PrePaintTreeWalk.cpp [modify] https://crrev.com/2495a581e31b2b7344b240a0a35cbae1f0be2799/third_party/WebKit/Source/platform/BUILD.gn [modify] https://crrev.com/2495a581e31b2b7344b240a0a35cbae1f0be2799/third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.cpp [add] https://crrev.com/2495a581e31b2b7344b240a0a35cbae1f0be2799/third_party/WebKit/Source/platform/graphics/paint/FloatClipRect.h [modify] https://crrev.com/2495a581e31b2b7344b240a0a35cbae1f0be2799/third_party/WebKit/Source/platform/graphics/paint/GeometryMapper.cpp [modify] https://crrev.com/2495a581e31b2b7344b240a0a35cbae1f0be2799/third_party/WebKit/Source/platform/graphics/paint/GeometryMapper.h [modify] https://crrev.com/2495a581e31b2b7344b240a0a35cbae1f0be2799/third_party/WebKit/Source/platform/graphics/paint/GeometryMapperTest.cpp
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/56850c99e856e368af5f440d75d8e8bdb13608f1 commit 56850c99e856e368af5f440d75d8e8bdb13608f1 Author: chrishtr <chrishtr@chromium.org> Date: Sun Feb 12 22:30:57 2017 [SPInvalidation] Use GeometryMapper in PaintLayerClipper for paint. This turns on GeometryMapper for all use-cases of PaintLayerClipper in painting. It does not include any from computing SPv1 compositing or from computing recursive bounding boxes. SPv1 compositing happens before pre-paint, and hence is not available for use of property trees. Recursive bounding boxes, e.g. via PaintLayer::physicalBoundingBoxIncludingStackingChildren, are called during paint invalidation, which cannot currently be supported because they imply access to property trees for children during pre-paint, which have not yet been computed. Future work will fix the problem with PaintLayer::physicalBoundingBoxIncludingStackingChildren. BUG= 683733 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 Review-Url: https://codereview.chromium.org/2671853003 Cr-Commit-Position: refs/heads/master@{#449899} [modify] https://crrev.com/56850c99e856e368af5f440d75d8e8bdb13608f1/third_party/WebKit/LayoutTests/FlagExpectations/enable-slimming-paint-v2 [delete] https://crrev.com/09885722cd8637e59680a1996bac98454cad4bf7/third_party/WebKit/LayoutTests/flag-specific/enable-slimming-paint-v2/fast/css/input-search-padding-expected.txt [delete] https://crrev.com/09885722cd8637e59680a1996bac98454cad4bf7/third_party/WebKit/LayoutTests/flag-specific/enable-slimming-paint-v2/fast/forms/search/search-vertical-alignment-expected.txt [delete] https://crrev.com/09885722cd8637e59680a1996bac98454cad4bf7/third_party/WebKit/LayoutTests/flag-specific/enable-slimming-paint-v2/fast/forms/search/searchfield-heights-expected.txt [delete] https://crrev.com/09885722cd8637e59680a1996bac98454cad4bf7/third_party/WebKit/LayoutTests/flag-specific/enable-slimming-paint-v2/fast/forms/text/text-font-height-mismatch-expected.txt [delete] https://crrev.com/09885722cd8637e59680a1996bac98454cad4bf7/third_party/WebKit/LayoutTests/flag-specific/enable-slimming-paint-v2/fast/forms/text/textfield-overflow-by-value-update-expected.txt [delete] https://crrev.com/09885722cd8637e59680a1996bac98454cad4bf7/third_party/WebKit/LayoutTests/flag-specific/enable-slimming-paint-v2/fast/replaced/width100percent-searchfield-expected.txt [modify] https://crrev.com/56850c99e856e368af5f440d75d8e8bdb13608f1/third_party/WebKit/LayoutTests/svg/hixie/mixed/006.xml [modify] https://crrev.com/56850c99e856e368af5f440d75d8e8bdb13608f1/third_party/WebKit/LayoutTests/svg/hixie/mixed/011.xml [modify] https://crrev.com/56850c99e856e368af5f440d75d8e8bdb13608f1/third_party/WebKit/LayoutTests/svg/overflow/overflow-on-foreignObject-expected.png [modify] https://crrev.com/56850c99e856e368af5f440d75d8e8bdb13608f1/third_party/WebKit/LayoutTests/svg/overflow/overflow-on-foreignObject.svg [modify] https://crrev.com/56850c99e856e368af5f440d75d8e8bdb13608f1/third_party/WebKit/Source/core/frame/FrameView.cpp [modify] https://crrev.com/56850c99e856e368af5f440d75d8e8bdb13608f1/third_party/WebKit/Source/core/frame/FrameView.h [modify] https://crrev.com/56850c99e856e368af5f440d75d8e8bdb13608f1/third_party/WebKit/Source/core/layout/LayoutBoxModelObject.cpp [modify] https://crrev.com/56850c99e856e368af5f440d75d8e8bdb13608f1/third_party/WebKit/Source/core/layout/LayoutTreeAsText.cpp [modify] https://crrev.com/56850c99e856e368af5f440d75d8e8bdb13608f1/third_party/WebKit/Source/core/layout/compositing/CompositedLayerMapping.cpp [modify] https://crrev.com/56850c99e856e368af5f440d75d8e8bdb13608f1/third_party/WebKit/Source/core/layout/compositing/CompositingInputsUpdater.cpp [modify] https://crrev.com/56850c99e856e368af5f440d75d8e8bdb13608f1/third_party/WebKit/Source/core/layout/compositing/CompositingLayerAssigner.cpp [modify] https://crrev.com/56850c99e856e368af5f440d75d8e8bdb13608f1/third_party/WebKit/Source/core/layout/compositing/PaintLayerCompositor.cpp [modify] https://crrev.com/56850c99e856e368af5f440d75d8e8bdb13608f1/third_party/WebKit/Source/core/paint/PaintInvalidator.cpp [modify] https://crrev.com/56850c99e856e368af5f440d75d8e8bdb13608f1/third_party/WebKit/Source/core/paint/PaintLayer.cpp [modify] https://crrev.com/56850c99e856e368af5f440d75d8e8bdb13608f1/third_party/WebKit/Source/core/paint/PaintLayer.h [modify] https://crrev.com/56850c99e856e368af5f440d75d8e8bdb13608f1/third_party/WebKit/Source/core/paint/PaintLayerClipper.cpp [modify] https://crrev.com/56850c99e856e368af5f440d75d8e8bdb13608f1/third_party/WebKit/Source/core/paint/PaintLayerClipper.h [modify] https://crrev.com/56850c99e856e368af5f440d75d8e8bdb13608f1/third_party/WebKit/Source/core/paint/PaintLayerClipperTest.cpp [modify] https://crrev.com/56850c99e856e368af5f440d75d8e8bdb13608f1/third_party/WebKit/Source/core/paint/PaintLayerPainter.cpp [modify] https://crrev.com/56850c99e856e368af5f440d75d8e8bdb13608f1/third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilderTest.cpp [modify] https://crrev.com/56850c99e856e368af5f440d75d8e8bdb13608f1/third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositorTest.cpp [modify] https://crrev.com/56850c99e856e368af5f440d75d8e8bdb13608f1/third_party/WebKit/Source/platform/graphics/paint/GeometryMapper.h [modify] https://crrev.com/56850c99e856e368af5f440d75d8e8bdb13608f1/third_party/WebKit/Source/platform/graphics/paint/GeometryMapperTest.cpp [modify] https://crrev.com/56850c99e856e368af5f440d75d8e8bdb13608f1/third_party/WebKit/Source/web/PageWidgetDelegate.cpp
Comment 1 by bugdroid1@chromium.org
, Jan 24 2017