[Webkit-unassigned] [Bug 47848] [chromium] Check getGraphicsResetStatusARB and reinitialize the renderer in an error is returned.
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Mon Oct 18 16:33:06 PDT 2010
https://bugs.webkit.org/show_bug.cgi?id=47848
--- Comment #2 from Vangelis Kokkevis <vangelis at chromium.org> 2010-10-18 16:33:06 PST ---
(From update of attachment 71082)
View in context: https://bugs.webkit.org/attachment.cgi?id=71082&action=review
> WebKit/chromium/src/WebViewImpl.cpp:2484
> +void WebViewImpl::reallocateRenderer(void)
I don't believe that (void) is common in WebKit for methods that take no arguments.
> WebKit/chromium/src/WebViewImpl.cpp:2487
> + RefPtr<GraphicsContext3D> newContext = GraphicsContext3D::create(context->getContextAttributes(), m_page->chrome(), GraphicsContext3D::RenderDirectlyToHostWindow);
It's not guaranteed that either the newContext or the layerRenderer will be non-null. We need to check against failures. There's some logic to keep track of failed creation attempts in WebViewImpl::setIsAcceleratedCompositingActive() that we'll need to use here as well.
If the context is lost, what are the chances we'll be able to re-create it right away? If we fail to create a context should we give up after the first attempt? We'll need to figure out what happens in a real context lost event on windows.
> WebKit/chromium/src/WebViewImpl.cpp:2494
> + m_layerRenderer->rootLayer()->setNeedsDisplayRecursive();
I think that instead of calling setNeedsDisplayRecursive, you can modify LayerChromium::setLayerRenderer to call setNeedsDisplay() after calling cleanupResources(). That way, even layers that are currently not connected to layer hierarchy for some reason will be marked dirty before trying to render.
--
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