WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
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
Details
Formatted Diff
Diff
Patch
(1.76 KB, patch)
2011-07-11 18:13 PDT
,
John Bates
no flags
Details
Formatted Diff
Diff
Patch
(7.84 KB, patch)
2011-07-12 11:57 PDT
,
John Bates
no flags
Details
Formatted Diff
Diff
Patch
(7.93 KB, patch)
2011-07-12 12:59 PDT
,
John Bates
no flags
Details
Formatted Diff
Diff
Patch
(8.08 KB, patch)
2011-07-12 13:05 PDT
,
John Bates
no flags
Details
Formatted Diff
Diff
Show Obsolete
(4)
View All
Add attachment
proposed patch, testcase, etc.
John Bates
Comment 1
2011-07-08 18:46:46 PDT
Created
attachment 100198
[details]
Patch
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
Created
attachment 100401
[details]
Patch
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
Created
attachment 100536
[details]
Patch
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
Created
attachment 100547
[details]
Patch
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
Created
attachment 100549
[details]
Patch
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.
Top of Page
Format For Printing
XML
Clone This Bug