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

Issue 2449953005: [SPInvalidation] Handle pixel-snapping of paint invalidation rects (Closed)

Created:
4 years, 1 month ago by Xianzhu
Modified:
4 years, 1 month ago
Reviewers:
pdr.
CC:
blink-reviews, blink-reviews-layout_chromium.org, blink-reviews-paint_chromium.org, chromium-reviews, dshwang, eae+blinkwatch, jchaffraix+rendering, leviw+renderwatch, pdr+renderingwatchlist_chromium.org, szager+layoutwatch_chromium.org, zoltan1
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

[SPInvalidation] Handle pixel-snapping of paint invalidation rects In SlimmingPaintInvalidation mode we can snap a paint invalidation rect to whole pixels more accurately by applying paint offset to the local paint invalidation rect and expanding the rect to whole pixels before mapping it to backing, as discussed in https://bugs.chromium.org/p/chromium/issues/detail?id=648769#c6. This causes a new issue that the paint invalidation rect may cover extra pixels causing incremental invalidation not applicable. To avoid the issue, now force full paint invalidation in the case. Also confirmed that our current handling of SVG pixel snapping is already correct. In PaintPropertyTreeBuilder, we bake the current paint offset into transformToPixelSnappedBorderBox() of SVGRoot which correctly handles pixel snapping. For SVG foreign objects, pixel snapping of geometries is done during layout. BUG=648769 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 Committed: https://crrev.com/8f9c94471ef61f9bc6ddd7ddb3b485c3b76b30cd Cr-Commit-Position: refs/heads/master@{#427827}

Patch Set 1 #

Total comments: 4

Patch Set 2 : PaintInvalidationRectInBacking struct #

Total comments: 2
Unified diffs Side-by-side diffs Delta from patch set Stats (+299 lines, -140 lines) Patch
M third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=SlimmingPaintInvalidation View 1 chunk +16 lines, -15 lines 0 comments Download
A + third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=SlimmingPaintInvalidation/paint/invalidation/border-radius-repaint-2-expected.txt View 3 chunks +4 lines, -4 lines 0 comments Download
A + third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=SlimmingPaintInvalidation/paint/invalidation/flexbox/repaint-expected.txt View 2 chunks +3 lines, -3 lines 0 comments Download
A + third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=SlimmingPaintInvalidation/paint/invalidation/flexbox/repaint-rtl-column-expected.txt View 3 chunks +6 lines, -6 lines 0 comments Download
A + third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=SlimmingPaintInvalidation/paint/invalidation/line-flow-with-floats-4-expected.txt View 2 chunks +3 lines, -3 lines 0 comments Download
A + third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=SlimmingPaintInvalidation/paint/invalidation/line-flow-with-floats-5-expected.txt View 2 chunks +3 lines, -3 lines 0 comments Download
A + third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=SlimmingPaintInvalidation/paint/invalidation/repaint-during-scroll-with-zoom-expected.txt View 2 chunks +0 lines, -20 lines 0 comments Download
A + third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=SlimmingPaintInvalidation/paint/invalidation/window-resize-percent-html-expected.txt View 6 chunks +12 lines, -12 lines 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutObject.h View 1 5 chunks +15 lines, -2 lines 2 comments Download
M third_party/WebKit/Source/core/layout/LayoutObject.cpp View 1 2 chunks +5 lines, -5 lines 0 comments Download
M third_party/WebKit/Source/core/paint/BoxPaintInvalidator.cpp View 1 6 chunks +35 lines, -24 lines 0 comments Download
M third_party/WebKit/Source/core/paint/BoxPaintInvalidatorTest.cpp View 1 4 chunks +97 lines, -16 lines 0 comments Download
M third_party/WebKit/Source/core/paint/ObjectPaintInvalidator.cpp View 1 4 chunks +8 lines, -6 lines 0 comments Download
M third_party/WebKit/Source/core/paint/PaintInvalidator.h View 1 3 chunks +11 lines, -4 lines 0 comments Download
M third_party/WebKit/Source/core/paint/PaintInvalidator.cpp View 1 8 chunks +42 lines, -17 lines 0 comments Download
M third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilderTest.cpp View 1 1 chunk +35 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/platform/testing/RuntimeEnabledFeaturesTestHelpers.h View 1 chunk +4 lines, -0 lines 0 comments Download

