glxEnableExtension is a platform-specific function exported by the loader.
authorIan Romanick <idr@us.ibm.com>
Thu, 28 Jul 2005 21:57:17 +0000 (21:57 +0000)
committerIan Romanick <idr@us.ibm.com>
Thu, 28 Jul 2005 21:57:17 +0000 (21:57 +0000)
Therefore, drivers should not require it to run.

src/mesa/drivers/dri/i830/i830_screen.c
src/mesa/drivers/dri/i915/intel_screen.c
src/mesa/drivers/dri/mach64/mach64_screen.c
src/mesa/drivers/dri/mga/mga_xmesa.c
src/mesa/drivers/dri/r128/r128_screen.c
src/mesa/drivers/dri/r200/r200_screen.c
src/mesa/drivers/dri/r300/radeon_screen.c
src/mesa/drivers/dri/radeon/radeon_screen.c
src/mesa/drivers/dri/unichrome/via_screen.c

index b1a5618..af5049d 100644 (file)
@@ -147,10 +147,6 @@ static GLboolean i830InitDriver(__DRIscreenPrivate *sPriv)
    void * const psc = sPriv->psc->screenConfigs;
 
 
-   if ( glx_enable_extension == NULL ) {
-      return GL_FALSE;
-   }
-
    /* Allocate the private area */
    i830Screen = (i830ScreenPrivate *)CALLOC(sizeof(i830ScreenPrivate));
    if (!i830Screen) {
@@ -286,7 +282,9 @@ static GLboolean i830InitDriver(__DRIscreenPrivate *sPriv)
    }
 #endif
 
-   (*glx_enable_extension)( psc, "GLX_SGI_make_current_read" );
+   if ( glx_enable_extension == NULL ) {
+      (*glx_enable_extension)( psc, "GLX_SGI_make_current_read" );
+   }
 
    return GL_TRUE;
 }
index e474850..f9c618e 100644 (file)
@@ -80,10 +80,6 @@ static GLboolean intelInitDriver(__DRIscreenPrivate *sPriv)
    void * const psc = sPriv->psc->screenConfigs;
 
 
-   if (glx_enable_extension == NULL) {
-      return GL_FALSE;
-   }
-
    /* Allocate the private area */
    intelScreen = (intelScreenPrivate *)CALLOC(sizeof(intelScreenPrivate));
    if (!intelScreen) {
@@ -199,14 +195,15 @@ static GLboolean intelInitDriver(__DRIscreenPrivate *sPriv)
       }
    }
 
-   (*glx_enable_extension)( psc, "GLX_SGI_make_current_read" );
+   if (glx_enable_extension == NULL) {
+      (*glx_enable_extension)( psc, "GLX_SGI_make_current_read" );
+      (*glx_enable_extension)( psc, "GLX_MESA_allocate_memory" );
+   }
    
    sPriv->psc->allocateMemory = (void *) intelAllocateMemoryMESA;
    sPriv->psc->freeMemory     = (void *) intelFreeMemoryMESA;
    sPriv->psc->memoryOffset   = (void *) intelGetMemoryOffsetMESA;
 
-   (*glx_enable_extension)( psc, "GLX_MESA_allocate_memory" );
-
    return GL_TRUE;
 }
                
index df1ed92..e87c87c 100644 (file)
@@ -215,10 +215,6 @@ mach64CreateScreen( __DRIscreenPrivate *sPriv )
    if ( MACH64_DEBUG & DEBUG_VERBOSE_DRI ) 
       fprintf( stderr, "%s\n", __FUNCTION__ );
 
-   if ( glx_enable_extension == NULL ) {
-      return NULL;
-   }
-
    /* Allocate the private area */
    mach64Screen = (mach64ScreenPtr) CALLOC( sizeof(*mach64Screen) );
    if ( !mach64Screen ) return NULL;
