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

Issue 1294233004: Subtree caching implementation in blink-core (Closed)

Created:
5 years, 4 months ago by Xianzhu
Modified:
5 years, 3 months ago
Reviewers:
chrishtr, pdr., trchen
CC:
blink-reviews, blink-reviews-paint_chromium.org, blink-reviews-rendering, Rik, danakj, dshwang, drott+blinkwatch_chromium.org, krit, eae+blinkwatch, f(malita), jbroman, jchaffraix+rendering, Justin Novosad, leviw+renderwatch, pdr+renderingwatchlist_chromium.org, pdr+graphicswatchlist_chromium.org, rwlbuis, Stephen Chennney, slimming-paint-reviews_chromium.org, szager+layoutwatch_chromium.org, zoltan1
Target Ref:
refs/heads/master
Project:
blink
Visibility:
Public.

Description

Subtree caching implementation in blink-core Add DeprecatedPaintLayer::needsRepaint flag to indicate the repaint requirements of layers. The flags are checked and cleared in DPL::paintLayer(). BUG=410097 TEST=DisplayItemListPaintTestForSlimmingPaintV2.SubsequenceCache Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=201414

Patch Set 1 #

Patch Set 2 : Rebase #

Patch Set 3 : #

Patch Set 4 : Enable SPv2 #

Patch Set 5 : #

Patch Set 6 : s/setSelfNeedsRepaint/setNeedsRepaint/ #

Total comments: 30

Patch Set 7 : Address pdr's comments (will add tests in the next patch) #

Patch Set 8 : Remove return value of clearRepaintFlagsRecursively #

Patch Set 9 : Ready for review #

Total comments: 4

Patch Set 10 : Add a complex-subtree-update test #

Total comments: 4

Patch Set 11 : Based on DPL and simplified subsequence #

Patch Set 12 : Unittest #

Total comments: 8

Patch Set 13 : #

Total comments: 2

Patch Set 14 : Avoid FrameView changes #

Patch Set 15 : Avoid additional lifecycle methods #

Patch Set 16 : Don't mark non-self-painting layers for needsRepaint #

Unified diffs Side-by-side diffs Delta from patch set Stats (+169 lines, -24 lines) Patch
M Source/core/frame/FrameView.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 2 chunks +5 lines, -4 lines 0 comments Download
M Source/core/layout/LayoutObject.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 chunk +3 lines, -0 lines 0 comments Download
M Source/core/paint/DeprecatedPaintLayer.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 4 chunks +11 lines, -1 line 0 comments Download
M Source/core/paint/DeprecatedPaintLayer.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 5 chunks +44 lines, -8 lines 0 comments Download
M Source/core/paint/DeprecatedPaintLayerPainter.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 3 chunks +11 lines, -1 line 0 comments Download
M Source/core/paint/DisplayItemListPaintTest.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 6 chunks +95 lines, -10 lines 0 comments Download

Messages

