Chromium Code Reviews
Help | Chromium Project | Gerrit Changes | Sign in
(6)

Issue 2423513002: Simplify incremental paint invalidation (Closed)

Created:
1 year, 1 month ago by Xianzhu
Modified:
1 year, 1 month ago
Reviewers:
chrishtr
CC:
blink-reviews, blink-reviews-layout_chromium.org, blink-reviews-paint_chromium.org, chromium-reviews, dshwang, krit, eae+blinkwatch, f(malita), fs, gyuyoung2, jchaffraix+rendering, kouhei+svg_chromium.org, leviw+renderwatch, pdr+svgwatchlist_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

Simplify incremental paint invalidation - Incremental paint invalidation now applies to LayoutBoxes only. For other objects, do full paint invalidation. - Do full paint invalidation if the object has border radius. - Simplfied code for incremental paint invalidation. This will simplify spv2 raster invalidation when we implement the same incremental invalidation as spv1. Also make it ready for slimmingPaintInvalidation paint invalidation rect subpixel snapping. Will change the extraWidth/extraHeight parameter from 0 to 1 for slimmingPaintInvalidation to ensure the subpixel along the edge of the delta between the old/new rects. CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 Committed: https://crrev.com/7ef32bf9ec1c65dc679f54ea9c686976616e87f2 Cr-Commit-Position: refs/heads/master@{#426914}

Patch Set 1 #

Total comments: 2

Patch Set 2 : Test #

Total comments: 2

Patch Set 3 : Update test and rebaseline layout tests #

