[webkit-reviews] review denied: [Bug 71269] [chromium] Move resource-releasing logic into CCProxy and remove setNeedsCommit(without redraw) : [Attachment 113137] Patch

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Tue Nov 1 14:00:10 PDT 2011


James Robinson <jamesr at chromium.org> has denied Nat Duca <nduca at chromium.org>'s
request for review:
Bug 71269: [chromium] Move resource-releasing logic into CCProxy and remove
setNeedsCommit(without redraw)
https://bugs.webkit.org/show_bug.cgi?id=71269

Attachment 113137: Patch
https://bugs.webkit.org/attachment.cgi?id=113137&action=review

------- Additional Comments from James Robinson <jamesr at chromium.org>
View in context: https://bugs.webkit.org/attachment.cgi?id=113137&action=review


The overflow looks good - I'm not too worried about the extra sync call. This
is missing a few bits, though, to ensure that we actually release all important
resources. I also think that we should leave setNeedsCommit in place for now.

> Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHost.cpp:230
>      m_visible = visible;

does some higher level code avoid calling this when m_visible == visible or
should we check that?

> Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHost.cpp:235
> +    m_proxy->setVisible(visible);

Could you add some comments here indicating what will happen on this call when
transitioning from true->false (i.e. that this will block for a while, etc)

> Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHost.cpp:239
> +{

thread ASSERT() please

> Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHost.cpp:249
> +    m_proxy->setNeedsCommitThenRedraw();

We shouldn't actually need to redraw here. I think adding the 'thenRedraw' is
unnecessary here - the purpose here is that we need to push state to the impl
thread so it can make correct input routing decisions. I'd leave
setNeedsCommit() in as this is a legit use case for it.

> Source/WebCore/platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:193
> +	  
m_layerTreeHost->didBecomeInvisibleOnImplThread(m_layerTreeHostImpl.get());

probably need a scopedsetthread doohicky here to keep the thread assertions in
order.

you also need to call m_layerTreeHostImpl->setVisible() - that informs the
LayerRendererChromium of the visibility change so it releases the rendersurface
textures

> Source/WebCore/platform/graphics/chromium/cc/CCThreadProxy.cpp:263
> +   
m_layerTreeHost->didBecomeInvisibleOnImplThread(m_layerTreeHostImpl.get());

you also have to inform the m_layerTreeHostImpl of the visibility change -
that's what releases the render surface textures and calls
setVisibilityCHROMIUM() on the context to release shared memory segments, etc


More information about the webkit-reviews mailing list