Total messages: 43 (9 generated)
Xianzhu
5 years, 4 months ago (2015-08-19 16:09:14 UTC) #2
pdr.
+reviewer trchen, could you please take a look too? Lots of comments below but I ...
5 years, 4 months ago (2015-08-20 22:45:06 UTC) #4
Xianzhu
You can review the patch before I add tests in the next patch. https://codereview.chromium.org/1294233004/diff/100001/Source/core/layout/LayoutObject.cpp File ...
5 years, 4 months ago (2015-08-21 00:31:38 UTC) #5
trchen
https://codereview.chromium.org/1294233004/diff/100001/Source/core/layout/LayoutObject.cpp File Source/core/layout/LayoutObject.cpp (right): https://codereview.chromium.org/1294233004/diff/100001/Source/core/layout/LayoutObject.cpp#newcode1225 Source/core/layout/LayoutObject.cpp:1225: container->m_bitfields.setChildNeedsRepaint(true); I think we need to special case fixed-pos ...
5 years, 4 months ago (2015-08-21 00:37:30 UTC) #6
Xianzhu
https://codereview.chromium.org/1294233004/diff/100001/Source/core/layout/LayoutObject.cpp File Source/core/layout/LayoutObject.cpp (right): https://codereview.chromium.org/1294233004/diff/100001/Source/core/layout/LayoutObject.cpp#newcode1225 Source/core/layout/LayoutObject.cpp:1225: container->m_bitfields.setChildNeedsRepaint(true); On 2015/08/21 00:37:29, trchen wrote: > I think ...
5 years, 4 months ago (2015-08-21 04:54:51 UTC) #7
Xianzhu
https://codereview.chromium.org/1294233004/diff/100001/Source/core/layout/LayoutObject.cpp File Source/core/layout/LayoutObject.cpp (right): https://codereview.chromium.org/1294233004/diff/100001/Source/core/layout/LayoutObject.cpp#newcode1225 Source/core/layout/LayoutObject.cpp:1225: container->m_bitfields.setChildNeedsRepaint(true); On 2015/08/21 04:54:51, Xianzhu wrote: > On 2015/08/21 ...
5 years, 4 months ago (2015-08-21 05:52:45 UTC) #8
Xianzhu
Sorry, I just found some bug in SubtreeRecorder, and also need to investigate the paint ...
5 years, 4 months ago (2015-08-21 16:41:41 UTC) #9
Xianzhu
The latest patch is ready for review. Ptal. The tree traversal in painting-order issue is ...
5 years, 4 months ago (2015-08-24 16:54:15 UTC) #10
pdr.
Overall, this is great. This still feels a little under tested. https://codereview.chromium.org/1294233004/diff/160001/Source/platform/graphics/paint/DisplayItemList.cpp File Source/platform/graphics/paint/DisplayItemList.cpp (right): ...
5 years, 4 months ago (2015-08-24 20:30:10 UTC) #11
Xianzhu
Added DisplayItemListTest.CachedNestedSubtreeUpdate unit test. https://codereview.chromium.org/1294233004/diff/160001/Source/platform/graphics/paint/DisplayItemList.cpp File Source/platform/graphics/paint/DisplayItemList.cpp (right): https://codereview.chromium.org/1294233004/diff/160001/Source/platform/graphics/paint/DisplayItemList.cpp#newcode198 Source/platform/graphics/paint/DisplayItemList.cpp:198: // We have indexed all ...
5 years, 4 months ago (2015-08-24 23:03:21 UTC) #12
pdr.
LGTM Pretty cool to see subtree caching implemented without adding much complexity to the core ...
5 years, 4 months ago (2015-08-25 03:20:14 UTC) #13
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1294233004/180001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1294233004/180001
5 years, 4 months ago (2015-08-25 04:08:31 UTC) #15
commit-bot: I haz the power
Try jobs failed on following builders: mac_chromium_rel_ng on tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/mac_chromium_rel_ng/builds/103590)
5 years, 4 months ago (2015-08-25 04:17:44 UTC) #17
trchen
https://codereview.chromium.org/1294233004/diff/180001/Source/core/layout/LayoutObject.cpp File Source/core/layout/LayoutObject.cpp (right): https://codereview.chromium.org/1294233004/diff/180001/Source/core/layout/LayoutObject.cpp#newcode1231 Source/core/layout/LayoutObject.cpp:1231: // object which is not fully controlled by normal ...
5 years, 4 months ago (2015-08-25 06:30:38 UTC) #18
Xianzhu
https://codereview.chromium.org/1294233004/diff/180001/Source/core/layout/LayoutObject.cpp File Source/core/layout/LayoutObject.cpp (right): https://codereview.chromium.org/1294233004/diff/180001/Source/core/layout/LayoutObject.cpp#newcode1231 Source/core/layout/LayoutObject.cpp:1231: // object which is not fully controlled by normal ...
5 years, 3 months ago (2015-08-25 15:55:03 UTC) #19
Xianzhu
On 2015/08/25 15:55:03, Xianzhu wrote: > https://codereview.chromium.org/1294233004/diff/180001/Source/core/layout/LayoutObject.cpp > File Source/core/layout/LayoutObject.cpp (right): > > https://codereview.chromium.org/1294233004/diff/180001/Source/core/layout/LayoutObject.cpp#newcode1231 > ...
5 years, 3 months ago (2015-08-25 16:06:55 UTC) #20
trchen
On 2015/08/25 16:06:55, Xianzhu wrote: > On 2015/08/25 15:55:03, Xianzhu wrote: > > > https://codereview.chromium.org/1294233004/diff/180001/Source/core/layout/LayoutObject.cpp ...
5 years, 3 months ago (2015-08-25 20:40:50 UTC) #21
chrishtr
This CL seems to have two parts: 1. Add repaint flags, which will replace the ...
5 years, 3 months ago (2015-08-25 20:49:52 UTC) #22
Xianzhu
On 2015/08/25 20:49:52, chrishtr wrote: > This CL seems to have two parts: > > ...
5 years, 3 months ago (2015-08-25 21:33:26 UTC) #23
trchen
On 2015/08/25 21:33:26, Xianzhu wrote: > On 2015/08/25 20:49:52, chrishtr wrote: > > This CL ...
5 years, 3 months ago (2015-08-25 21:47:31 UTC) #24
chrishtr
On 2015/08/25 at 21:47:31, trchen wrote: > On 2015/08/25 21:33:26, Xianzhu wrote: > > On ...
5 years, 3 months ago (2015-08-25 22:02:58 UTC) #25
Xianzhu
The new implementation is based on simplified subsequence and DPL. Ptal.
5 years, 3 months ago (2015-08-27 02:08:54 UTC) #26
chrishtr
https://codereview.chromium.org/1294233004/diff/220001/Source/core/frame/FrameView.h File Source/core/frame/FrameView.h (right): https://codereview.chromium.org/1294233004/diff/220001/Source/core/frame/FrameView.h#newcode603 Source/core/frame/FrameView.h:603: friend class LayoutPart; What is LayoutPart a friend for? ...
5 years, 3 months ago (2015-08-27 04:29:48 UTC) #27
Xianzhu
https://codereview.chromium.org/1294233004/diff/220001/Source/core/frame/FrameView.h File Source/core/frame/FrameView.h (right): https://codereview.chromium.org/1294233004/diff/220001/Source/core/frame/FrameView.h#newcode603 Source/core/frame/FrameView.h:603: friend class LayoutPart; On 2015/08/27 04:29:48, chrishtr wrote: > ...
5 years, 3 months ago (2015-08-27 16:38:02 UTC) #28
chrishtr
On 2015/08/27 at 16:38:02, wangxianzhu wrote: > https://codereview.chromium.org/1294233004/diff/220001/Source/core/frame/FrameView.h > File Source/core/frame/FrameView.h (right): > > https://codereview.chromium.org/1294233004/diff/220001/Source/core/frame/FrameView.h#newcode603 ...
5 years, 3 months ago (2015-08-27 17:06:23 UTC) #29
Xianzhu
On 2015/08/27 17:06:23, chrishtr wrote: > https://codereview.chromium.org/1294233004/diff/220001/Source/core/paint/DeprecatedPaintLayerPainter.cpp#newcode87 > > Source/core/paint/DeprecatedPaintLayerPainter.cpp:87: if (!needsRepaint && > SubsequenceRecorder::useCachedSubsequenceIfPossible(*context, ...
5 years, 3 months ago (2015-08-27 19:01:03 UTC) #30
chrishtr
On 2015/08/27 at 19:01:03, wangxianzhu wrote: > On 2015/08/27 17:06:23, chrishtr wrote: > > https://codereview.chromium.org/1294233004/diff/220001/Source/core/paint/DeprecatedPaintLayerPainter.cpp#newcode87 ...
5 years, 3 months ago (2015-08-27 23:21:48 UTC) #31
chrishtr
lgtm https://codereview.chromium.org/1294233004/diff/240001/Source/core/paint/DeprecatedPaintLayer.h File Source/core/paint/DeprecatedPaintLayer.h (right): https://codereview.chromium.org/1294233004/diff/240001/Source/core/paint/DeprecatedPaintLayer.h#newcode114 Source/core/paint/DeprecatedPaintLayer.h:114: DeprecatedPaintLayer* compositingContainer() const; How about paintContainer()? Defined as: ...
5 years, 3 months ago (2015-08-27 23:26:15 UTC) #33
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1294233004/280001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1294233004/280001
5 years, 3 months ago (2015-08-27 23:26:23 UTC) #35
Xianzhu
https://codereview.chromium.org/1294233004/diff/240001/Source/core/paint/DeprecatedPaintLayer.h File Source/core/paint/DeprecatedPaintLayer.h (right): https://codereview.chromium.org/1294233004/diff/240001/Source/core/paint/DeprecatedPaintLayer.h#newcode114 Source/core/paint/DeprecatedPaintLayer.h:114: DeprecatedPaintLayer* compositingContainer() const; On 2015/08/27 23:26:15, chrishtr wrote: > ...
5 years, 3 months ago (2015-08-27 23:49:08 UTC) #37
chrishtr
On 2015/08/27 at 23:49:08, wangxianzhu wrote: > https://codereview.chromium.org/1294233004/diff/240001/Source/core/paint/DeprecatedPaintLayer.h > File Source/core/paint/DeprecatedPaintLayer.h (right): > > https://codereview.chromium.org/1294233004/diff/240001/Source/core/paint/DeprecatedPaintLayer.h#newcode114 ...
5 years, 3 months ago (2015-08-28 00:10:36 UTC) #38
Xianzhu
The newly added virtual/spv2 virtual suite discovered some bugs in this CL. Investigating.
5 years, 3 months ago (2015-08-28 00:26:58 UTC) #39
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1294233004/300001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1294233004/300001
5 years, 3 months ago (2015-08-28 16:40:40 UTC) #42
commit-bot: I haz the power
5 years, 3 months ago (2015-08-28 17:41:54 UTC) #43
Message was sent while issue was closed.
Committed patchset #16 (id:300001) as
https://src.chromium.org/viewvc/blink?view=rev&revision=201414

Powered by Google App Engine
This is Rietveld 408576698