Unified diffs Side-by-side diffs Delta from patch set Stats (+445 lines, -748 lines) Patch
M third_party/WebKit/LayoutTests/paint/invalidation/align-items-change-expected.txt View 1 2 1 chunk +0 lines, -10 lines 0 comments Download
M third_party/WebKit/LayoutTests/paint/invalidation/align-self-change-expected.txt View 1 2 1 chunk +0 lines, -10 lines 0 comments Download
M third_party/WebKit/LayoutTests/paint/invalidation/border-radius-repaint-2-expected.txt View 1 2 2 chunks +3 lines, -8 lines 0 comments Download
M third_party/WebKit/LayoutTests/paint/invalidation/border-radius-repaint-expected.txt View 1 2 3 chunks +6 lines, -16 lines 0 comments Download
M third_party/WebKit/LayoutTests/paint/invalidation/border-radius-without-border-expected.txt View 1 2 2 chunks +6 lines, -16 lines 0 comments Download
M third_party/WebKit/LayoutTests/paint/invalidation/border-repaint-glitch-expected.txt View 1 2 1 chunk +0 lines, -10 lines 0 comments Download
M third_party/WebKit/LayoutTests/paint/invalidation/box-sizing-expected.txt View 1 2 1 chunk +0 lines, -10 lines 0 comments Download
M third_party/WebKit/LayoutTests/paint/invalidation/compositing/resize-repaint-expected.txt View 1 2 1 chunk +0 lines, -5 lines 0 comments Download
M third_party/WebKit/LayoutTests/paint/invalidation/content-into-overflow-expected.txt View 1 2 2 chunks +0 lines, -10 lines 0 comments Download
M third_party/WebKit/LayoutTests/paint/invalidation/fixed-under-composited-absolute-scrolled-expected.txt View 1 2 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/LayoutTests/paint/invalidation/overflow-into-content-expected.txt View 1 2 2 chunks +0 lines, -10 lines 0 comments Download
M third_party/WebKit/LayoutTests/paint/invalidation/repaint-resized-overflow-expected.txt View 1 2 1 chunk +0 lines, -5 lines 0 comments Download
M third_party/WebKit/LayoutTests/paint/invalidation/resize-with-border-clipped-expected.txt View 1 2 1 chunk +0 lines, -10 lines 0 comments Download
M third_party/WebKit/LayoutTests/paint/invalidation/resize-with-border-expected.txt View 1 2 1 chunk +0 lines, -5 lines 0 comments Download
M third_party/WebKit/LayoutTests/paint/invalidation/subtree-layoutstate-transform-expected.txt View 1 2 1 chunk +1 line, -6 lines 0 comments Download
M third_party/WebKit/LayoutTests/paint/invalidation/table-section-repaint-expected.txt View 1 2 1 chunk +0 lines, -5 lines 0 comments Download
M third_party/WebKit/LayoutTests/paint/invalidation/table/cached-cell-append-expected.txt View 1 2 2 chunks +0 lines, -10 lines 0 comments Download
M third_party/WebKit/LayoutTests/paint/invalidation/table/cached-change-cell-border-width-expected.txt View 1 2 2 chunks +0 lines, -10 lines 0 comments Download
M third_party/WebKit/LayoutTests/paint/invalidation/table/cached-change-col-border-width-expected.txt View 1 2 2 chunks +0 lines, -10 lines 0 comments Download
M third_party/WebKit/LayoutTests/paint/invalidation/table/cached-change-colgroup-border-width-expected.txt View 1 2 1 chunk +0 lines, -5 lines 0 comments Download
M third_party/WebKit/LayoutTests/paint/invalidation/table/cached-change-row-border-width-expected.txt View 1 2 2 chunks +0 lines, -10 lines 0 comments Download
M third_party/WebKit/LayoutTests/paint/invalidation/table/cached-change-tbody-border-width-expected.txt View 1 2 2 chunks +0 lines, -10 lines 0 comments Download
M third_party/WebKit/LayoutTests/paint/invalidation/transform-disable-layoutstate-expected.txt View 1 2 1 chunk +0 lines, -5 lines 0 comments Download
M third_party/WebKit/LayoutTests/platform/linux/compositing/squashing/selection-repaint-with-gaps-expected.txt View 1 2 5 chunks +18 lines, -18 lines 0 comments Download
M third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/border-radius-repaint-expected.txt View 1 2 3 chunks +6 lines, -16 lines 0 comments Download
M third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/border-repaint-glitch-expected.txt View 1 2 1 chunk +0 lines, -10 lines 0 comments Download
M third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/japanese-rl-selection-clear-expected.txt View 1 2 2 chunks +17 lines, -17 lines 0 comments Download
M third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/japanese-rl-selection-repaint-expected.txt View 1 2 2 chunks +13 lines, -13 lines 0 comments Download
M third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/repaint-resized-overflow-expected.txt View 1 2 1 chunk +0 lines, -5 lines 0 comments Download
M third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/selection-partial-invalidation-between-blocks-expected.txt View 1 2 3 chunks +10 lines, -10 lines 0 comments Download
M third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/subtree-layoutstate-transform-expected.txt View 1 2 1 chunk +1 line, -6 lines 0 comments Download
M third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/table-collapsed-border-expected.txt View 1 2 1 chunk +0 lines, -5 lines 0 comments Download
M third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/table-shrink-row-repaint-expected.txt View 1 2 1 chunk +0 lines, -5 lines 0 comments Download
M third_party/WebKit/LayoutTests/platform/mac-mac10.9/paint/invalidation/japanese-rl-selection-repaint-expected.txt View 1 2 2 chunks +14 lines, -14 lines 0 comments Download
M third_party/WebKit/LayoutTests/platform/mac/compositing/squashing/selection-repaint-with-gaps-expected.txt View 1 2 5 chunks +18 lines, -18 lines 0 comments Download
M third_party/WebKit/LayoutTests/platform/mac/paint/invalidation/japanese-rl-selection-clear-expected.txt View 1 2 2 chunks +18 lines, -18 lines 0 comments Download
M third_party/WebKit/LayoutTests/platform/mac/paint/invalidation/japanese-rl-selection-repaint-expected.txt View 1 2 2 chunks +14 lines, -14 lines 0 comments Download
M third_party/WebKit/LayoutTests/platform/mac/paint/invalidation/line-flow-with-floats-2-expected.txt View 1 2 1 chunk +0 lines, -5 lines 0 comments Download
M third_party/WebKit/LayoutTests/platform/mac/paint/invalidation/line-flow-with-floats-9-expected.txt View 1 2 1 chunk +0 lines, -5 lines 0 comments Download
M third_party/WebKit/LayoutTests/platform/mac/paint/invalidation/selection-partial-invalidation-between-blocks-expected.txt View 1 2 3 chunks +10 lines, -10 lines 0 comments Download
M third_party/WebKit/LayoutTests/platform/mac/paint/invalidation/selection/invalidation-rect-includes-newline-expected.txt View 1 2 2 chunks +7 lines, -7 lines 0 comments Download
M third_party/WebKit/LayoutTests/platform/mac/paint/invalidation/selection/invalidation-rect-includes-newline-for-vertical-lr-expected.txt View 1 2 2 chunks +5 lines, -5 lines 0 comments Download
M third_party/WebKit/LayoutTests/platform/mac/paint/invalidation/selection/invalidation-rect-includes-newline-for-vertical-rl-expected.txt View 1 2 2 chunks +5 lines, -5 lines 0 comments Download
M third_party/WebKit/LayoutTests/platform/mac/paint/invalidation/table-collapsed-border-expected.txt View 1 2 1 chunk +0 lines, -5 lines 0 comments Download
M third_party/WebKit/LayoutTests/platform/mac/paint/invalidation/table-shrink-row-repaint-expected.txt View 1 2 1 chunk +0 lines, -5 lines 0 comments Download
M third_party/WebKit/LayoutTests/platform/win/compositing/squashing/selection-repaint-with-gaps-expected.txt View 1 2 5 chunks +18 lines, -18 lines 0 comments Download
M third_party/WebKit/LayoutTests/platform/win/paint/invalidation/japanese-rl-selection-clear-expected.txt View 1 2 2 chunks +18 lines, -18 lines 0 comments Download
M third_party/WebKit/LayoutTests/platform/win/paint/invalidation/japanese-rl-selection-repaint-expected.txt View 1 2 2 chunks +14 lines, -14 lines 0 comments Download
M third_party/WebKit/LayoutTests/platform/win/paint/invalidation/line-flow-with-floats-2-expected.txt View 1 2 1 chunk +0 lines, -5 lines 0 comments Download
M third_party/WebKit/LayoutTests/platform/win/paint/invalidation/line-flow-with-floats-9-expected.txt View 1 2 1 chunk +0 lines, -5 lines 0 comments Download
M third_party/WebKit/LayoutTests/platform/win/paint/invalidation/selection-partial-invalidation-between-blocks-expected.txt View 1 2 3 chunks +10 lines, -10 lines 0 comments Download
M third_party/WebKit/LayoutTests/platform/win/paint/invalidation/selection/invalidation-rect-includes-newline-expected.txt View 1 2 2 chunks +6 lines, -6 lines 0 comments Download
M third_party/WebKit/LayoutTests/platform/win/paint/invalidation/selection/invalidation-rect-includes-newline-for-vertical-lr-expected.txt View 1 2 2 chunks +6 lines, -6 lines 0 comments Download
M third_party/WebKit/LayoutTests/platform/win/paint/invalidation/selection/invalidation-rect-includes-newline-for-vertical-rl-expected.txt View 1 2 2 chunks +6 lines, -6 lines 0 comments Download
M third_party/WebKit/LayoutTests/platform/win/paint/invalidation/table-collapsed-border-expected.txt View 1 2 1 chunk +0 lines, -5 lines 0 comments Download
M third_party/WebKit/LayoutTests/platform/win/paint/invalidation/table-shrink-row-repaint-expected.txt View 1 2 1 chunk +0 lines, -5 lines 0 comments Download
M third_party/WebKit/LayoutTests/platform/win7/paint/invalidation/japanese-rl-selection-clear-expected.txt View 1 2 2 chunks +18 lines, -18 lines 0 comments Download
M third_party/WebKit/LayoutTests/platform/win7/paint/invalidation/japanese-rl-selection-repaint-expected.txt View 1 2 2 chunks +14 lines, -14 lines 0 comments Download
M third_party/WebKit/Source/core/BUILD.gn View 1 1 chunk +1 line, -0 lines 0 comments Download
M third_party/WebKit/Source/core/layout/svg/LayoutSVGModelObject.h View 1 chunk +0 lines, -3 lines 0 comments Download
M third_party/WebKit/Source/core/layout/svg/LayoutSVGModelObject.cpp View 2 chunks +0 lines, -7 lines 0 comments Download
M third_party/WebKit/Source/core/paint/BUILD.gn View 1 chunk +0 lines, -2 lines 0 comments Download
M third_party/WebKit/Source/core/paint/BoxPaintInvalidator.cpp View 4 chunks +60 lines, -82 lines 0 comments Download
A third_party/WebKit/Source/core/paint/BoxPaintInvalidatorTest.cpp View 1 2 1 chunk +89 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/paint/ObjectPaintInvalidator.cpp View 3 chunks +4 lines, -46 lines 0 comments Download
D third_party/WebKit/Source/core/paint/SVGModelObjectPaintInvalidator.h View 1 chunk +0 lines, -33 lines 0 comments Download
D third_party/WebKit/Source/core/paint/SVGModelObjectPaintInvalidator.cpp View 1 chunk +0 lines, -29 lines 0 comments Download
M third_party/WebKit/Source/platform/graphics/GraphicsLayer.h View 1 2 2 chunks +2 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/platform/graphics/GraphicsLayer.cpp View 1 2 1 chunk +6 lines, -3 lines 0 comments Download

