RESOLVED FIXED 79183
[chromium] Avoid culling work for fully-non-opaque tiles, and add tracing for draw culling
https://bugs.webkit.org/show_bug.cgi?id=79183
Summary [chromium] Avoid culling work for fully-non-opaque tiles, and add tracing for...
Dana Jansens
Reported 2012-02-21 19:03:55 PST
[chromium] Avoid culling work for fully-non-opaque tiles, and add tracing for draw culling
Attachments
Patch (2.85 KB, patch)
2012-02-21 19:07 PST, Dana Jansens
no flags
Patch (3.70 KB, patch)
2012-02-23 17:48 PST, Dana Jansens
no flags
Dana Jansens
Comment 1 2012-02-21 19:07:38 PST
Vangelis Kokkevis
Comment 2 2012-02-21 21:52:15 PST
Comment on attachment 128109 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=128109&action=review (Unofficially) LGTM > Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:244 > + TRACE_EVENT("CCLayerTreeHostImpl::optimizeRenderPasses()", this, 0); Maybe a good opportunity to also report the # of passes here too?
James Robinson
Comment 3 2012-02-21 22:04:47 PST
Comment on attachment 128109 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=128109&action=review >> Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:244 >> + TRACE_EVENT("CCLayerTreeHostImpl::optimizeRenderPasses()", this, 0); > > Maybe a good opportunity to also report the # of passes here too? We haven't been putting the '()' in traces for functions before. There's no really strong reason for or against this convention, but it's what we've been using so I'd like to stay consistent. I believe you can pass parameters efficiently now by using the TRACE_EVENT1() macro instead of TRACE_EVENT. See the comments in TraceEvent.h for details
Vangelis Kokkevis
Comment 4 2012-02-22 08:02:48 PST
Comment on attachment 128109 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=128109&action=review > Source/WebCore/platform/graphics/chromium/cc/CCQuadCuller.cpp:104 > + if (keepQuad && drawQuad->isLayerAxisAlignedIntRect() && !drawQuad->opaqueRect().isEmpty()) { One more quick comment: I think this loop could be simplified if you add an early out ("continue") after line 96: if (!keepQuad) continue; That way you won't need to keep checking that keepQuad == true
Dana Jansens
Comment 5 2012-02-23 17:48:09 PST
Created attachment 128621 [details] Patch Looking for review again to make sure I got this TRACE_EVENT foo correct. I had to cast the passes.size() to make it compile, as size_t confused it and it wasn't sure if "unsigned long" should be an "unsigned long long" or an "unsigned int", etc. @vangelis good call with the continue!
James Robinson
Comment 6 2012-02-23 17:55:44 PST
Comment on attachment 128621 [details] Patch Thumbsup!
WebKit Review Bot
Comment 7 2012-02-24 02:59:05 PST
The commit-queue encountered the following flaky tests while processing attachment 128621 [details]: perf/mouse-event.html bug 78736 (author: eae@chromium.org) The commit-queue is continuing to process your patch.
WebKit Review Bot
Comment 8 2012-02-24 03:01:09 PST
Comment on attachment 128621 [details] Patch Clearing flags on attachment: 128621 Committed r108764: <http://trac.webkit.org/changeset/108764>
WebKit Review Bot
Comment 9 2012-02-24 03:01:14 PST
All reviewed patches have been landed. Closing bug.
Dana Jansens
Comment 10 2012-03-02 11:44:35 PST
*** Bug 76578 has been marked as a duplicate of this bug. ***
Note You need to log in before you can comment on or make changes to this bug.