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

Issue 2495893002: Implement incremental paint property tree rebuilding (Closed)

Created:
4 years, 1 month ago by pdr.
Modified:
4 years, 1 month ago
Reviewers:
chrishtr, Xianzhu
CC:
ajuma+watch_chromium.org, blink-reviews, blink-reviews-layout_chromium.org, blink-reviews-paint_chromium.org, blink-reviews-platform-graphics_chromium.org, Rik, chromium-reviews, danakj+watch_chromium.org, dshwang, drott+blinkwatch_chromium.org, krit, eae+blinkwatch, f(malita), jbroman, jchaffraix+rendering, Justin Novosad, leviw+renderwatch, pdr+graphicswatchlist_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

Implement incremental paint property tree rebuilding This patch implements incremental paint property tree rebuilding based on an invalidation scheme similar to paint invalidation. When property- affecting values change we set FrameView/LayoutObject as needing a property tree update. At the moment all property node updates force the entire property subtree to be rebuilt, but TODOs have been added to add more granular updates. When no property invalidation occurs we still need to walk the property trees update the builder context, but we can re-use existing nodes instead of reconstructing them. An underinvalidation checking mechanism has been added for debug builds to catch cases where we miss a call to set an object as needing a property tree update. Design doc: https://docs.google.com/document/d/1_GkBfvameyhnLV7ODIRsOoTedQEG5liAcHwAxmwS-Vk/view Performance results on blink_perf.Paint[1]: color-changes.html: 0% large-table-background-change-with-invisible-collapsed-borders.html: -15.92% large-table-background-change-with-visible-collapsed-borders.html: -9.37% large-table-collapsed-border-change.html: -5.42% large-table-collapsed-border-change-with-backgrounds.html: 0% large-table-collapsed-border-change-with-text.html: -4.56% large-table-repaint.html: 0% paint-offset-changes.html: -2.68% transform-changes.html: -7.40% [1] tools/perf/run_benchmark blink_perf.paint --browser=content-shell-release --pageset-repeat=5 --extra-browser-args=--enable-slimming-paint-v2 BUG=645667 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 Committed: https://crrev.com/1f505949fff2006a80f3883f129c580cf423c67c Cr-Commit-Position: refs/heads/master@{#431732}

Patch Set 1 #

Total comments: 4

Patch Set 2 : Suppress main thread scrolling invalidation failures #

Unified diffs Side-by-side diffs Delta from patch set Stats (+867 lines, -265 lines) Patch
M third_party/WebKit/Source/core/BUILD.gn View 1 chunk +1 line, -0 lines 0 comments Download
M third_party/WebKit/Source/core/frame/FrameView.h View 2 chunks +15 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/frame/FrameView.cpp View 3 chunks +12 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutObject.h View 1 4 chunks +30 lines, -1 line 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutObject.cpp View 1 1 chunk +5 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/paint/BUILD.gn View 1 chunk +1 line, -0 lines 0 comments Download
A third_party/WebKit/Source/core/paint/FindPropertiesNeedingUpdate.h View 1 chunk +144 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/paint/ObjectPaintProperties.h View 1 chunk +42 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.h View 1 chunk +5 lines, -6 lines 0 comments Download
M third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.cpp View 1 19 chunks +302 lines, -250 lines 0 comments Download
M third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilderTest.cpp View 1 2 chunks +10 lines, -4 lines 0 comments Download
M third_party/WebKit/Source/core/paint/PrePaintTreeWalk.cpp View 5 chunks +55 lines, -4 lines 0 comments Download
A third_party/WebKit/Source/core/paint/PrePaintTreeWalkTest.cpp View 1 chunk +155 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/platform/graphics/CompositorFilterOperations.h View 1 chunk +5 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/platform/graphics/CompositorFilterOperations.cpp View 1 chunk +5 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/platform/graphics/paint/ClipPaintPropertyNode.h View 1 chunk +17 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/platform/graphics/paint/EffectPaintPropertyNode.h View 1 chunk +18 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/platform/graphics/paint/ScrollPaintPropertyNode.h View 1 1 chunk +26 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/platform/graphics/paint/TransformPaintPropertyNode.h View 1 chunk +19 lines, -0 lines 0 comments Download

Messages

Total messages: 19 (8 generated)
pdr.
Ready for review! This patch has a great effect on perf, waiting for https://codereview.chromium.org/2492073002/ to ...
4 years, 1 month ago (2016-11-11 19:24:45 UTC) #2
pdr.
Performance results on blink_perf.Paint[1]: color-changes.html: 0% large-table-background-change-with-invisible-collapsed-borders.html: -15.92% large-table-background-change-with-visible-collapsed-borders.html: -9.37% large-table-collapsed-border-change.html: -5.42% large-table-collapsed-border-change-with-backgrounds.html: 0% large-table-collapsed-border-change-with-text.html: ...
4 years, 1 month ago (2016-11-11 22:33:24 UTC) #4
Xianzhu
On 2016/11/11 22:33:24, pdr. wrote: > Performance results on blink_perf.Paint[1]: > color-changes.html: 0% > large-table-background-change-with-invisible-collapsed-borders.html: ...
4 years, 1 month ago (2016-11-11 22:44:12 UTC) #5
pdr.
On 2016/11/11 at 22:44:12, wangxianzhu wrote: > On 2016/11/11 22:33:24, pdr. wrote: > > Performance ...
4 years, 1 month ago (2016-11-11 23:16:17 UTC) #6
Xianzhu
On 2016/11/11 23:16:17, pdr. wrote: > On 2016/11/11 at 22:44:12, wangxianzhu wrote: > > On ...
4 years, 1 month ago (2016-11-11 23:39:38 UTC) #7
pdr.
Yeah, this is the same patch rebased to ToT. It should be much easier to ...
4 years, 1 month ago (2016-11-11 23:50:27 UTC) #8
Xianzhu
lgtm https://codereview.chromium.org/2495893002/diff/1/third_party/WebKit/Source/core/layout/LayoutObject.cpp File third_party/WebKit/Source/core/layout/LayoutObject.cpp (right): https://codereview.chromium.org/2495893002/diff/1/third_party/WebKit/Source/core/layout/LayoutObject.cpp#newcode1483 third_party/WebKit/Source/core/layout/LayoutObject.cpp:1483: // TODO(pdr): Also update in the non-spv2 codepath? ...
4 years, 1 month ago (2016-11-12 00:30:48 UTC) #11
pdr.
On 2016/11/12 at 00:30:48, wangxianzhu wrote: Thanks! In we go. Several followup patches coming next ...
4 years, 1 month ago (2016-11-12 00:47:46 UTC) #12
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/2495893002/20001
4 years, 1 month ago (2016-11-12 01:39:47 UTC) #16
commit-bot: I haz the power
Committed patchset #2 (id:20001)
4 years, 1 month ago (2016-11-12 01:45:32 UTC) #17
commit-bot: I haz the power
4 years, 1 month ago (2016-11-12 01:48:26 UTC) #19
Message was sent while issue was closed.
Patchset 2 (id:??) landed as
https://crrev.com/1f505949fff2006a80f3883f129c580cf423c67c
Cr-Commit-Position: refs/heads/master@{#431732}

Powered by Google App Engine
This is Rietveld 408576698