Index: content/common/gpu/image_transport_surface_linux.cc |
diff --git a/content/common/gpu/image_transport_surface_linux.cc b/content/common/gpu/image_transport_surface_linux.cc |
index 10ceae2dca77a8293d7a965747362adb77f1b987..87d56489e8f795e193818b3d6b454656cdfc088e 100644 |
--- a/content/common/gpu/image_transport_surface_linux.cc |
+++ b/content/common/gpu/image_transport_surface_linux.cc |
@@ -513,6 +513,11 @@ void GLXImageTransportSurface::OnResize(gfx::Size size) { |
Display* dpy = static_cast<Display*>(GetDisplay()); |
XResizeWindow(dpy, window_, size_.width(), size_.height()); |
glXWaitX(); |
+ // Seems necessary to perform a swap after a resize |
+ // in order to resize the front and back buffers (Intel driver bug). |
+ // This doesn't always happen with scissoring enabled, so do it now. |
+ if (gfx::g_GLX_MESA_copy_sub_buffer) |
+ gfx::NativeViewGLSurfaceGLX::SwapBuffers(); |
needs_resize_ = true; |
} |