Merge branch 'workaround-glx-issue' into 'main'
authorBenjamin Otte <otte.benjamin@googlemail.com>
Fri, 2 Dec 2022 15:32:22 +0000 (15:32 +0000)
committerBenjamin Otte <otte.benjamin@googlemail.com>
Fri, 2 Dec 2022 16:09:11 +0000 (11:09 -0500)
GLX: Add extra glXMakeContextCurrent () call to work around a DRI issue

Closes #4499, #5387, and #5170

See merge request GNOME/gtk!5285

(cherry picked from commit a9c9678e1f617755368f16424a03ae1f2d2ced4e)

f788e994 GLX: Add extra glXMakeContextCurrent () call to work around a DRI issue

gdk/x11/gdkglcontext-glx.c

index 42f9d0c28657ba2c909a2ce5c357c3e404b411d1..6a8d978c9454727ab8ffcb5ad697cf6d05fd5596 100644 (file)
@@ -232,6 +232,12 @@ gdk_x11_gl_context_glx_make_current (GdkGLContext *context,
                      "Making GLX context %p current to drawable %lu",
                      context, (unsigned long) drawable);
 
+  /* Work around a glitch, see
+   * https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/5281
+   */
+  if (glXGetCurrentContext () != self->glx_context)
+    glXMakeContextCurrent (dpy, None, None, NULL);
+
   if (!glXMakeContextCurrent (dpy, drawable, drawable, self->glx_context))
     return FALSE;