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

Issue 474793002: Add GraphicsLayerDebugInfo::includesNewPaintInvalidation to distinguish paint from new RenderObjects (Closed)

Created:
6 years, 4 months ago by kouhei (in TOK)
Modified:
6 years, 3 months ago
CC:
abarth-chromium, blink-layers+watch_chromium.org, blink-reviews, blink-reviews-rendering, Rik, danakj, dglazkov+blink, krit, eae+blinkwatch, jamesr, jbroman, jchaffraix+rendering, leviw+renderwatch, pdr., rwlbuis, rune+blink, Stephen Chennney, zoltan1
Project:
blink
Visibility:
Public.

Description

Add GraphicsLayerDebugInfo::includesNewPaintInvalidation to distinguish paint from new RenderObjects This is a Blink side patch for visualizing paint invalidation for newly created RenderObject. Demo @ https://www.youtube.com/watch?v=L-zo91nL2nE&list=UUGC5ommqy7KyPzZ-eGlL_Dg This CL adds a flag |hadPaintInvalidation| in RenderObject to track if the RenderObject had ever been painted. The flag is then used to notify |WebLayer| if it includes the first paint invalidation for the RenderObject. After this CL, WebLayer implementator can query this info to visualize the layer invalidation including the first paint, which is useful for telling if the repaint storm is due to the page itself, or is a performance bug in Blink rendering stack. BUG=402033

Patch Set 1 #

Patch Set 2 : rebase #

Patch Set 3 : crash fix #

Patch Set 4 : rebased #

Patch Set 5 : use GraphicsLayerInfo #

Total comments: 6

Patch Set 6 : reset from FrameView #

Total comments: 1

Patch Set 7 : rebased #

Patch Set 8 : rebased #

Total comments: 8

Patch Set 9 : review #

Total comments: 1
Unified diffs Side-by-side diffs Delta from patch set Stats (+39 lines, -6 lines) Patch
M Source/core/rendering/RenderLayerRepainter.cpp View 1 2 3 4 5 6 7 8 1 chunk +13 lines, -2 lines 0 comments Download
M Source/core/rendering/RenderMultiColumnSet.h View 1 2 3 4 5 6 7 1 chunk +1 line, -1 line 0 comments Download
M Source/core/rendering/RenderMultiColumnSet.cpp View 1 2 3 4 5 6 7 8 1 chunk +1 line, -1 line 0 comments Download
M Source/core/rendering/RenderObject.h View 1 2 3 4 5 6 7 8 3 chunks +4 lines, -0 lines 1 comment Download
M Source/core/rendering/RenderRegion.h View 1 2 3 4 5 6 7 8 1 chunk +1 line, -1 line 0 comments Download
M Source/core/rendering/RenderRegion.cpp View 1 2 3 4 5 6 7 8 1 chunk +1 line, -1 line 0 comments Download
M Source/platform/graphics/GraphicsLayer.h View 1 2 3 6 1 chunk +1 line, -0 lines 0 comments Download
M Source/platform/graphics/GraphicsLayer.cpp View 1 2 3 4 6 2 chunks +6 lines, -0 lines 0 comments Download
M Source/platform/graphics/GraphicsLayerDebugInfo.h View 1 2 3 4 3 chunks +3 lines, -0 lines 0 comments Download
M Source/platform/graphics/GraphicsLayerDebugInfo.cpp View 1 2 3 4 5 3 chunks +7 lines, -0 lines 0 comments Download
M public/platform/WebGraphicsLayerDebugInfo.h View 1 2 3 4 1 chunk +1 line, -0 lines 0 comments Download

Messages

