Summary: | [chromium] Avoid culling work for fully-non-opaque tiles, and add tracing for draw culling | ||||||||
---|---|---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Dana Jansens <danakj> | ||||||
Component: | New Bugs | Assignee: | Dana Jansens <danakj> | ||||||
Status: | RESOLVED FIXED | ||||||||
Severity: | Normal | CC: | backer, cc-bugs, commit-queue, enne, jamesr, piman, vangelis, webkit.review.bot, wjmaclean | ||||||
Priority: | P2 | ||||||||
Version: | 528+ (Nightly build) | ||||||||
Hardware: | Unspecified | ||||||||
OS: | Unspecified | ||||||||
Attachments: |
|
Description
Dana Jansens
2012-02-21 19:03:55 PST
Created attachment 128109 [details]
Patch
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? 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 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 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!
Comment on attachment 128621 [details]
Patch
Thumbsup!
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. Comment on attachment 128621 [details] Patch Clearing flags on attachment: 128621 Committed r108764: <http://trac.webkit.org/changeset/108764> All reviewed patches have been landed. Closing bug. *** Bug 76578 has been marked as a duplicate of this bug. *** |