Index: content/common/gpu/image_transport_surface.cc |
diff --git a/content/common/gpu/image_transport_surface.cc b/content/common/gpu/image_transport_surface.cc |
index c08477225d8c22a32bb93a631634505f54d0601d..a1062dd91ff4a74adb165fde2ed2738912c56d62 100644 |
--- a/content/common/gpu/image_transport_surface.cc |
+++ b/content/common/gpu/image_transport_surface.cc |
@@ -19,6 +19,10 @@ |
#include "ui/gl/gl_implementation.h" |
#include "ui/gl/gl_switches.h" |
+#if defined(OS_WIN) |
+#include "ui/base/win/shell.h" |
+#endif |
+ |
namespace content { |
ImageTransportSurface::ImageTransportSurface() {} |
@@ -149,6 +153,14 @@ |
} |
void ImageTransportHelper::SetSwapInterval(gfx::GLContext* context) { |
+#if defined(OS_WIN) |
+ // If Aero Glass is enabled, then the renderer will handle ratelimiting and |
+ // there's no tearing, so waiting for vsync is unnecessary. |
+ if (ui::win::IsAeroGlassEnabled()) { |
+ context->SetSwapInterval(0); |
+ return; |
+ } |
+#endif |
if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kDisableGpuVsync)) |
context->SetSwapInterval(0); |
else |