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

Issue 892293002: First version of new merge algorithm (not enabled yet) (Closed)

Created:
5 years, 10 months ago by Xianzhu
Modified:
5 years, 10 months ago
CC:
blink-reviews, blink-reviews-paint_chromium.org, Rik, danakj, Dominik Röttsches, dshwang, krit, f(malita), Justin Novosad, pdr+graphicswatchlist_chromium.org, rwlbuis, Stephen Chennney, slimming-paint-reviews_chromium.org
Target Ref:
refs/heads/master
Project:
blink
Visibility:
Public.

Description

First version of new merge algorithm (not enabled yet) The new paint list contains necessary information to keep the z order and parent-children relationship, so that it is virtually a complete paint list. Additional meta display items are: - SubtreeCachedDisplayItem: a subtree is skipped during paint (maybe because of out-of-viewport); - BeginSubtreeDisplayItem and EndtreeDisplayItem: when a subtree is painted, they mark the begin/end of the subtree's display items in the new paint list. When the merge algorithm meets a SubtreeCachedDisplayItem, it matches it to the cached BeginSubtreeDisplayItem, and copy the subtree until the corresponding EndSubtreeDisplayItem is reached. This algorithm requires display item ids to be unique. We still have many cases of duplicated display item ids. Only after we fix all of the duplicated id cases can this algorithm fully work. For now it's controlled by RuntimeEnabledFeatures:: slimmingPaintDisplayItemCacheEnabled. BUG=444163 Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=189610

Patch Set 1 #

Patch Set 2 : Some minor cleanups #

Patch Set 3 : Rebase #

Patch Set 4 : Rebase again #

Patch Set 5 : Fix release build (ViewDisplayListTest.cpp) #

Total comments: 8

Patch Set 6 : Address chrishtr's comments #

Patch Set 7 : #

Total comments: 10

Patch Set 8 : friend test class #

Patch Set 9 : Remove scope-related code (accidentally mixed in this CL) #

Total comments: 12

Patch Set 10 : Use vector to store each client's display items #

Patch Set 11 : check RuntimeEnabledFeatures::slimmingPaintDisplayItemCacheEnabled is DisplayItemList::clientCacheI… #

Patch Set 12 : Restore another RuntimeEnabledFeatures::slimmingPaintDisplayItemCacheEnabled check #

Patch Set 13 : Traverse indices vector #

Total comments: 6

Patch Set 14 : Address pdr@'s comments #

Patch Set 15 : Exclude an unrelated change (svg) #

Patch Set 16 : Rebase #

Patch Set 17 : Try to resolve windows failure #

Patch Set 18 : Rebase again #

Patch Set 19 : Rebase again again #

Unified diffs Side-by-side diffs Delta from patch set Stats (+559 lines, -185 lines) Patch
M Source/core/core.gypi View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 1 chunk +2 lines, -0 lines 0 comments Download
M Source/core/paint/BlockPainter.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 3 chunks +4 lines, -0 lines 0 comments Download
M Source/core/paint/RenderDrawingRecorderTest.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 6 chunks +20 lines, -10 lines 0 comments Download
A Source/core/paint/SubtreeRecorder.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 1 chunk +46 lines, -0 lines 0 comments Download
A Source/core/paint/SubtreeRecorder.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 1 chunk +56 lines, -0 lines 0 comments Download
M Source/core/paint/ViewDisplayListTest.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 18 chunks +240 lines, -94 lines 0 comments Download
M Source/platform/blink_platform.gypi View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 chunk +2 lines, -0 lines 0 comments Download
M Source/platform/graphics/paint/DisplayItem.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 2 chunks +25 lines, -4 lines 0 comments Download
M Source/platform/graphics/paint/DisplayItem.cpp View 1 2 3 4 5 6 7 8 9 1 chunk +4 lines, -0 lines 0 comments Download
M Source/platform/graphics/paint/DisplayItemList.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 2 chunks +12 lines, -4 lines 0 comments Download
M Source/platform/graphics/paint/DisplayItemList.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 4 chunks +73 lines, -59 lines 0 comments Download
M Source/platform/graphics/paint/DrawingRecorder.h View 1 2 10 11 12 1 chunk +0 lines, -1 line 0 comments Download
M Source/platform/graphics/paint/DrawingRecorder.cpp View 1 2 10 11 12 2 chunks +2 lines, -4 lines 0 comments Download
A Source/platform/graphics/paint/SubtreeDisplayItem.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +71 lines, -0 lines 0 comments Download
A + Source/platform/graphics/paint/SubtreeDisplayItem.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 chunk +2 lines, -9 lines 0 comments Download

Messages

