# HG changeset patch # User Martin Stransky # Date 1526647470 -7200 # Node ID d41fee41e38400fab5da0689c1f49e30f80e2d1b # Parent d2b91476bebc48f9e89f9d3e6c7b33decb2ae941 Bug 1462622 - [Gtk/Linux] Don't use GLXVsyncSource() on non-X11 displays, r=lsalzman MozReview-Commit-ID: BBtnNLWqSiq diff --git a/gfx/thebes/gfxPlatformGtk.cpp b/gfx/thebes/gfxPlatformGtk.cpp --- a/gfx/thebes/gfxPlatformGtk.cpp +++ b/gfx/thebes/gfxPlatformGtk.cpp @@ -736,18 +736,20 @@ private: }; already_AddRefed gfxPlatformGtk::CreateHardwareVsyncSource() { // Only use GLX vsync when the OpenGL compositor is being used. // The extra cost of initializing a GLX context while blocking the main // thread is not worth it when using basic composition. + // Also don't use it on non-X11 displays. if (gfxConfig::IsEnabled(Feature::HW_COMPOSITING)) { - if (gl::sGLXLibrary.SupportsVideoSync()) { + if (GDK_IS_X11_DISPLAY(gdk_display_get_default()) && + gl::sGLXLibrary.SupportsVideoSync()) { RefPtr vsyncSource = new GLXVsyncSource(); VsyncSource::Display& display = vsyncSource->GetGlobalDisplay(); if (!static_cast(display).Setup()) { NS_WARNING("Failed to setup GLContext, falling back to software vsync."); return gfxPlatform::CreateHardwareVsyncSource(); } return vsyncSource.forget(); }