[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