--- a/src/backends/x11/meta-backend-x11.c 2017-04-18 12:12:13.502104430 +0300 +++ b/src/backends/x11/meta-backend-x11.c 2017-04-18 12:17:36.020693209 +0300 @@ -605,12 +605,6 @@ static void meta_backend_x11_init (MetaBackendX11 *x11) { - /* XInitThreads() is needed to use the "threaded swap wait" functionality - * in Cogl - see meta_renderer_x11_create_cogl_renderer(). We call it here - * to hopefully call it before any other use of XLib. - */ - XInitThreads(); - /* We do X11 event retrieval ourselves */ clutter_x11_disable_event_retrieval (); --- a/src/backends/x11/meta-renderer-x11.c 2017-04-18 12:12:13.502104430 +0300 +++ b/src/backends/x11/meta-renderer-x11.c 2017-04-18 12:20:34.369354522 +0300 @@ -74,14 +74,6 @@ cogl_renderer_set_custom_winsys (cogl_renderer, get_x11_cogl_winsys_vtable); cogl_xlib_renderer_set_foreign_display (cogl_renderer, xdisplay); - /* Set up things so that if the INTEL_swap_event extension is not present, - * but the driver is known to have good thread support, we use an extra - * thread and call glXWaitVideoSync() in the thread. This allows idles - * to work properly, even when Mutter is constantly redrawing new frames; - * otherwise, without INTEL_swap_event, we'll just block in glXSwapBuffers(). - */ - cogl_xlib_renderer_set_threaded_swap_wait_enabled (cogl_renderer, TRUE); - return cogl_renderer; }