Title: [90185] trunk/Source/WebKit/chromium
Revision
90185
Author
[email protected]
Date
2011-06-30 16:46:54 -0700 (Thu, 30 Jun 2011)

Log Message

2011-06-30  John Bates  <[email protected]>

        Reviewed by James Robinson.

        Chromium bug: Compositing on a lost context causes latch deadlocks.
        The cause of deadlock was that a setLatch command is added to the lost
        compositor GL context, and a waitLatch would never complete on a child context.
        This change checks whether the compositor context is in error state before
        doing the compositing.
        https://bugs.webkit.org/show_bug.cgi?id=63681

        * src/WebViewImpl.cpp:
        (WebKit::WebViewImpl::composite):

Modified Paths

Diff

Modified: trunk/Source/WebKit/chromium/ChangeLog (90184 => 90185)


--- trunk/Source/WebKit/chromium/ChangeLog	2011-06-30 23:40:32 UTC (rev 90184)
+++ trunk/Source/WebKit/chromium/ChangeLog	2011-06-30 23:46:54 UTC (rev 90185)
@@ -1,3 +1,17 @@
+2011-06-30  John Bates  <[email protected]>
+
+        Reviewed by James Robinson.
+
+        Chromium bug: Compositing on a lost context causes latch deadlocks.
+        The cause of deadlock was that a setLatch command is added to the lost
+        compositor GL context, and a waitLatch would never complete on a child context.
+        This change checks whether the compositor context is in error state before
+        doing the compositing.
+        https://bugs.webkit.org/show_bug.cgi?id=63681
+
+        * src/WebViewImpl.cpp:
+        (WebKit::WebViewImpl::composite):
+
 2011-06-30  Cary Clark  <[email protected]>
 
         Reviewed by James Robinson.

Modified: trunk/Source/WebKit/chromium/src/WebViewImpl.cpp (90184 => 90185)


--- trunk/Source/WebKit/chromium/src/WebViewImpl.cpp	2011-06-30 23:40:32 UTC (rev 90184)
+++ trunk/Source/WebKit/chromium/src/WebViewImpl.cpp	2011-06-30 23:46:54 UTC (rev 90185)
@@ -1167,11 +1167,15 @@
         m_recreatingGraphicsContext = false;
         return;
     }
-    doComposite();
 
-    // Put result onscreen.
-    m_layerRenderer->present();
+    // Do not composite if the compositor context is already lost.
+    if (!m_layerRenderer->isCompositorContextLost()) {
+        doComposite();
 
+        // Put result onscreen.
+        m_layerRenderer->present();
+    }
+
     if (m_layerRenderer->isCompositorContextLost()) {
         // Trying to recover the context right here will not work if GPU process
         // died. This is because GpuChannelHost::OnErrorMessage will only be
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to