Messages

Total messages: 26 (16 generated)
Xianzhu
I have checked the layout test results. All of them look legit except for paint/invalidation/fixed-under-composited-absolute-scrolled.html ...
1 year, 1 month ago (2016-10-14 22:34:30 UTC) #7
Xianzhu
ping...
1 year, 1 month ago (2016-10-20 16:36:31 UTC) #8
chrishtr
https://codereview.chromium.org/2423513002/diff/1/third_party/WebKit/Source/core/paint/BoxPaintInvalidator.cpp File third_party/WebKit/Source/core/paint/BoxPaintInvalidator.cpp (right): https://codereview.chromium.org/2423513002/diff/1/third_party/WebKit/Source/core/paint/BoxPaintInvalidator.cpp#newcode68 third_party/WebKit/Source/core/paint/BoxPaintInvalidator.cpp:68: DCHECK(m_context.oldBounds.location() == m_context.newBounds.location()); Could you add unittests to the ...
1 year, 1 month ago (2016-10-20 18:15:44 UTC) #9
Xianzhu
https://codereview.chromium.org/2423513002/diff/1/third_party/WebKit/Source/core/paint/BoxPaintInvalidator.cpp File third_party/WebKit/Source/core/paint/BoxPaintInvalidator.cpp (right): https://codereview.chromium.org/2423513002/diff/1/third_party/WebKit/Source/core/paint/BoxPaintInvalidator.cpp#newcode68 third_party/WebKit/Source/core/paint/BoxPaintInvalidator.cpp:68: DCHECK(m_context.oldBounds.location() == m_context.newBounds.location()); On 2016/10/20 18:15:44, chrishtr wrote: > ...
1 year, 1 month ago (2016-10-21 00:19:49 UTC) #12
chrishtr
https://codereview.chromium.org/2423513002/diff/20001/third_party/WebKit/Source/core/paint/BoxPaintInvalidatorTest.cpp File third_party/WebKit/Source/core/paint/BoxPaintInvalidatorTest.cpp (right): https://codereview.chromium.org/2423513002/diff/20001/third_party/WebKit/Source/core/paint/BoxPaintInvalidatorTest.cpp#newcode52 third_party/WebKit/Source/core/paint/BoxPaintInvalidatorTest.cpp:52: EXPECT_EQ(IntRect(60, 0, 60, 240), (*rasterInvalidations)[0].rect); Check that the paint ...
1 year, 1 month ago (2016-10-21 17:18:27 UTC) #15
Xianzhu
https://codereview.chromium.org/2423513002/diff/20001/third_party/WebKit/Source/core/paint/BoxPaintInvalidatorTest.cpp File third_party/WebKit/Source/core/paint/BoxPaintInvalidatorTest.cpp (right): https://codereview.chromium.org/2423513002/diff/20001/third_party/WebKit/Source/core/paint/BoxPaintInvalidatorTest.cpp#newcode52 third_party/WebKit/Source/core/paint/BoxPaintInvalidatorTest.cpp:52: EXPECT_EQ(IntRect(60, 0, 60, 240), (*rasterInvalidations)[0].rect); On 2016/10/21 17:18:27, chrishtr ...
1 year, 1 month ago (2016-10-21 17:53:38 UTC) #17
chrishtr
lgtm
1 year, 1 month ago (2016-10-21 17:55:20 UTC) #19
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2423513002/40001
1 year, 1 month ago (2016-10-21 22:02:35 UTC) #23
commit-bot: I haz the power
Committed patchset #3 (id:40001)
1 year, 1 month ago (2016-10-21 22:19:54 UTC) #24
commit-bot: I haz the power
1 year, 1 month ago (2016-10-21 22:26:29 UTC) #26
Message was sent while issue was closed.
Patchset 3 (id:??) landed as
https://crrev.com/7ef32bf9ec1c65dc679f54ea9c686976616e87f2
Cr-Commit-Position: refs/heads/master@{#426914}

Powered by Google App Engine
This is Rietveld efc10ee0f