Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(438)

Issue 2423513002: Simplify incremental paint invalidation (Closed)

Created:
4 years, 2 months ago by Xianzhu
Modified:
4 years, 2 months 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 ...
4 years, 2 months ago (2016-10-14 22:34:30 UTC) #7
Xianzhu
ping...
4 years, 2 months 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 ...
4 years, 2 months 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: > ...
4 years, 2 months 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 ...
4 years, 2 months 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 ...
4 years, 2 months ago (2016-10-21 17:53:38 UTC) #17
chrishtr
lgtm
4 years, 2 months 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
4 years, 2 months ago (2016-10-21 22:02:35 UTC) #23
commit-bot: I haz the power
Committed patchset #3 (id:40001)
4 years, 2 months ago (2016-10-21 22:19:54 UTC) #24
commit-bot: I haz the power
4 years, 2 months 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 408576698