Total messages: 50 (16 generated)
Xianzhu
This is the first version. It still requires unique display item ids which has not ...
5 years, 10 months ago (2015-02-02 20:11:59 UTC) #2
chrishtr
https://codereview.chromium.org/892293002/diff/80001/Source/platform/graphics/paint/DisplayItemList.cpp File Source/platform/graphics/paint/DisplayItemList.cpp (right): https://codereview.chromium.org/892293002/diff/80001/Source/platform/graphics/paint/DisplayItemList.cpp#newcode32 Source/platform/graphics/paint/DisplayItemList.cpp:32: // Remove empty pairs. Why bother to clean these ...
5 years, 10 months ago (2015-02-03 00:39:00 UTC) #3
Xianzhu
https://codereview.chromium.org/892293002/diff/80001/Source/platform/graphics/paint/DisplayItemList.cpp File Source/platform/graphics/paint/DisplayItemList.cpp (right): https://codereview.chromium.org/892293002/diff/80001/Source/platform/graphics/paint/DisplayItemList.cpp#newcode32 Source/platform/graphics/paint/DisplayItemList.cpp:32: // Remove empty pairs. On 2015/02/03 00:39:00, chrishtr wrote: ...
5 years, 10 months ago (2015-02-03 01:57:13 UTC) #4
chrishtr
https://codereview.chromium.org/892293002/diff/120001/Source/core/paint/BlockPainter.cpp File Source/core/paint/BlockPainter.cpp (right): https://codereview.chromium.org/892293002/diff/120001/Source/core/paint/BlockPainter.cpp#newcode37 Source/core/paint/BlockPainter.cpp:37: SubtreeInfoRecorder subtreeInfoRecorder(paintInfo.context, m_renderBlock, localPaintInfo.phase); Just to be sure, this ...
5 years, 10 months ago (2015-02-03 22:30:48 UTC) #5
Xianzhu
https://codereview.chromium.org/892293002/diff/120001/Source/core/paint/BlockPainter.cpp File Source/core/paint/BlockPainter.cpp (right): https://codereview.chromium.org/892293002/diff/120001/Source/core/paint/BlockPainter.cpp#newcode37 Source/core/paint/BlockPainter.cpp:37: SubtreeInfoRecorder subtreeInfoRecorder(paintInfo.context, m_renderBlock, localPaintInfo.phase); On 2015/02/03 22:30:47, chrishtr wrote: ...
5 years, 10 months ago (2015-02-04 00:13:24 UTC) #6
Xianzhu
https://codereview.chromium.org/892293002/diff/120001/Source/platform/graphics/paint/DisplayItemList.cpp File Source/platform/graphics/paint/DisplayItemList.cpp (right): https://codereview.chromium.org/892293002/diff/120001/Source/platform/graphics/paint/DisplayItemList.cpp#newcode32 Source/platform/graphics/paint/DisplayItemList.cpp:32: // Remove empty pairs. s/Subtree invalid\/valid flag in this ...
5 years, 10 months ago (2015-02-04 00:15:17 UTC) #7
pdr.
https://codereview.chromium.org/892293002/diff/180001/Source/core/paint/BlockPainter.cpp File Source/core/paint/BlockPainter.cpp (right): https://codereview.chromium.org/892293002/diff/180001/Source/core/paint/BlockPainter.cpp#newcode37 Source/core/paint/BlockPainter.cpp:37: SubtreeInfoRecorder subtreeInfoRecorder(paintInfo.context, m_renderBlock, localPaintInfo.phase); Can you move this up ...
5 years, 10 months ago (2015-02-04 05:19:58 UTC) #9
chrishtr
https://codereview.chromium.org/892293002/diff/180001/Source/core/paint/SubtreeInfoRecorder.h File Source/core/paint/SubtreeInfoRecorder.h (right): https://codereview.chromium.org/892293002/diff/180001/Source/core/paint/SubtreeInfoRecorder.h#newcode18 Source/core/paint/SubtreeInfoRecorder.h:18: class SubtreeInfoRecorder { On 2015/02/04 at 05:19:58, pdr wrote: ...
5 years, 10 months ago (2015-02-04 07:08:14 UTC) #10
Xianzhu
PTAL. The new patch set is based on https://codereview.chromium.org/847783003/#ps200001. https://codereview.chromium.org/892293002/diff/180001/Source/core/paint/BlockPainter.cpp File Source/core/paint/BlockPainter.cpp (right): https://codereview.chromium.org/892293002/diff/180001/Source/core/paint/BlockPainter.cpp#newcode37 Source/core/paint/BlockPainter.cpp:37: ...
5 years, 10 months ago (2015-02-04 20:46:32 UTC) #11
chrishtr
On 2015/02/04 at 07:08:14, chrishtr wrote: > https://codereview.chromium.org/892293002/diff/180001/Source/core/paint/SubtreeInfoRecorder.h > File Source/core/paint/SubtreeInfoRecorder.h (right): > > https://codereview.chromium.org/892293002/diff/180001/Source/core/paint/SubtreeInfoRecorder.h#newcode18 ...
5 years, 10 months ago (2015-02-04 21:58:01 UTC) #12
chrishtr
5 years, 10 months ago (2015-02-04 21:58:08 UTC) #13
pdr.
On 2015/02/04 at 20:46:32, wangxianzhu wrote: > https://codereview.chromium.org/892293002/diff/180001/Source/platform/graphics/paint/DisplayItemList.h#newcode66 > Source/platform/graphics/paint/DisplayItemList.h:66: DisplayItemClientSet m_cachedClients; > On 2015/02/04 ...
5 years, 10 months ago (2015-02-05 00:06:22 UTC) #14
chrishtr
On 2015/02/05 at 00:06:22, pdr wrote: > On 2015/02/04 at 20:46:32, wangxianzhu wrote: > > ...
5 years, 10 months ago (2015-02-05 01:06:33 UTC) #15
Xianzhu
On 2015/02/05 01:06:33, chrishtr wrote: > On 2015/02/05 at 00:06:22, pdr wrote: > > On ...
5 years, 10 months ago (2015-02-05 02:12:01 UTC) #16
Xianzhu
On 2015/02/05 00:06:22, pdr wrote: > > The idea is just to do linear probing ...
5 years, 10 months ago (2015-02-05 03:21:00 UTC) #17
pdr.
I think this is looking great. A few minor comments below. https://codereview.chromium.org/892293002/diff/270001/Source/core/paint/SubtreeInfoRecorder.h File Source/core/paint/SubtreeInfoRecorder.h (right): ...
5 years, 10 months ago (2015-02-05 03:35:58 UTC) #19
Xianzhu
https://codereview.chromium.org/892293002/diff/270001/Source/core/paint/SubtreeInfoRecorder.h File Source/core/paint/SubtreeInfoRecorder.h (right): https://codereview.chromium.org/892293002/diff/270001/Source/core/paint/SubtreeInfoRecorder.h#newcode21 Source/core/paint/SubtreeInfoRecorder.h:21: class SubtreeInfoRecorder { On 2015/02/05 03:35:57, pdr wrote: > ...
5 years, 10 months ago (2015-02-05 17:57:03 UTC) #20
chrishtr
LGTM modulo pdr's comments.
5 years, 10 months ago (2015-02-05 18:22:44 UTC) #21
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/892293002/310001
5 years, 10 months ago (2015-02-05 20:19:11 UTC) #23
commit-bot: I haz the power
Failed to apply patch for Source/core/paint/ViewDisplayListTest.cpp: While running patch -p1 --forward --force --no-backup-if-mismatch; patching file ...
5 years, 10 months ago (2015-02-05 20:19:30 UTC) #25
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/892293002/330001
5 years, 10 months ago (2015-02-05 20:32:38 UTC) #28
commit-bot: I haz the power
Try jobs failed on following builders: win_blink_compile_dbg on tryserver.blink (http://build.chromium.org/p/tryserver.blink/builders/win_blink_compile_dbg/builds/35000)
5 years, 10 months ago (2015-02-05 21:09:22 UTC) #30
pdr.
LGTM2, very nice! It looks like there's a real compile failure though.
5 years, 10 months ago (2015-02-05 21:16:01 UTC) #31
Xianzhu
On 2015/02/05 21:16:01, pdr wrote: > LGTM2, very nice! > > It looks like there's ...
5 years, 10 months ago (2015-02-05 21:33:35 UTC) #32
jbroman
On 2015/02/05 21:33:35, Xianzhu wrote: > On 2015/02/05 21:16:01, pdr wrote: > > LGTM2, very ...
5 years, 10 months ago (2015-02-05 21:41:28 UTC) #33
Xianzhu
On 2015/02/05 21:41:28, jbroman wrote: > On 2015/02/05 21:33:35, Xianzhu wrote: > > On 2015/02/05 ...
5 years, 10 months ago (2015-02-05 21:57:27 UTC) #34
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/892293002/350001
5 years, 10 months ago (2015-02-05 21:58:52 UTC) #36
commit-bot: I haz the power
Failed to apply patch for Source/core/paint/DrawingRecorderTest.cpp: While running patch -p1 --forward --force --no-backup-if-mismatch; can't find ...
5 years, 10 months ago (2015-02-05 23:20:11 UTC) #38
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/892293002/370001
5 years, 10 months ago (2015-02-05 23:50:18 UTC) #41
commit-bot: I haz the power
Try jobs failed on following builders: win_blink_rel on tryserver.blink (JOB_FAILED, http://build.chromium.org/p/tryserver.blink/builders/win_blink_rel/builds/49555)
5 years, 10 months ago (2015-02-06 01:03:59 UTC) #43
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/892293002/370001
5 years, 10 months ago (2015-02-06 01:28:13 UTC) #45
commit-bot: I haz the power
Try jobs failed on following builders: mac_blink_rel on tryserver.blink (JOB_FAILED, http://build.chromium.org/p/tryserver.blink/builders/mac_blink_rel/builds/41649)
5 years, 10 months ago (2015-02-06 01:31:05 UTC) #47
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/892293002/390001
5 years, 10 months ago (2015-02-06 01:41:17 UTC) #49
commit-bot: I haz the power
5 years, 10 months ago (2015-02-06 04:22:34 UTC) #50
Message was sent while issue was closed.
Committed patchset #19 (id:390001) as
https://src.chromium.org/viewvc/blink?view=rev&revision=189610

Powered by Google App Engine
This is Rietveld 408576698