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