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

Issue 847783003: New display item caching (Closed)

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

Description

New display item caching The algorithm becomes much simpler after we forced full layer painting because all objects needing paint will appear in the new paint list. To handler reordering, we need to lookup the matching display item of a CachedDisplayItem by client. If we can't find a matching display item for a CachedDisplayItem, there must be under-invalidations (crbug.com/450725). We output an error message, and in debug mode, paint the object red. BUG=444163 TEST=ViewDisplayListTest.ComplexUpdateSwapOrder

Patch Set 1 #

Patch Set 2 : Working patch #

Total comments: 4

Patch Set 3 : Add missed CachedDisplayItem.cpp #

Patch Set 4 : Fix release build #

Patch Set 5 : #

Patch Set 6 : Update comments #

Total comments: 9

Patch Set 7 : Address chrishtr's comments #

Patch Set 8 : Update updatePaintList() #

Patch Set 9 : New method, supporting partial paint #

Total comments: 2
Unified diffs Side-by-side diffs Delta from patch set Stats (+556 lines, -155 lines) Patch
M Source/core/core.gypi View 1 2 3 4 5 6 7 8 1 chunk +2 lines, -0 lines 0 comments Download
M Source/core/paint/BlockPainter.cpp View 1 2 3 4 5 6 7 8 3 chunks +4 lines, -0 lines 0 comments Download
A Source/core/paint/SubtreeInfoRecorder.h View 1 2 3 4 5 6 7 8 1 chunk +36 lines, -0 lines 0 comments Download
A Source/core/paint/SubtreeInfoRecorder.cpp View 1 2 3 4 5 6 7 8 1 chunk +56 lines, -0 lines 0 comments Download
M Source/core/paint/ViewDisplayListTest.cpp View 1 2 3 4 5 6 7 8 20 chunks +193 lines, -82 lines 0 comments Download
M Source/platform/RuntimeEnabledFeatures.in View 1 2 3 4 5 6 7 8 1 chunk +0 lines, -1 line 0 comments Download
M Source/platform/blink_platform.gypi View 1 2 3 4 5 6 7 8 2 chunks +2 lines, -0 lines 0 comments Download
M Source/platform/graphics/paint/CachedDisplayItem.h View 1 2 chunks +21 lines, -3 lines 0 comments Download
A Source/platform/graphics/paint/CachedDisplayItem.cpp View 1 2 1 chunk +39 lines, -0 lines 2 comments Download
M Source/platform/graphics/paint/DisplayItem.h View 1 2 3 4 5 6 7 8 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 3 chunks +22 lines, -5 lines 0 comments Download
M Source/platform/graphics/paint/DisplayItemList.cpp View 1 2 3 4 5 6 7 8 5 chunks +97 lines, -62 lines 0 comments Download
M Source/platform/graphics/paint/DrawingRecorder.h View 1 1 chunk +1 line, -1 line 0 comments Download
M Source/platform/graphics/paint/DrawingRecorder.cpp View 1 2 chunks +7 lines, -1 line 0 comments Download
A Source/platform/graphics/paint/SubtreeDisplayItem.h View 1 2 3 4 5 6 7 8 1 chunk +72 lines, -0 lines 0 comments Download

Messages