@@ -318,13 +314,15 @@ mach64CreateScreen( __DRIscreenPrivate *sPriv )
 
    mach64Screen->driScreen = sPriv;
 
-   if ( mach64Screen->irq != 0 ) {
-      (*glx_enable_extension)( psc, "GLX_SGI_swap_control" );
-      (*glx_enable_extension)( psc, "GLX_SGI_video_sync" );
-      (*glx_enable_extension)( psc, "GLX_MESA_swap_control" );
-   }
+   if ( glx_enable_extension == NULL ) {
+      if ( mach64Screen->irq != 0 ) {
+        (*glx_enable_extension)( psc, "GLX_SGI_swap_control" );
+        (*glx_enable_extension)( psc, "GLX_SGI_video_sync" );
+        (*glx_enable_extension)( psc, "GLX_MESA_swap_control" );
+      }
 
-   (*glx_enable_extension)( psc, "GLX_MESA_swap_frame_usage" );
+      (*glx_enable_extension)( psc, "GLX_MESA_swap_frame_usage" );
+   }
 
    return mach64Screen;
 }
index ef080b5..cf3db99 100644 (file)
@@ -201,10 +201,6 @@ mgaInitDriver(__DRIscreenPrivate *sPriv)
    void * const psc = sPriv->psc->screenConfigs;
 
 
-   if ( glx_enable_extension == NULL ) {
-      return GL_FALSE;
-   }
-
    /* Allocate the private area */
    mgaScreen = (mgaScreenPrivate *)MALLOC(sizeof(mgaScreenPrivate));
    if (!mgaScreen) {
@@ -233,11 +229,13 @@ mgaInitDriver(__DRIscreenPrivate *sPriv)
       }
    }
 
-   (*glx_enable_extension)( psc, "GLX_MESA_swap_control" );
-   (*glx_enable_extension)( psc, "GLX_MESA_swap_frame_usage" );
-   (*glx_enable_extension)( psc, "GLX_SGI_make_current_read" );
-   (*glx_enable_extension)( psc, "GLX_SGI_swap_control" );
-   (*glx_enable_extension)( psc, "GLX_SGI_video_sync" );
+   if ( glx_enable_extension == NULL ) {
+      (*glx_enable_extension)( psc, "GLX_MESA_swap_control" );
+      (*glx_enable_extension)( psc, "GLX_MESA_swap_frame_usage" );
+      (*glx_enable_extension)( psc, "GLX_SGI_make_current_read" );
+      (*glx_enable_extension)( psc, "GLX_SGI_swap_control" );
+      (*glx_enable_extension)( psc, "GLX_SGI_video_sync" );
+   }
 
    if (serverInfo->chipset != MGA_CARD_TYPE_G200 &&
        serverInfo->chipset != MGA_CARD_TYPE_G400) {
index b6177bf..c1ec8cf 100644 (file)
@@ -103,10 +103,6 @@ r128CreateScreen( __DRIscreenPrivate *sPriv )
    void * const psc = sPriv->psc->screenConfigs;
 
 
-   if ( glx_enable_extension == NULL ) {
-      return NULL;
-   }
-
    /* Allocate the private area */
    r128Screen = (r128ScreenPtr) CALLOC( sizeof(*r128Screen) );
    if ( !r128Screen ) return NULL;
@@ -218,13 +214,15 @@ r128CreateScreen( __DRIscreenPrivate *sPriv )
 
    r128Screen->driScreen = sPriv;
 
-   if ( r128Screen->irq != 0 ) {
-      (*glx_enable_extension)( psc, "GLX_SGI_swap_control" );
-      (*glx_enable_extension)( psc, "GLX_SGI_video_sync" );
-      (*glx_enable_extension)( psc, "GLX_MESA_swap_control" );
-   }
+   if ( glx_enable_extension == NULL ) {
+      if ( r128Screen->irq != 0 ) {
+        (*glx_enable_extension)( psc, "GLX_SGI_swap_control" );
+        (*glx_enable_extension)( psc, "GLX_SGI_video_sync" );
+        (*glx_enable_extension)( psc, "GLX_MESA_swap_control" );
+      }
 
-   (*glx_enable_extension)( psc, "GLX_MESA_swap_frame_usage" );
+      (*glx_enable_extension)( psc, "GLX_MESA_swap_frame_usage" );
+   }
 
    return r128Screen;
 }
