Index: content/renderer/render_widget.cc |
diff --git a/content/renderer/render_widget.cc b/content/renderer/render_widget.cc |
index 506ef653a9709230f0565da2640062c670e1d77c..27cfe0e2a8a423abcf84fc54cd4e0ce681d069a1 100644 |
--- a/content/renderer/render_widget.cc |
+++ b/content/renderer/render_widget.cc |
@@ -2826,8 +2826,14 @@ RenderWidget::CreateGraphicsContext3D( |
base::WeakPtr<WebGraphicsContext3DSwapBuffersClient> swap_client; |
- if (!is_threaded_compositing_enabled_) |
+ bool use_echo_for_swap_ack = true; |
+ if (!is_threaded_compositing_enabled_) { |
swap_client = weak_ptr_factory_.GetWeakPtr(); |
+#if (defined(OS_MACOSX) || defined(OS_WIN)) && !defined(USE_AURA) |
+ // ViewMsg_SwapBuffers_ACK is used instead for single-threaded path. |
+ use_echo_for_swap_ack = false; |
+#endif |
+ } |
scoped_ptr<WebGraphicsContext3DCommandBufferImpl> context( |
new WebGraphicsContext3DCommandBufferImpl( |
@@ -2835,6 +2841,7 @@ RenderWidget::CreateGraphicsContext3D( |
GetURLForGraphicsContext3D(), |
gpu_channel_host.get(), |
swap_client, |
+ use_echo_for_swap_ack, |
attributes, |
false /* bind generates resources */, |
limits)); |