New issue
Advanced search Search tips

Issue 683733 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Feb 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug



Sign in to add a comment

Make PaintLayerClipper use GeometryMapper if SPInvalidation is on.

Project Member Reported by chrishtr@chromium.org, Jan 22 2017

Issue description

See summary. This is a tracking bug.
 
Project Member

Comment 1 by bugdroid1@chromium.org, Jan 24 2017

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

Project Member

Comment 2 by bugdroid1@chromium.org, Feb 4 2017

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

Project Member

Comment 3 by bugdroid1@chromium.org, Feb 6 2017

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

Project Member

Comment 4 by bugdroid1@chromium.org, Feb 7 2017

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

Project Member

Comment 5 by bugdroid1@chromium.org, Feb 12 2017

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

Status: Fixed (was: Started)

Sign in to add a comment