index f0e09d5..e68f7da 100644 (file)
@@ -240,10 +240,6 @@ r200CreateScreen( __DRIscreenPrivate *sPriv )
    void * const psc = sPriv->psc->screenConfigs;
 
 
-   if ( glx_enable_extension == NULL ) {
-      return NULL;
-   }
-
    /* Allocate the private area */
    screen = (r200ScreenPtr) CALLOC( sizeof(*screen) );
    if ( !screen ) {
@@ -467,20 +463,21 @@ r200CreateScreen( __DRIscreenPrivate *sPriv )
    screen->driScreen = sPriv;
    screen->sarea_priv_offset = dri_priv->sarea_priv_offset;
 
-   if ( screen->irq != 0 ) {
-      (*glx_enable_extension)( psc, "GLX_SGI_swap_control" );
-      (*glx_enable_extension)( psc, "GLX_SGI_video_sync" );
-      (*glx_enable_extension)( psc, "GLX_MESA_swap_control" );
-   }
+   if ( glx_enable_extension == NULL ) {
+      if ( screen->irq != 0 ) {
+        (*glx_enable_extension)( psc, "GLX_SGI_swap_control" );
+        (*glx_enable_extension)( psc, "GLX_SGI_video_sync" );
+        (*glx_enable_extension)( psc, "GLX_MESA_swap_control" );
+      }
 
-   (*glx_enable_extension)( psc, "GLX_MESA_swap_frame_usage" );
+      (*glx_enable_extension)( psc, "GLX_MESA_swap_frame_usage" );
+      (*glx_enable_extension)( psc, "GLX_MESA_allocate_memory" );
+   }
 
    sPriv->psc->allocateMemory = (void *) r200AllocateMemoryMESA;
    sPriv->psc->freeMemory     = (void *) r200FreeMemoryMESA;
    sPriv->psc->memoryOffset   = (void *) r200GetMemoryOffsetMESA;
 
-   (*glx_enable_extension)( psc, "GLX_MESA_allocate_memory" );
-
    return screen;
 }
 
index 18919dd..466e6b0 100644 (file)
@@ -316,10 +316,6 @@ static radeonScreenPtr radeonCreateScreen(__DRIscreenPrivate * sPriv)
        void *const psc = sPriv->psc->screenConfigs;
 
 
