RESOLVED FIXED Bug 84817
Add a logging channel and some ouput for compositing
https://bugs.webkit.org/show_bug.cgi?id=84817
Summary Add a logging channel and some ouput for compositing
Simon Fraser (smfr)
Reported 2012-04-24 18:54:40 PDT
Add a logging channel and some ouput for compositing
Attachments
Patch (18.39 KB, patch)
2012-04-24 19:02 PDT, Simon Fraser (smfr)
darin: review+
buildbot: commit-queue-
Simon Fraser (smfr)
Comment 1 2012-04-24 19:02:03 PDT
Simon Fraser (smfr)
Comment 2 2012-04-24 19:03:11 PDT
Sample output (maps.google.com when zooming): Update 26 of main frame Layer 0x124de87d8 1280x1280 1.638MP (animation) RenderBlock (positioned) DIV Layer 0x123a5ad28 0x0 0.000MP (overlap/stacking) RenderBlock (positioned) DIV Layer 0x123a5b1a8 0x0 0.000MP (overlap/stacking) RenderBlock (positioned) DIV Layer 0x123a5b628 0x0 0.000MP (overlap/stacking) RenderBlock (positioned) DIV Layer 0x123a5baa8 0x0 0.000MP (overlap/stacking) RenderBlock (positioned) DIV Layer 0x123a5bf28 0x0 0.000MP (overlap/stacking) RenderBlock (positioned) DIV Layer 0x123a5c3a8 0x0 0.000MP (overlap/stacking) RenderBlock (positioned) DIV Layer 0x123a5c828 0x0 0.000MP (overlap/stacking) RenderBlock (positioned) DIV Layer 0x123a5cca8 0x0 0.000MP (overlap/stacking) RenderBlock (positioned) DIV Layer 0x1108e72b8 83x152 0.013MP (overlap/stacking) RenderBlock (positioned) DIV 'views-control' Layer 0x1108f2e48 19x19 0.000MP (overlap/stacking) RenderBlock (positioned) DIV 'map_overview' Layer 0x122431f08 390x19 0.007MP (overlap/stacking) RenderBlock (positioned) DIV 'copyright' Layer 0x1229401c8 43x29 0.000MP (overlap/stacking) RenderBlock (positioned) DIV 'map_magnifyingglass' Layer 0x1224321b8 86x29 0.002MP (overlap/stacking) RenderBlock (positioned) DIV 'scalecontrol' Layer 0x1211f0a88 90x339 0.031MP (overlap/stacking) RenderBlock (positioned) DIV 'lmc3d' Layer 0x1108caab8 838x844 0.000MP (clips compositing descendants) RenderBlock (relative positioned) DIV 'map' Layer 0x1108f6238 1219x1 0.001MP (overlap/stacking) RenderBlock (positioned) DIV Layer 0x1108f6c78 1219x2 0.002MP (overlap/stacking) RenderBlock (positioned) DIV Layer 0x1108f76b8 1219x3 0.004MP (overlap/stacking) RenderBlock (positioned) DIV Layer 0x1108f80f8 1219x4 0.005MP (overlap/stacking) RenderBlock (positioned) DIV Layer 0x1108f8b38 1219x5 0.006MP (overlap/stacking) RenderBlock (positioned) DIV Layer 0x1108f9a88 1x842 0.001MP (overlap/stacking) RenderBlock (positioned) DIV Layer 0x1108fa538 2x842 0.002MP (overlap/stacking) RenderBlock (positioned) DIV Layer 0x1108fafe8 3x842 0.003MP (overlap/stacking) RenderBlock (positioned) DIV Layer 0x1108fba98 4x842 0.003MP (overlap/stacking) RenderBlock (positioned) DIV Layer 0x11d6f31b8 5x842 0.004MP (overlap/stacking) RenderBlock (positioned) DIV Layer 0x1108b9118 381x59 0.022MP (overlap/stacking) RenderBlock (relative positioned) DIV 'topbar' Layer 0x11d6baa08 381x787 0.300MP (overlap/stacking) RenderBlock (positioned) DIV 'panel' Layer 0x1216132c8 1219x102 0.124MP (overlap/stacking) RenderBlock (relative positioned) DIV Layer 0x110897b38 1219x0 0.000MP (overlap/stacking) RenderBlock (relative positioned) DIV 'infoarea' Layer 0x11d9eacf8 1219x13944 0.000MP (root) RenderView 31 layers (3 primary, 28 secondary), total backing area 2.17MP, update took 3.74ms,
Build Bot
Comment 3 2012-04-24 19:27:18 PDT
Darin Adler
Comment 4 2012-04-24 19:56:42 PDT
Comment on attachment 138716 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=138716&action=review Looks fine, but please revise so it doesn’t break the Windows build. > Source/WebCore/platform/graphics/GraphicsLayer.h:429 > + // Return an estimate of how much memory is used for backing store. May be incorrect for tiled layers. Maybe this should have the word “estimate” in its name too, not just the comment. > Source/WebCore/rendering/RenderLayerBacking.h:162 > + double backingStoreArea() const; Probably needs a comment, and maybe the word “estimate” in its name. > Source/WebCore/rendering/RenderLayerCompositor.cpp:154 > +#if !LOG_DISABLED > + return LogCompositing.state == WTFLogChannelOn; > +#endif > + return false; Should use #else here. I suspect this may be why the Windows build is failing. > Source/WebCore/rendering/RenderLayerCompositor.cpp:374 > + startTime = WTF::currentTime(); I’m surprised the WTF:: prefix is needed here. > Source/WebCore/rendering/RenderLayerCompositor.cpp:439 > +#if !LOG_DISABLED > +void RenderLayerCompositor::logCompositingInfo(const RenderLayer* layer) One neat trick is to always compile logCompositingInfo but make it an inline function that does nothing in when LOG_DISABLED is set. This eliminates the need for #if at the call sites.
Simon Fraser (smfr)
Comment 5 2012-04-24 21:27:10 PDT
(In reply to comment #4) > One neat trick is to always compile logCompositingInfo but make it an inline function that does nothing in when LOG_DISABLED is set. This eliminates the need for #if at the call sites. That would require moving compositingLogEnabled() to the header, which I don't really want to do.
Simon Fraser (smfr)
Comment 6 2012-04-24 21:30:43 PDT
Note You need to log in before you can comment on or make changes to this bug.