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

Issue 1774193002: New paint invalidation using paint property tree walk (Closed)

Created:
4 years, 9 months ago by Xianzhu
Modified:
4 years, 6 months ago
Reviewers:
chrishtr, pdr., trchen
CC:
blink-reviews, blink-reviews-dom_chromium.org, blink-reviews-layout_chromium.org, blink-reviews-paint_chromium.org, blink-reviews-wtf_chromium.org, chromium-reviews, dglazkov+blink, dshwang, krit, eae+blinkwatch, f(malita), fs, gyuyoung2, jchaffraix+rendering, kouhei+svg_chromium.org, leviw+renderwatch, Mikhail, pdr+svgwatchlist_chromium.org, pdr+renderingwatchlist_chromium.org, rwlbuis, Stephen Chennney, sof, slimming-paint-reviews_chromium.org, szager+layoutwatch_chromium.org, zoltan1
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

New paint invalidation using paint property tree walk It's under control of RuntimeEnabledFeatures::slimmingPaintInvalidation. Now we call LayoutObject::invalidatePaintIfNeeded() from PaintPropertyTreeBuilder with paintInvalidationContainer and paintOffset tracked during PaintPropertyTreeBuilder tree walk. This version still misses many pieces, like transform, clipping, scrolling, etc. Will fix them incrementally. Design doc: Chapter "New paint invalidation in SPv1" in https://docs.google.com/document/d/1M669yu7nsF9Wrkm7nQFi3Pp2r-QmCMqm4K7fPPo-doA/edit?usp=sharing BUG=591199

Patch Set 1 #

Patch Set 2 : #

Patch Set 3 : #

Patch Set 4 : #

Patch Set 5 : #

Patch Set 6 : Optional::get() #

Patch Set 7 : #

Patch Set 8 : Correct tracking of paintInvalidationContainer #

Total comments: 13

Patch Set 9 : #

Total comments: 12

Patch Set 10 : #

Total comments: 7
Unified diffs Side-by-side diffs Delta from patch set Stats (+538 lines, -1238 lines) Patch
M third_party/WebKit/LayoutTests/TestExpectations View 1 2 3 4 5 6 7 8 6 chunks +217 lines, -0 lines 0 comments Download
M third_party/WebKit/LayoutTests/VirtualTestSuites View 1 2 3 4 1 chunk +18 lines, -0 lines 0 comments Download
A third_party/WebKit/LayoutTests/virtual/spinvalidation/compositing/repaint/README.txt View 1 1 chunk +1 line, -0 lines 0 comments Download
A third_party/WebKit/LayoutTests/virtual/spinvalidation/fast/repaint/README.txt View 1 1 chunk +1 line, -0 lines 0 comments Download
A third_party/WebKit/LayoutTests/virtual/spinvalidation/paint/README.txt View 1 1 chunk +1 line, -0 lines 0 comments Download
M third_party/WebKit/Source/core/core.gypi View 1 2 3 4 5 6 7 8 2 chunks +3 lines, -3 lines 0 comments Download
M third_party/WebKit/Source/core/dom/DocumentLifecycle.h View 1 2 3 4 5 6 7 8 4 chunks +6 lines, -8 lines 0 comments Download
M third_party/WebKit/Source/core/dom/DocumentLifecycle.cpp View 1 2 3 4 5 6 7 8 3 chunks +14 lines, -8 lines 0 comments Download
M third_party/WebKit/Source/core/frame/FrameView.cpp View 1 2 3 4 5 6 7 8 7 chunks +19 lines, -8 lines 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutBox.cpp View 1 2 3 4 5 6 7 8 1 chunk +0 lines, -6 lines 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutBoxModelObject.cpp View 1 2 3 4 5 6 7 8 1 chunk +1 line, -0 lines 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutObject.h View 1 2 3 4 5 6 7 8 9 7 chunks +11 lines, -29 lines 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutObject.cpp View 1 2 3 4 5 6 7 8 9 chunks +22 lines, -13 lines 0 comments Download
M third_party/WebKit/Source/core/layout/PaintInvalidationState.h View 1 2 3 4 5 6 7 8 4 chunks +9 lines, -5 lines 0 comments Download
M third_party/WebKit/Source/core/layout/PaintInvalidationState.cpp View 1 2 3 4 4 chunks +32 lines, -4 lines 0 comments Download
M third_party/WebKit/Source/core/layout/svg/LayoutSVGInline.cpp View 1 chunk +1 line, -0 lines 0 comments Download
M third_party/WebKit/Source/core/layout/svg/LayoutSVGInlineText.cpp View 1 2 3 4 5 6 7 8 1 chunk +2 lines, -1 line 0 comments Download
M third_party/WebKit/Source/core/layout/svg/LayoutSVGText.cpp View 1 2 3 4 1 chunk +1 line, -0 lines 0 comments Download
M third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.h View 1 2 3 4 5 6 7 8 1 chunk +0 lines, -30 lines 0 comments Download
D third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.cpp View 1 2 3 4 5 6 7 8 1 chunk +0 lines, -364 lines 0 comments Download
D third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilderTest.cpp View 1 2 3 4 5 6 7 8 1 chunk +0 lines, -682 lines 0 comments Download
A third_party/WebKit/Source/core/paint/PrePaintTreeWalk.h View 1 2 3 4 5 6 7 8 1 chunk +42 lines, -0 lines 0 comments Download
A + third_party/WebKit/Source/core/paint/PrePaintTreeWalk.cpp View 1 2 3 4 5 6 7 8 13 chunks +136 lines, -78 lines 7 comments Download
A + third_party/WebKit/Source/core/paint/PrePaintTreeWalkTest.cpp View 1 2 3 4 5 6 7 8 0 chunks +-1 lines, --1 lines 0 comments Download
M third_party/WebKit/Source/wtf/Optional.h View 1 2 3 4 5 1 chunk +2 lines, -0 lines 0 comments Download