Dependent Patchsets:

Messages

Total messages: 26 (15 generated)
Xianzhu
4 years, 1 month ago (2016-10-25 19:46:30 UTC) #5
pdr.
Overall looks good. https://codereview.chromium.org/2449953005/diff/1/third_party/WebKit/Source/core/layout/LayoutObject.h File third_party/WebKit/Source/core/layout/LayoutObject.h (right): https://codereview.chromium.org/2449953005/diff/1/third_party/WebKit/Source/core/layout/LayoutObject.h#newcode1603 third_party/WebKit/Source/core/layout/LayoutObject.h:1603: bool previousPaintInvalidationRectCoversExtraPixels() const { I wonder ...
4 years, 1 month ago (2016-10-26 05:25:12 UTC) #9
Xianzhu
https://codereview.chromium.org/2449953005/diff/1/third_party/WebKit/Source/core/layout/LayoutObject.h File third_party/WebKit/Source/core/layout/LayoutObject.h (right): https://codereview.chromium.org/2449953005/diff/1/third_party/WebKit/Source/core/layout/LayoutObject.h#newcode1603 third_party/WebKit/Source/core/layout/LayoutObject.h:1603: bool previousPaintInvalidationRectCoversExtraPixels() const { On 2016/10/26 05:25:12, pdr. wrote: ...
4 years, 1 month ago (2016-10-26 18:32:31 UTC) #10
pdr.
Did you forget to upload a new patch?
4 years, 1 month ago (2016-10-26 18:36:22 UTC) #11
Xianzhu
On 2016/10/26 18:36:22, pdr. wrote: > Did you forget to upload a new patch? Sorry. ...
4 years, 1 month ago (2016-10-26 19:10:10 UTC) #12
pdr.
LGTM https://codereview.chromium.org/2449953005/diff/20001/third_party/WebKit/Source/core/layout/LayoutObject.h File third_party/WebKit/Source/core/layout/LayoutObject.h (right): https://codereview.chromium.org/2449953005/diff/20001/third_party/WebKit/Source/core/layout/LayoutObject.h#newcode1714 third_party/WebKit/Source/core/layout/LayoutObject.h:1714: void setPreviousPaintInvalidationRect(const LayoutRect& r, Idea: Could we refactor ...
4 years, 1 month ago (2016-10-26 20:59:29 UTC) #15
Xianzhu
https://codereview.chromium.org/2449953005/diff/20001/third_party/WebKit/Source/core/layout/LayoutObject.h File third_party/WebKit/Source/core/layout/LayoutObject.h (right): https://codereview.chromium.org/2449953005/diff/20001/third_party/WebKit/Source/core/layout/LayoutObject.h#newcode1714 third_party/WebKit/Source/core/layout/LayoutObject.h:1714: void setPreviousPaintInvalidationRect(const LayoutRect& r, On 2016/10/26 20:59:29, pdr. wrote: ...
4 years, 1 month ago (2016-10-26 21:05:21 UTC) #16
pdr.
On 2016/10/26 at 21:05:21, wangxianzhu wrote: > https://codereview.chromium.org/2449953005/diff/20001/third_party/WebKit/Source/core/layout/LayoutObject.h > File third_party/WebKit/Source/core/layout/LayoutObject.h (right): > > https://codereview.chromium.org/2449953005/diff/20001/third_party/WebKit/Source/core/layout/LayoutObject.h#newcode1714 ...
4 years, 1 month ago (2016-10-26 21:06:49 UTC) #17
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/2449953005/20001
4 years, 1 month ago (2016-10-26 21:38:41 UTC) #21
commit-bot: I haz the power
Committed patchset #2 (id:20001)
4 years, 1 month ago (2016-10-26 21:51:09 UTC) #24
commit-bot: I haz the power
4 years, 1 month ago (2016-10-26 21:54:09 UTC) #26
Message was sent while issue was closed.
Patchset 2 (id:??) landed as
https://crrev.com/8f9c94471ef61f9bc6ddd7ddb3b485c3b76b30cd
Cr-Commit-Position: refs/heads/master@{#427827}

Powered by Google App Engine
This is Rietveld 408576698