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

Issue 2706063003: Reduce the requirement for saving previousLocation (Closed)

Created:
3 years, 10 months ago by Xianzhu
Modified:
3 years, 10 months ago
Reviewers:
pdr., wkorman
CC:
chromium-reviews, blink-reviews, dshwang, blink-reviews-paint_chromium.org
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Reduce the requirement for saving previousLocation ObjectPaintInvalidator::previousLocationInBacking() accesses a global map if location was different from visualRect.location() during the last paint invalidation. The percentage of LayoutObjects requiring to save previousLocation was about 5% before SlimmingPaintInvalidation is enabled, but increased to about 37% after. The main reason was that we always called enclosingIntRect() when computing visual rect, causing visualRect.location() was different from location if location is not at whole pixels. Now call enclosingIntRect() only when there is any transform. A minor reason was about empty rects having different location. Location of an empty visual rect actually has no actual functional effect on paint invalidation. Now don't map empty rects, but force its location to be the same as location in backing, so that we always don't need to save previous location of empty visual rects. BUG=685179 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 Review-Url: https://codereview.chromium.org/2706063003 Cr-Commit-Position: refs/heads/master@{#451908} Committed: https://chromium.googlesource.com/chromium/src/+/8cc1739f3017dca5bc97d2721bcdfc903eaec6ec

Patch Set 1 #

Patch Set 2 : - #

Patch Set 3 : - #

Total comments: 9

Patch Set 4 : - #

Unified diffs Side-by-side diffs Delta from patch set Stats (+120 lines, -1219 lines) Patch
M third_party/WebKit/LayoutTests/paint/invalidation/flexbox/repaint-rtl-column-expected.txt View 1 3 chunks +6 lines, -6 lines 0 comments Download
M third_party/WebKit/LayoutTests/paint/invalidation/window-resize-percent-html-expected.txt View 1 6 chunks +12 lines, -12 lines 0 comments Download
D third_party/WebKit/LayoutTests/platform/android/paint/invalidation/bugzilla-5699-expected.txt View 1 2 1 chunk +0 lines, -38 lines 0 comments Download
D third_party/WebKit/LayoutTests/platform/android/paint/invalidation/flexbox/repaint-expected.txt View 1 1 chunk +0 lines, -74 lines 0 comments Download
D third_party/WebKit/LayoutTests/platform/android/paint/invalidation/flexbox/repaint-rtl-column-expected.txt View 1 1 chunk +0 lines, -31 lines 0 comments Download
M third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/flexbox/repaint-expected.txt View 1 2 chunks +3 lines, -3 lines 0 comments Download
D third_party/WebKit/LayoutTests/platform/linux/virtual/disable-spinvalidation/paint/invalidation/bugzilla-5699-expected.txt View 1 2 1 chunk +0 lines, -93 lines 0 comments Download
D third_party/WebKit/LayoutTests/platform/linux/virtual/disable-spinvalidation/paint/invalidation/flexbox/repaint-expected.txt View 1 1 chunk +0 lines, -155 lines 0 comments Download
M third_party/WebKit/LayoutTests/platform/mac/paint/invalidation/bugzilla-5699-expected.txt View 1 2 1 chunk +0 lines, -10 lines 0 comments Download
M third_party/WebKit/LayoutTests/platform/mac/paint/invalidation/flexbox/repaint-expected.txt View 1 2 chunks +8 lines, -3 lines 0 comments Download
D third_party/WebKit/LayoutTests/platform/mac/virtual/disable-spinvalidation/paint/invalidation/bugzilla-5699-expected.txt View 1 2 1 chunk +0 lines, -93 lines 0 comments Download
D third_party/WebKit/LayoutTests/platform/mac/virtual/disable-spinvalidation/paint/invalidation/flexbox/repaint-expected.txt View 1 1 chunk +0 lines, -179 lines 0 comments Download
M third_party/WebKit/LayoutTests/platform/win/paint/invalidation/bugzilla-5699-expected.txt View 1 2 1 chunk +0 lines, -10 lines 0 comments Download
M third_party/WebKit/LayoutTests/platform/win/paint/invalidation/flexbox/repaint-expected.txt View 1 2 chunks +8 lines, -3 lines 0 comments Download
D third_party/WebKit/LayoutTests/platform/win/virtual/disable-spinvalidation/paint/invalidation/bugzilla-5699-expected.txt View 1 2 1 chunk +0 lines, -93 lines 0 comments Download
D third_party/WebKit/LayoutTests/platform/win/virtual/disable-spinvalidation/paint/invalidation/flexbox/repaint-expected.txt View 1 1 chunk +0 lines, -179 lines 0 comments Download
D third_party/WebKit/LayoutTests/virtual/disable-spinvalidation/paint/invalidation/flexbox/repaint-rtl-column-expected.txt View 1 1 chunk +0 lines, -79 lines 0 comments Download
D third_party/WebKit/LayoutTests/virtual/disable-spinvalidation/paint/invalidation/window-resize-percent-html-expected.txt View 1 1 chunk +0 lines, -129 lines 0 comments Download
M third_party/WebKit/Source/core/paint/BoxPaintInvalidatorTest.cpp View 1 2 3 2 chunks +52 lines, -15 lines 0 comments Download
M third_party/WebKit/Source/core/paint/PaintInvalidator.cpp View 1 2 3 4 chunks +31 lines, -14 lines 0 comments Download

