| Index: gpu/ipc/service/image_transport_surface_win.cc
|
| diff --git a/gpu/ipc/service/image_transport_surface_win.cc b/gpu/ipc/service/image_transport_surface_win.cc
|
| index 90fe567d7d66d576588ecebc2f064a8f05b40735..ce4db97d923633ce4e379aaa2554be21a0f2390e 100644
|
| --- a/gpu/ipc/service/image_transport_surface_win.cc
|
| +++ b/gpu/ipc/service/image_transport_surface_win.cc
|
| @@ -32,9 +32,14 @@ scoped_refptr<gl::GLSurface> ImageTransportSurface::CreateNativeSurface(
|
| new ChildWindowSurfaceWin(manager, surface_handle));
|
| surface = egl_surface;
|
|
|
| - // TODO(jbauman): Get frame statistics from DirectComposition
|
| - std::unique_ptr<gfx::VSyncProvider> vsync_provider(
|
| - new gl::VSyncProviderWin(surface_handle));
|
| + std::unique_ptr<gfx::VSyncProvider> vsync_provider;
|
| + // Use DWM based gl::VSyncProviderWin provider only if sync control
|
| + // extension isn't supported. Otherwise the Initialize call below should
|
| + // assign a default VSyncProvider.
|
| + if (!ChildWindowSurfaceWin::HasEGLExtension("EGL_CHROMIUM_sync_control")) {
|
| + vsync_provider.reset(new gl::VSyncProviderWin(surface_handle));
|
| + }
|
| +
|
| if (!egl_surface->Initialize(std::move(vsync_provider)))
|
| return nullptr;
|
| } else {
|
|
|