RESOLVED FIXED 64224
Move updateLayers call to WebViewImpl::layout so that we do not trigger redundant draws
https://bugs.webkit.org/show_bug.cgi?id=64224
Summary Move updateLayers call to WebViewImpl::layout so that we do not trigger redun...
John Bates
Reported 2011-07-08 18:42:21 PDT
Add popPendingUpdate method to chromium WebWidgetClient.
Attachments
Patch (2.29 KB, patch)
2011-07-08 18:46 PDT, John Bates
no flags
Patch (1.76 KB, patch)
2011-07-11 18:13 PDT, John Bates
no flags
Patch (7.84 KB, patch)
2011-07-12 11:57 PDT, John Bates
no flags
Patch (7.93 KB, patch)
2011-07-12 12:59 PDT, John Bates
no flags
Patch (8.08 KB, patch)
2011-07-12 13:05 PDT, John Bates
no flags
John Bates
Comment 1 2011-07-08 18:46:46 PDT
John Bates
Comment 2 2011-07-08 19:05:54 PDT
Associated with chromium patch: http://codereview.chromium.org/7327030/ Fixed bug that caused canvas updates to trigger two compositor paints. LayerRendererChromium::updateLayers was triggering a scheduleComposite because the paint aggregator in RenderWidget was emptied beforehand. This change (in combination with the chromium-side patch) delays the paint aggregator emptying until after updateLayers and before paint. This patch must land before the chromium patch above.
James Robinson
Comment 3 2011-07-11 14:15:29 PDT
popPendingUpdate() is not a very enlightening API name. I've looked at the chromium side and I'm still not completely sure what it is intended to mean.
John Bates
Comment 4 2011-07-11 18:13:54 PDT
James Robinson
Comment 5 2011-07-11 18:16:04 PDT
Comment on attachment 100401 [details] Patch Wait, it's not valid to call LayerRendererChromium::updateLayers() at this point. You want to just call WebViewImpl's updateLayers(), which does a different thing, and remove that call from LayerRendererChromium. Leave doComposite() alone. Also, this bug needs to be retitled.
John Bates
Comment 6 2011-07-12 11:57:42 PDT
James Robinson
Comment 7 2011-07-12 12:24:08 PDT
Comment on attachment 100536 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=100536&action=review Closer! Please also rename this bug, preferably to describe the problem this patch fixes (double frames on canvas). > Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHost.cpp:97 > -void CCLayerTreeHost::updateLayers() > +void CCLayerTreeHost::syncCompositingLayers() > { > - m_client->updateLayers(); > + m_client->syncCompositingLayers(); > } delete > Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHost.h:44 > + virtual void syncCompositingLayers() = 0; Just delete this (and the corresponding entry in CCLayerTreeHost), there aren't any callers of this any more. > Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHost.h:65 > + void syncCompositingLayers(); delete > Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHostImplProxy.cpp:153 > m_commitPending = false; > { > - TRACE_EVENT("CCLayerTreeHost::updateLayers", this, 0); > - m_layerTreeHost->updateLayers(); > + TRACE_EVENT("CCLayerTreeHost::syncCompositingLayers", this, 0); > + m_layerTreeHost->syncCompositingLayers(); > } You can delete this section completely, animateAndLayout() takes care of this now (since it calls WebViewImpl::layout())
John Bates
Comment 8 2011-07-12 12:59:00 PDT
James Robinson
Comment 9 2011-07-12 13:00:56 PDT
Comment on attachment 100547 [details] Patch Cool. One more nit to consider before landing: Could you add a TRACE_EVENT() around syncCompositingLayers()?
John Bates
Comment 10 2011-07-12 13:05:08 PDT
John Bates
Comment 11 2011-07-12 13:06:41 PDT
(In reply to comment #9) > (From update of attachment 100547 [details]) > Cool. One more nit to consider before landing: Could you add a TRACE_EVENT() around syncCompositingLayers()? Done.
James Robinson
Comment 12 2011-07-12 13:39:42 PDT
Comment on attachment 100549 [details] Patch Flags away!
WebKit Review Bot
Comment 13 2011-07-12 14:22:57 PDT
Comment on attachment 100549 [details] Patch Clearing flags on attachment: 100549 Committed r90850: <http://trac.webkit.org/changeset/90850>
WebKit Review Bot
Comment 14 2011-07-12 14:23:02 PDT
All reviewed patches have been landed. Closing bug.
Note You need to log in before you can comment on or make changes to this bug.