Total messages: 20 (1 generated)
kouhei (in TOK)
Would you take a look?
6 years, 4 months ago (2014-08-18 07:02:45 UTC) #1
kouhei (in TOK)
looking into crashes. please hold on review.
6 years, 4 months ago (2014-08-18 10:40:26 UTC) #2
kouhei (in TOK)
Crash bug fixed. PTAL.
6 years, 4 months ago (2014-08-19 00:32:16 UTC) #3
chrishtr
I'll respond on the other CL as well, but I think we should extend GraphicsLayerDebugInfo ...
6 years, 4 months ago (2014-08-20 04:28:49 UTC) #4
kouhei (in TOK)
On 2014/08/20 04:28:49, chrishtr wrote: > I'll respond on the other CL as well, but ...
6 years, 4 months ago (2014-08-20 06:34:02 UTC) #5
chrishtr
https://codereview.chromium.org/474793002/diff/80001/Source/core/rendering/RenderObject.cpp File Source/core/rendering/RenderObject.cpp (right): https://codereview.chromium.org/474793002/diff/80001/Source/core/rendering/RenderObject.cpp#newcode1677 Source/core/rendering/RenderObject.cpp:1677: setEverHadPaintInvalidation(true); I think this should go in RenderObject::invalidatePaintUsingContainer() https://codereview.chromium.org/474793002/diff/80001/Source/core/rendering/RenderObject.h ...
6 years, 4 months ago (2014-08-20 17:10:31 UTC) #6
kouhei (in TOK)
Status update. I'm a bit struggling moving the flag into WebGraphicsLayerDebugInfo. The problem is that ...
6 years, 4 months ago (2014-08-21 01:49:41 UTC) #7
kouhei (in TOK)
Thanks for your comments. https://codereview.chromium.org/474793002/diff/80001/Source/core/rendering/RenderObject.cpp File Source/core/rendering/RenderObject.cpp (right): https://codereview.chromium.org/474793002/diff/80001/Source/core/rendering/RenderObject.cpp#newcode1677 Source/core/rendering/RenderObject.cpp:1677: setEverHadPaintInvalidation(true); On 2014/08/20 17:10:31, chrishtr ...
6 years, 4 months ago (2014-08-21 04:42:53 UTC) #8
kouhei (in TOK)
https://codereview.chromium.org/474793002/diff/100001/Source/core/frame/FrameView.cpp File Source/core/frame/FrameView.cpp (right): https://codereview.chromium.org/474793002/diff/100001/Source/core/frame/FrameView.cpp#newcode977 Source/core/frame/FrameView.cpp:977: if (!isTracing) FIXME: I need to limit this to ...
6 years, 4 months ago (2014-08-21 11:20:40 UTC) #9
chrishtr
https://codereview.chromium.org/474793002/diff/80001/Source/core/rendering/RenderObject.cpp File Source/core/rendering/RenderObject.cpp (right): https://codereview.chromium.org/474793002/diff/80001/Source/core/rendering/RenderObject.cpp#newcode1677 Source/core/rendering/RenderObject.cpp:1677: setEverHadPaintInvalidation(true); On 2014/08/21 at 04:42:53, kouhei wrote: > On ...
6 years, 4 months ago (2014-08-21 21:28:34 UTC) #10
kouhei (in TOK)
Would you take another look? cc side: https://codereview.chromium.org/474783002/ https://codereview.chromium.org/474793002/diff/80001/Source/core/rendering/RenderObject.cpp File Source/core/rendering/RenderObject.cpp (right): https://codereview.chromium.org/474793002/diff/80001/Source/core/rendering/RenderObject.cpp#newcode1677 Source/core/rendering/RenderObject.cpp:1677: setEverHadPaintInvalidation(true); ...
6 years, 4 months ago (2014-08-25 01:57:58 UTC) #11
chrishtr
https://codereview.chromium.org/474793002/diff/140001/Source/core/rendering/RenderLayerRepainter.cpp File Source/core/rendering/RenderLayerRepainter.cpp (right): https://codereview.chromium.org/474793002/diff/140001/Source/core/rendering/RenderLayerRepainter.cpp#newcode126 Source/core/rendering/RenderLayerRepainter.cpp:126: GraphicsLayer* backingLayer = m_renderer.layer()->graphicsLayerBacking(); Per comment in RenderObject, get ...
6 years, 4 months ago (2014-08-25 16:55:06 UTC) #12
enne (OOO)
How does this feature work with just a boolean? It seems like invalidation on a ...
6 years, 4 months ago (2014-08-25 17:59:07 UTC) #13
kouhei (in TOK)
On 2014/08/25 17:59:07, enne wrote: > How does this feature work with just a boolean? ...
6 years, 3 months ago (2014-08-26 14:18:18 UTC) #14
chrishtr
lgtm
6 years, 3 months ago (2014-08-26 16:49:50 UTC) #15
enne (OOO)
On 2014/08/26 at 14:18:18, kouhei wrote: > On 2014/08/25 17:59:07, enne wrote: > > How ...
6 years, 3 months ago (2014-08-26 19:04:41 UTC) #16
kouhei (in TOK)
On 2014/08/26 19:04:41, enne wrote: > On 2014/08/26 at 14:18:18, kouhei wrote: > > On ...
6 years, 3 months ago (2014-08-27 12:09:48 UTC) #17
abarth-chromium
https://codereview.chromium.org/474793002/diff/160001/Source/core/rendering/RenderObject.h File Source/core/rendering/RenderObject.h (right): https://codereview.chromium.org/474793002/diff/160001/Source/core/rendering/RenderObject.h#newcode1299 Source/core/rendering/RenderObject.h:1299: ADD_BOOLEAN_BITFIELD(hadPaintInvalidation, HadPaintInvalidation); Maybe I'm misunderstanding this CL. Are we ...
6 years, 3 months ago (2014-09-02 19:30:16 UTC) #19
kouhei (in TOK)
6 years, 3 months ago (2014-09-02 21:02:27 UTC) #20
On 2014/09/02 19:30:16, abarth wrote:
>
https://codereview.chromium.org/474793002/diff/160001/Source/core/rendering/R...
> File Source/core/rendering/RenderObject.h (right):
> 
>
https://codereview.chromium.org/474793002/diff/160001/Source/core/rendering/R...
> Source/core/rendering/RenderObject.h:1299:
> ADD_BOOLEAN_BITFIELD(hadPaintInvalidation, HadPaintInvalidation);
> Maybe I'm misunderstanding this CL.  Are we spending a bit in RenderObject
> purely for debug information?  Generally speaking, that's a poor tradeoff. 
Bits
> in RenderObject are very valuable.

Thanks for your comment. I think it also applies to the new CL:
https://codereview.chromium.org/498193003/ .

Let me close this CL as we are not landing this. Sorry for the confusion.

Powered by Google App Engine
This is Rietveld 408576698