[Webkit-unassigned] [Bug 76715] Refactor plugin drawing to be more data driven

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Wed Jan 25 12:43:13 PST 2012


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





--- Comment #8 from David Reveman <reveman at chromium.org>  2012-01-25 12:43:13 PST ---
(In reply to comment #6)
> (From update of attachment 123578 [details])
> View in context: https://bugs.webkit.org/attachment.cgi?id=123578&action=review
> 
> > Source/WebCore/platform/graphics/chromium/PluginLayerChromium.cpp:66
> > +        if (!m_ioSurfaceTextureId)
> > +            m_ioSurfaceTextureId = rendererContext->createTexture();
> 
> If you're going to store the texture ID on the main thread, please use a ManagedTexture like other layer types.  Otherwise, we can't track this GPU memory or make sure we're not using a bogus texture id when the context is lost.  Additionally, you'll need to reserve it each frame and set m_ioSurfaceChanged if it stops being valid because the texture manager has evicted it.  VideoLayerChromium is a good model to use here.
> 
> > Source/WebCore/platform/graphics/chromium/PluginLayerChromium.cpp:78
> > +        extensions->texImageIOSurface2DCHROMIUM(Extensions3D::TEXTURE_RECTANGLE_ARB,
> > +                                                m_ioSurfaceWidth,
> > +                                                m_ioSurfaceHeight,
> > +                                                m_ioSurfaceId,
> > +                                                0);
> 
> I'm a little dubious about this texImage, since the texture id could be in use on the impl thread.  reveman: If this texture id comes from a managed texture, is that sufficient to work with atomic updates? Does this also need to get wrapped in a texture updater?

It's not sufficient for guaranteeing that these plugin layer updates are atomic. You'll need to use the "deleteTextureAfterCommit(texture->steal())" before reserving the texture for that. Btw, I'm failing to see where in this patch the texture is reserved.

It doesn't need to get wrapped in the texture updater right now. The patches I have in flight requires that but you don't need to worry about the yet.

-- 
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