glx/dri: only report DRI2 extensions when DRI2 is enabled.
authorDave Airlie <airlied@linux.ie>
Sun, 13 Jul 2008 09:00:46 +0000 (19:00 +1000)
committerDave Airlie <airlied@linux.ie>
Sun, 13 Jul 2008 09:00:46 +0000 (19:00 +1000)
Fixes bug 15477

src/glx/x11/dri2_glx.c
src/glx/x11/dri_common.c
src/glx/x11/dri_common.h
src/glx/x11/dri_glx.c
src/glx/x11/drisw_glx.c

index b679c72..0be65bc 100644 (file)
@@ -308,7 +308,7 @@ static __GLXDRIscreen *dri2CreateScreen(__GLXscreenConfigs *psc, int screen,
        return NULL;
     }
 
-    driBindExtensions(psc);
+    driBindExtensions(psc, 1);
 
     psc->configs = driConvertConfigs(psc->core, psc->configs, driver_configs);
     psc->visuals = driConvertConfigs(psc->core, psc->visuals, driver_configs);
index b159d19..8175f46 100644 (file)
@@ -329,7 +329,7 @@ driConvertConfigs(const __DRIcoreExtension *core,
 }
 
 _X_HIDDEN void
-driBindExtensions(__GLXscreenConfigs *psc)
+driBindExtensions(__GLXscreenConfigs *psc, int dri2)
 {
     const __DRIextension **extensions;
     int i;
@@ -386,7 +386,7 @@ driBindExtensions(__GLXscreenConfigs *psc)
 #endif
 
 #ifdef __DRI_TEX_BUFFER
-       if (strcmp(extensions[i]->name, __DRI_TEX_BUFFER) == 0) {
+       if ((strcmp(extensions[i]->name, __DRI_TEX_BUFFER) == 0) && dri2) {
            psc->texBuffer = (__DRItexBufferExtension *) extensions[i];
            __glXEnableDirectExtension(psc, "GLX_EXT_texture_from_pixmap");
        }
index 3556510..15f6cc8 100644 (file)
@@ -55,6 +55,6 @@ extern void ErrorMessageF(const char *f, ...);
 
 extern void *driOpenDriver(const char *driverName);
 
-extern void driBindExtensions(__GLXscreenConfigs *psc);
+extern void driBindExtensions(__GLXscreenConfigs *psc, int dri2);
 
 #endif /* _DRI_COMMON_H */
index d53f2d9..82653f1 100644 (file)
@@ -635,7 +635,7 @@ static __GLXDRIscreen *driCreateScreen(__GLXscreenConfigs *psc, int screen,
        return NULL;
     }
 
-    driBindExtensions(psc);
+    driBindExtensions(psc, 0);
 
     psp->destroyScreen = driDestroyScreen;
     psp->createContext = driCreateContext;
index f7ff001..bcf7e14 100644 (file)
@@ -390,7 +390,7 @@ static __GLXDRIscreen *driCreateScreen(__GLXscreenConfigs *psc, int screen,
        goto handle_error;
     }
 
-    driBindExtensions(psc);
+    driBindExtensions(psc, 0);
 
     psc->configs = driConvertConfigs(psc->core, psc->configs, driver_configs);
     psc->visuals = driConvertConfigs(psc->core, psc->visuals, driver_configs);