Total messages: 36 (9 generated)
Xianzhu
5 years, 11 months ago (2015-01-18 03:35:12 UTC) #2
Xianzhu
This seems still not correct when the new paint list is a partial paint list ...
5 years, 11 months ago (2015-01-20 17:16:26 UTC) #4
Xianzhu
PTAL. New display item caching The algorithm becomes much simpler after we forced full layer ...
5 years, 11 months ago (2015-01-22 01:46:48 UTC) #5
trchen
On 2015/01/22 01:46:48, Xianzhu wrote: > The algorithm becomes much simpler after we forced full ...
5 years, 11 months ago (2015-01-22 01:52:50 UTC) #6
Xianzhu
On 2015/01/22 01:52:50, trchen wrote: > On 2015/01/22 01:46:48, Xianzhu wrote: > > The algorithm ...
5 years, 11 months ago (2015-01-22 17:24:50 UTC) #7
chrishtr
https://codereview.chromium.org/847783003/diff/20001/Source/platform/graphics/paint/DisplayItemList.cpp File Source/platform/graphics/paint/DisplayItemList.cpp (right): https://codereview.chromium.org/847783003/diff/20001/Source/platform/graphics/paint/DisplayItemList.cpp#newcode55 Source/platform/graphics/paint/DisplayItemList.cpp:55: while (offset < info.displayItemIndexes.size() && !m_paintList[info.displayItemIndexes[offset]]->idsEqual(displayItem)) The optimization using ...
5 years, 11 months ago (2015-01-22 20:13:07 UTC) #8
Xianzhu
https://codereview.chromium.org/847783003/diff/20001/Source/platform/graphics/paint/DisplayItemList.cpp File Source/platform/graphics/paint/DisplayItemList.cpp (right): https://codereview.chromium.org/847783003/diff/20001/Source/platform/graphics/paint/DisplayItemList.cpp#newcode55 Source/platform/graphics/paint/DisplayItemList.cpp:55: while (offset < info.displayItemIndexes.size() && !m_paintList[info.displayItemIndexes[offset]]->idsEqual(displayItem)) On 2015/01/22 20:13:07, ...
5 years, 11 months ago (2015-01-22 21:48:12 UTC) #9
chrishtr
On 2015/01/22 at 21:48:12, wangxianzhu wrote: > https://codereview.chromium.org/847783003/diff/20001/Source/platform/graphics/paint/DisplayItemList.cpp > File Source/platform/graphics/paint/DisplayItemList.cpp (right): > > https://codereview.chromium.org/847783003/diff/20001/Source/platform/graphics/paint/DisplayItemList.cpp#newcode55 ...
5 years, 11 months ago (2015-01-22 21:57:52 UTC) #10
chrishtr
https://codereview.chromium.org/847783003/diff/100001/Source/core/paint/ViewDisplayListTest.cpp File Source/core/paint/ViewDisplayListTest.cpp (right): https://codereview.chromium.org/847783003/diff/100001/Source/core/paint/ViewDisplayListTest.cpp#newcode549 Source/core/paint/ViewDisplayListTest.cpp:549: rootDisplayItemList().invalidate(container1->displayItemClient()); Add a comment that this is simulating the ...
5 years, 11 months ago (2015-01-22 22:17:21 UTC) #11
Xianzhu
https://codereview.chromium.org/847783003/diff/100001/Source/core/paint/ViewDisplayListTest.cpp File Source/core/paint/ViewDisplayListTest.cpp (right): https://codereview.chromium.org/847783003/diff/100001/Source/core/paint/ViewDisplayListTest.cpp#newcode549 Source/core/paint/ViewDisplayListTest.cpp:549: rootDisplayItemList().invalidate(container1->displayItemClient()); On 2015/01/22 22:17:21, chrishtr wrote: > Add a ...
5 years, 11 months ago (2015-01-22 23:50:59 UTC) #12
chrishtr
On 2015/01/22 at 23:50:59, wangxianzhu wrote: > https://codereview.chromium.org/847783003/diff/100001/Source/core/paint/ViewDisplayListTest.cpp > File Source/core/paint/ViewDisplayListTest.cpp (right): > > https://codereview.chromium.org/847783003/diff/100001/Source/core/paint/ViewDisplayListTest.cpp#newcode549 ...
5 years, 11 months ago (2015-01-23 05:03:06 UTC) #13
Xianzhu
https://codereview.chromium.org/847783003/diff/100001/Source/platform/graphics/paint/DisplayItemList.cpp File Source/platform/graphics/paint/DisplayItemList.cpp (right): https://codereview.chromium.org/847783003/diff/100001/Source/platform/graphics/paint/DisplayItemList.cpp#newcode113 Source/platform/graphics/paint/DisplayItemList.cpp:113: appendDisplayItem(updatedList, newCachedDisplayItemsInfoByClient, m_paintList[index].release()); Sorry I was wrong about your ...
5 years, 11 months ago (2015-01-23 23:52:45 UTC) #14
chrishtr
lgtm
5 years, 11 months ago (2015-01-24 00:06:10 UTC) #16
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/847783003/140001
5 years, 11 months ago (2015-01-24 00:06:30 UTC) #17
commit-bot: I haz the power
Try jobs failed on following builders: linux_blink_rel on tryserver.blink (http://build.chromium.org/p/tryserver.blink/builders/linux_blink_rel/builds/43517)
5 years, 11 months ago (2015-01-24 00:26:23 UTC) #19
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/847783003/160001
5 years, 11 months ago (2015-01-24 00:37:55 UTC) #22
commit-bot: I haz the power
Try jobs failed on following builders: linux_blink_rel on tryserver.blink (http://build.chromium.org/p/tryserver.blink/builders/linux_blink_rel/builds/43526)
5 years, 11 months ago (2015-01-24 02:01:53 UTC) #24
Xianzhu
Because of the layout test failure, and the potential issues to do full layer painting, ...
5 years, 11 months ago (2015-01-26 06:55:23 UTC) #25
Xianzhu
On 2015/01/26 06:55:23, Xianzhu wrote: > Because of the layout test failure, and the potential ...
5 years, 11 months ago (2015-01-27 18:01:09 UTC) #26
Xianzhu
Sorry, just noticed that uploading of the patch failed. Patch Set 9 is the initial ...
5 years, 11 months ago (2015-01-27 19:09:29 UTC) #27
Stephen Chennney
This seems to reflect one of the options we discussed yesterday, which is all I ...
5 years, 11 months ago (2015-01-27 19:45:45 UTC) #29
trchen
https://codereview.chromium.org/847783003/diff/200001/Source/platform/graphics/paint/CachedDisplayItem.cpp File Source/platform/graphics/paint/CachedDisplayItem.cpp (right): https://codereview.chromium.org/847783003/diff/200001/Source/platform/graphics/paint/CachedDisplayItem.cpp#newcode19 Source/platform/graphics/paint/CachedDisplayItem.cpp:19: paint.setColor(SK_ColorRED); On 2015/01/27 19:45:45, Stephen Chenney wrote: > bikeshed: ...
5 years, 11 months ago (2015-01-27 19:52:01 UTC) #30
chrishtr
https://codereview.chromium.org/847783003/diff/220001/Source/core/paint/BlockPainter.cpp File Source/core/paint/BlockPainter.cpp (right): https://codereview.chromium.org/847783003/diff/220001/Source/core/paint/BlockPainter.cpp#newcode36 Source/core/paint/BlockPainter.cpp:36: SubtreeInfoRecorder subtreeInfoRecorder(paintInfo.context, m_renderBlock, localPaintInfo.phase); Is the change in this ...
5 years, 10 months ago (2015-01-29 19:04:38 UTC) #31
Xianzhu
I'm still working on unique ids which is needed by the final patch of this ...
5 years, 10 months ago (2015-01-29 19:55:03 UTC) #32
chrishtr
On 2015/01/29 at 19:55:03, wangxianzhu wrote: > I'm still working on unique ids which is ...
5 years, 10 months ago (2015-01-29 21:41:08 UTC) #33
chrishtr
https://codereview.chromium.org/847783003/diff/220001/Source/core/paint/BlockPainter.cpp File Source/core/paint/BlockPainter.cpp (right): https://codereview.chromium.org/847783003/diff/220001/Source/core/paint/BlockPainter.cpp#newcode36 Source/core/paint/BlockPainter.cpp:36: SubtreeInfoRecorder subtreeInfoRecorder(paintInfo.context, m_renderBlock, localPaintInfo.phase); On 2015/01/29 19:55:02, Xianzhu wrote: ...
5 years, 10 months ago (2015-01-31 01:18:11 UTC) #34
Xianzhu
5 years, 10 months ago (2015-02-02 20:07:46 UTC) #35
Switched to https://codereview.chromium.org/892293002 for new merging algorithm.
This one closed.

Powered by Google App Engine
This is Rietveld 408576698