xlib: stop calling XShmQueryVersion()
authorBrian Paul <brianp@vmware.com>
Wed, 11 Jan 2012 02:32:38 +0000 (19:32 -0700)
committerBrian Paul <brianp@vmware.com>
Wed, 11 Jan 2012 19:43:45 +0000 (12:43 -0700)
It caused an X protocol error in some (rare) situations.
This is a follow-on to the previous commits which fixes a bug reported
by Wayne E. Robertz.

NOTE: This is a candidate for the 7.11 branch.

Reviewed-by: Adam Jackson <ajax@redhat.com>
src/mesa/drivers/x11/xm_api.c

index 81b245937645a353f1c9ae4e58967429ded6f1d8..bdee2a2a341b24fe48dfbfe43863611092ae4f1d 100644 (file)
@@ -114,16 +114,16 @@ static int host_byte_order( void )
 static int check_for_xshm( XMesaDisplay *display )
 {
 #if defined(USE_XSHM) 
-   int major, minor, ignore;
-   Bool pixmaps;
+   int ignore;
 
    if (XQueryExtension( display, "MIT-SHM", &ignore, &ignore, &ignore )) {
-      if (XShmQueryVersion( display, &major, &minor, &pixmaps )==True) {
-        return (pixmaps==True) ? 2 : 1;
-      }
-      else {
-        return 0;
-      }
+      /* Note: we're no longer calling XShmQueryVersion() here.  It seems
+       * to be flakey (triggers a spurious X protocol error when we close
+       * one display connection and start using a new one.  XShm has been
+       * around a long time and hasn't changed so if MIT_SHM is supported
+       * we assume we're good to go.
+       */
+      return 2;
    }
    else {
       return 0;