Messages

Total messages: 33 (24 generated)
Xianzhu
https://codereview.chromium.org/2706063003/diff/40001/third_party/WebKit/LayoutTests/paint/invalidation/flexbox/repaint-rtl-column-expected.txt File third_party/WebKit/LayoutTests/paint/invalidation/flexbox/repaint-rtl-column-expected.txt (right): https://codereview.chromium.org/2706063003/diff/40001/third_party/WebKit/LayoutTests/paint/invalidation/flexbox/repaint-rtl-column-expected.txt#newcode22 third_party/WebKit/LayoutTests/paint/invalidation/flexbox/repaint-rtl-column-expected.txt:22: "reason": "incremental" This expectation is copied from virtual/disable-spinvalidation. This ...
3 years, 10 months ago (2017-02-21 17:10:23 UTC) #17
wkorman
lgtm https://codereview.chromium.org/2706063003/diff/40001/third_party/WebKit/Source/core/paint/BoxPaintInvalidatorTest.cpp File third_party/WebKit/Source/core/paint/BoxPaintInvalidatorTest.cpp (right): https://codereview.chromium.org/2706063003/diff/40001/third_party/WebKit/Source/core/paint/BoxPaintInvalidatorTest.cpp#newcode147 third_party/WebKit/Source/core/paint/BoxPaintInvalidatorTest.cpp:147: TEST_P(BoxPaintInvalidatorTest, SubpixelVisualRectChagneWithTransform) { Chagne -> Change https://codereview.chromium.org/2706063003/diff/40001/third_party/WebKit/Source/core/paint/PaintInvalidator.cpp File ...
3 years, 10 months ago (2017-02-21 22:54:19 UTC) #18
Xianzhu
https://codereview.chromium.org/2706063003/diff/40001/third_party/WebKit/Source/core/paint/BoxPaintInvalidatorTest.cpp File third_party/WebKit/Source/core/paint/BoxPaintInvalidatorTest.cpp (right): https://codereview.chromium.org/2706063003/diff/40001/third_party/WebKit/Source/core/paint/BoxPaintInvalidatorTest.cpp#newcode147 third_party/WebKit/Source/core/paint/BoxPaintInvalidatorTest.cpp:147: TEST_P(BoxPaintInvalidatorTest, SubpixelVisualRectChagneWithTransform) { On 2017/02/21 22:54:19, wkorman wrote: > ...
3 years, 10 months ago (2017-02-21 23:15:59 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/2706063003/60001
3 years, 10 months ago (2017-02-21 23:18:02 UTC) #22
commit-bot: I haz the power
Try jobs failed on following builders: chromeos_amd64-generic_chromium_compile_only_ng on master.tryserver.chromium.linux (JOB_TIMED_OUT, no build URL) linux_chromium_chromeos_ozone_rel_ng on ...
3 years, 10 months ago (2017-02-22 01:22:01 UTC) #24
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/2706063003/60001
3 years, 10 months ago (2017-02-22 01:53:25 UTC) #26
commit-bot: I haz the power
Try jobs failed on following builders: chromeos_amd64-generic_chromium_compile_only_ng on master.tryserver.chromium.linux (JOB_TIMED_OUT, no build URL) chromium_presubmit on ...
3 years, 10 months ago (2017-02-22 03:56:13 UTC) #28
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/2706063003/60001
3 years, 10 months ago (2017-02-22 05:03:52 UTC) #30
commit-bot: I haz the power
3 years, 10 months ago (2017-02-22 07:12:39 UTC) #33
Message was sent while issue was closed.
Committed patchset #4 (id:60001) as
https://chromium.googlesource.com/chromium/src/+/8cc1739f3017dca5bc97d2721bcd...

Powered by Google App Engine
This is Rietveld 408576698