[Webkit-unassigned] [Bug 52311] [chromium] Add command-line flag to enable composite to offscreen texture.

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Fri Jan 14 08:56:03 PST 2011


https://bugs.webkit.org/show_bug.cgi?id=52311





--- Comment #24 from Vangelis Kokkevis <vangelis at chromium.org>  2011-01-14 08:56:03 PST ---
(In reply to comment #22)
> (In reply to comment #21)
> > (From update of attachment 78854 [details] [details])
> > One more question: Does setCompositeOffScreen() still need to set the layerRenderer for the root layer?  When we're compositing off screen, we'll pass 0 as the argument to this function so prepareContentsTexture() will never be called.  I think this could simplify setCompositeOffScreen to the point that it just sets the value of m_compositeOffscreen.  Or maybe I'm missing something here.
> 
> I don't think this will work.
> 
> When compositing to a texture, instead of to the screen, the RenderSurfaceChromium object that manages the texture we're compositing into needs to create a GL texture, and to do this it needs to call prepareContentsTexture() and this in turn requires a non-null pointer to a layerRenderer so that it knows what texture manager and which context to associate the texture with ...
> 
> Commenting out the call "m_rootLayer->setLayerRenderer(this);" in setCompositeOffscreen() leads to a null-pointer dereference in the current code and thus "Aw, snap!".

Oh, I see. Good point.  Here's something we could do: Modify LayerRendererChromium::setRootLayer() to call setLayerRenderer.  This seems like a more natural place to make the call, and hopefully it will be made only as needed.  If that works then LayerRendererChromium::setCompositeOffscreen() could be simplified as:

void LayerRendererChromium::setCompositeOffscreen(bool compositeOffscreen)
{
    if (m_compositeOffscreen == compositeOffscreen)
       return;

    m_compositeOffscreen = compositeOffscreen;

    if (!m_compositeOffscreen)
        m_rootLayer->m_renderSurface.clear();
}


> 
> I assume when you say "we'll pass 0 as the argument to this function" you mean that final display of the texture (in the testing code path) will call useRenderSurface(0).

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the webkit-unassigned mailing list