Disable SGI_swap_control extension for DRI2
authorOwen W. Taylor <otaylor@fishsoup.net>
Sat, 6 Jun 2009 18:46:22 +0000 (14:46 -0400)
committerIan Romanick <ian.d.romanick@intel.com>
Mon, 22 Jun 2009 22:15:20 +0000 (15:15 -0700)
We currently don't have support for SGI_swap_control for direct
contexts with DRI2, so disable reporting the extension. Reporting
the extension, and then having glXSwapIntervalSGI() "succeed"
but do nothing can confuse applications.

https://bugs.freedesktop.org/show_bug.cgi?id=22123
(cherry picked from commit 279143c6e808b37c333321b696d80df77f709a04)

src/glx/x11/dri_common.c

index 90c3d8c7d9d3fa2310c53da28577a2985613137a..6de41111134399c948fa226c33acf9d28b18da9b 100644 (file)
@@ -345,7 +345,9 @@ driBindExtensions(__GLXscreenConfigs *psc, int dri2)
 #endif
 
 #ifdef __DRI_SWAP_CONTROL
-       if (strcmp(extensions[i]->name, __DRI_SWAP_CONTROL) == 0) {
+       /* No DRI2 support for swap_control at the moment, since SwapBuffers
+        * is done by the X server */
+       if (strcmp(extensions[i]->name, __DRI_SWAP_CONTROL) == 0 && !dri2) {
            psc->swapControl = (__DRIswapControlExtension *) extensions[i];
            __glXEnableDirectExtension(psc, "GLX_SGI_swap_control");
            __glXEnableDirectExtension(psc, "GLX_MESA_swap_control");