-       if (glx_enable_extension == NULL) {
-               return NULL;
-       }
-
        /* Allocate the private area */
        screen = (radeonScreenPtr) CALLOC(sizeof(*screen));
        if (!screen) {
@@ -586,20 +582,24 @@ static radeonScreenPtr radeonCreateScreen(__DRIscreenPrivate * sPriv)
        screen->driScreen = sPriv;
        screen->sarea_priv_offset = dri_priv->sarea_priv_offset;
 
-       if (screen->irq != 0) {
-               (*glx_enable_extension) (psc, "GLX_SGI_swap_control");
-               (*glx_enable_extension) (psc, "GLX_SGI_video_sync");
-               (*glx_enable_extension) (psc, "GLX_MESA_swap_control");
-       }
+       if (glx_enable_extension == NULL) {
+               if (screen->irq != 0) {
+                       (*glx_enable_extension) (psc, "GLX_SGI_swap_control");
+                       (*glx_enable_extension) (psc, "GLX_SGI_video_sync");
+                       (*glx_enable_extension) (psc, "GLX_MESA_swap_control");
+               }
 
-       (*glx_enable_extension) (psc, "GLX_MESA_swap_frame_usage");
+               (*glx_enable_extension) (psc, "GLX_MESA_swap_frame_usage");
+       }
 
 #if R200_MERGED
        sPriv->psc->allocateMemory = (void *)r200AllocateMemoryMESA;
        sPriv->psc->freeMemory = (void *)r200FreeMemoryMESA;
        sPriv->psc->memoryOffset = (void *)r200GetMemoryOffsetMESA;
 
-       (*glx_enable_extension) (psc, "GLX_MESA_allocate_memory");
+       if (glx_enable_extension == NULL) {
+               (*glx_enable_extension) (psc, "GLX_MESA_allocate_memory");
+       }
 #endif
 
        return screen;
index 0a2bb7e..6822fed 100644 (file)
@@ -213,10 +213,6 @@ radeonScreenPtr radeonCreateScreen( __DRIscreenPrivate *sPriv )
    void * const psc = sPriv->psc->screenConfigs;
 
 
-   if ( glx_enable_extension == NULL ) {
-      return NULL;
-   }
-
    /* Allocate the private area */
    screen = (radeonScreenPtr) CALLOC( sizeof(*screen) );
    if ( !screen ) {
@@ -395,13 +391,15 @@ radeonScreenPtr radeonCreateScreen( __DRIscreenPrivate *sPriv )
         dri_priv->log2GARTTexGran;
    }
 
-   if ( screen->irq != 0 ) {
-      (*glx_enable_extension)( psc, "GLX_SGI_swap_control" );
-      (*glx_enable_extension)( psc, "GLX_SGI_video_sync" );
-      (*glx_enable_extension)( psc, "GLX_MESA_swap_control" );
-   }
+   if ( glx_enable_extension != NULL ) {
+      if ( screen->irq != 0 ) {
+        (*glx_enable_extension)( psc, "GLX_SGI_swap_control" );
+        (*glx_enable_extension)( psc, "GLX_SGI_video_sync" );
+        (*glx_enable_extension)( psc, "GLX_MESA_swap_control" );
+      }
 
-   (*glx_enable_extension)( psc, "GLX_MESA_swap_frame_usage" );
+      (*glx_enable_extension)( psc, "GLX_MESA_swap_frame_usage" );
+   }
 
    screen->driScreen = sPriv;
    screen->sarea_priv_offset = dri_priv->sarea_priv_offset;
index 2ae2322..b718fd4 100644 (file)
@@ -102,11 +102,6 @@ viaInitDriver(__DRIscreenPrivate *sPriv)
     void * const psc = sPriv->psc->screenConfigs;
 
 
-    if ( glx_enable_extension == NULL ) {
-       return GL_FALSE;
-    }
-
-
     /* Allocate the private area */
     viaScreen = (viaScreenPrivate *) CALLOC(sizeof(viaScreenPrivate));
     if (!viaScreen) {
@@ -175,13 +170,15 @@ viaInitDriver(__DRIscreenPrivate *sPriv)
 
     viaScreen->sareaPrivOffset = gDRIPriv->sarea_priv_offset;
 
-    if ( viaScreen->irqEnabled ) {
-       (*glx_enable_extension)( psc, "GLX_SGI_swap_control" );
-       (*glx_enable_extension)( psc, "GLX_SGI_video_sync" );
-       (*glx_enable_extension)( psc, "GLX_MESA_swap_control" );
-    }
+    if ( glx_enable_extension == NULL ) {
+       if ( viaScreen->irqEnabled ) {
+         (*glx_enable_extension)( psc, "GLX_SGI_swap_control" );
+         (*glx_enable_extension)( psc, "GLX_SGI_video_sync" );
+         (*glx_enable_extension)( psc, "GLX_MESA_swap_control" );
+       }
 
-    (*glx_enable_extension)( psc, "GLX_MESA_swap_frame_usage" );
+       (*glx_enable_extension)( psc, "GLX_MESA_swap_frame_usage" );
+    }
 
     return GL_TRUE;
 }