Depends on Patchset:

Messages

Total messages: 25 (6 generated)
Xianzhu
4 years, 9 months ago (2016-03-10 00:49:42 UTC) #3
chrishtr
A brief design doc on this & consensus is needed before committing code. I'd like ...
4 years, 9 months ago (2016-03-10 17:10:51 UTC) #4
Xianzhu
On 2016/03/10 17:10:51, chrishtr wrote: > A brief design doc on this & consensus is ...
4 years, 9 months ago (2016-03-10 17:56:19 UTC) #6
Xianzhu
Just noticed that the paintInvalidationContainer tracking method in this CL is wrong because it still ...
4 years, 9 months ago (2016-03-10 21:27:31 UTC) #9
Xianzhu
On 2016/03/10 21:27:31, Xianzhu wrote: > Just noticed that the paintInvalidationContainer tracking method in this ...
4 years, 9 months ago (2016-03-10 22:39:08 UTC) #11
pdr.
https://codereview.chromium.org/1774193002/diff/180001/third_party/WebKit/Source/core/layout/PaintInvalidationState.h File third_party/WebKit/Source/core/layout/PaintInvalidationState.h (right): https://codereview.chromium.org/1774193002/diff/180001/third_party/WebKit/Source/core/layout/PaintInvalidationState.h#newcode35 third_party/WebKit/Source/core/layout/PaintInvalidationState.h:35: // For slimmingPaintInvalidation. Can you add the runtime enabled ...
4 years, 9 months ago (2016-03-11 02:56:41 UTC) #12
Xianzhu
https://codereview.chromium.org/1774193002/diff/180001/third_party/WebKit/Source/core/layout/PaintInvalidationState.h File third_party/WebKit/Source/core/layout/PaintInvalidationState.h (right): https://codereview.chromium.org/1774193002/diff/180001/third_party/WebKit/Source/core/layout/PaintInvalidationState.h#newcode35 third_party/WebKit/Source/core/layout/PaintInvalidationState.h:35: // For slimmingPaintInvalidation. On 2016/03/11 02:56:41, pdr wrote: > ...
4 years, 9 months ago (2016-03-11 20:03:45 UTC) #13
Xianzhu
About renaming of PaintPropertyTreeBuilder: I included the renaming in the latest patch set. If it ...
4 years, 9 months ago (2016-03-11 20:04:47 UTC) #14
chrishtr
https://codereview.chromium.org/1774193002/diff/180001/third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.h File third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.h (right): https://codereview.chromium.org/1774193002/diff/180001/third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.h#newcode28 third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.h:28: private: On 2016/03/11 at 20:03:45, Xianzhu wrote: > On ...
4 years, 9 months ago (2016-03-11 21:30:00 UTC) #15
Xianzhu
https://codereview.chromium.org/1774193002/diff/200001/third_party/WebKit/LayoutTests/VirtualTestSuites File third_party/WebKit/LayoutTests/VirtualTestSuites (right): https://codereview.chromium.org/1774193002/diff/200001/third_party/WebKit/LayoutTests/VirtualTestSuites#newcode237 third_party/WebKit/LayoutTests/VirtualTestSuites:237: "prefix": "spinvalidation", On 2016/03/11 21:30:00, chrishtr wrote: > How ...
4 years, 9 months ago (2016-03-11 22:01:47 UTC) #16
chrishtr
On 2016/03/11 at 22:01:47, wangxianzhu wrote: > https://codereview.chromium.org/1774193002/diff/200001/third_party/WebKit/LayoutTests/VirtualTestSuites > File third_party/WebKit/LayoutTests/VirtualTestSuites (right): > > https://codereview.chromium.org/1774193002/diff/200001/third_party/WebKit/LayoutTests/VirtualTestSuites#newcode237 ...
4 years, 9 months ago (2016-03-11 22:08:10 UTC) #17
chrishtr
https://codereview.chromium.org/1774193002/diff/200001/third_party/WebKit/Source/core/layout/PaintInvalidationState.h File third_party/WebKit/Source/core/layout/PaintInvalidationState.h (right): https://codereview.chromium.org/1774193002/diff/200001/third_party/WebKit/Source/core/layout/PaintInvalidationState.h#newcode36 third_party/WebKit/Source/core/layout/PaintInvalidationState.h:36: PaintInvalidationState(const PaintInvalidationState* parent, const LayoutObject&, const LayoutBoxModelObject& paintInvalidationContainer, const ...
4 years, 9 months ago (2016-03-11 22:08:18 UTC) #18
Xianzhu
On 2016/03/11 22:08:18, chrishtr wrote: > https://codereview.chromium.org/1774193002/diff/200001/third_party/WebKit/Source/core/layout/PaintInvalidationState.h > File third_party/WebKit/Source/core/layout/PaintInvalidationState.h (right): > > https://codereview.chromium.org/1774193002/diff/200001/third_party/WebKit/Source/core/layout/PaintInvalidationState.h#newcode36 > ...
4 years, 9 months ago (2016-03-11 22:14:35 UTC) #19
chrishtr
On 2016/03/11 at 22:14:35, wangxianzhu wrote: > On 2016/03/11 22:08:18, chrishtr wrote: > > https://codereview.chromium.org/1774193002/diff/200001/third_party/WebKit/Source/core/layout/PaintInvalidationState.h ...
4 years, 9 months ago (2016-03-11 22:39:27 UTC) #20
Xianzhu
On 2016/03/11 22:39:27, chrishtr wrote: > On 2016/03/11 at 22:14:35, wangxianzhu wrote: > > On ...
4 years, 9 months ago (2016-03-11 23:08:19 UTC) #21
trchen
I'm still doing the full review, but here is one early comment. https://codereview.chromium.org/1774193002/diff/220001/third_party/WebKit/Source/core/paint/PrePaintTreeWalk.cpp File third_party/WebKit/Source/core/paint/PrePaintTreeWalk.cpp ...
4 years, 9 months ago (2016-03-11 23:09:39 UTC) #22
chrishtr
On 2016/03/11 at 23:08:19, wangxianzhu wrote: > On 2016/03/11 22:39:27, chrishtr wrote: > > On ...
4 years, 9 months ago (2016-03-11 23:23:46 UTC) #23
trchen
https://codereview.chromium.org/1774193002/diff/220001/third_party/WebKit/Source/core/paint/PrePaintTreeWalk.cpp File third_party/WebKit/Source/core/paint/PrePaintTreeWalk.cpp (right): https://codereview.chromium.org/1774193002/diff/220001/third_party/WebKit/Source/core/paint/PrePaintTreeWalk.cpp#newcode113 third_party/WebKit/Source/core/paint/PrePaintTreeWalk.cpp:113: context.paintInvalidationContainer = context.paintInvalidationContainerForOutOfFlowPositioned; Per the previous comment, it is ...
4 years, 9 months ago (2016-03-11 23:36:19 UTC) #24
pdr.
4 years, 9 months ago (2016-03-12 00:01:33 UTC) #25
On 2016/03/11 at 20:04:47, wangxianzhu wrote:
> About renaming of PaintPropertyTreeBuilder: I included the renaming in the
latest patch set. If it looks good to you, I will create a separate patch
containing the renaming only, to make git history tracking happy.

+1, I think this is a great idea.

Powered by Google App Engine
This is Rietveld 408576698