| Index: ui/gfx/gl/gl_context_glx.cc
|
| diff --git a/ui/gfx/gl/gl_context_glx.cc b/ui/gfx/gl/gl_context_glx.cc
|
| index 12013b553dde7d0401fdfc8a756efc0a275929bb..e67400400550c327360a9fcab173b4e6fc65eb4e 100644
|
| --- a/ui/gfx/gl/gl_context_glx.cc
|
| +++ b/ui/gfx/gl/gl_context_glx.cc
|
| @@ -119,12 +119,21 @@ void GLContextGLX::SetSwapInterval(int interval) {
|
| // manager. At the moment, compositing window managers don't
|
| // respect this setting anyway (tearing still occurs) and it
|
| // dramatically increases latency.
|
| - if (!IsCompositingWindowManagerActive(GLSurfaceGLX::GetDisplay())) {
|
| - glXSwapIntervalEXT(
|
| - GLSurfaceGLX::GetDisplay(),
|
| - glXGetCurrentDrawable(),
|
| - interval);
|
| + if (interval == 1 &&
|
| + IsCompositingWindowManagerActive(GLSurfaceGLX::GetDisplay())) {
|
| + LOG(INFO) <<
|
| + "Forcing vsync off because compositing window manager was detected.";
|
| + interval = 0;
|
| }
|
| + glXSwapIntervalEXT(
|
| + GLSurfaceGLX::GetDisplay(),
|
| + glXGetCurrentDrawable(),
|
| + interval);
|
| + } else {
|
| + if(interval == 0)
|
| + LOG(WARNING) <<
|
| + "Could not disable vsync: driver does not "
|
| + "support GLX_EXT_swap_control";
|
| }
|
| }
|
|
|
|
|