diff --git a/gdk/gdkgltexture.c b/gdk/gdkgltexture.c index e6c1a0369b..c7deca87c5 100644 --- a/gdk/gdkgltexture.c +++ b/gdk/gdkgltexture.c @@ -100,6 +100,10 @@ gdk_gl_texture_invoke_callback (gpointer data) context = gdk_display_get_gl_context (gdk_gl_context_get_display (invoke->self->context)); gdk_gl_context_make_current (context); + + if (invoke->self->sync && context != invoke->self->context) + glWaitSync (invoke->self->sync, 0, GL_TIMEOUT_IGNORED); + glBindTexture (GL_TEXTURE_2D, invoke->self->id); invoke->func (invoke->self, context, invoke->data);