[Mesa-dev] [PATCH 2/6] intel: Merge our choosetexformat fallbacks into core.

Eric Anholt eric at anholt.net
Fri Sep 24 17:08:48 PDT 2010


---
 src/mesa/drivers/dri/intel/intel_context.c    |   52 +++++++
 src/mesa/drivers/dri/intel/intel_tex.c        |    1 -
 src/mesa/drivers/dri/intel/intel_tex.h        |    3 -
 src/mesa/drivers/dri/intel/intel_tex_format.c |  201 -------------------------
 src/mesa/main/texformat.c                     |   40 +++++
 5 files changed, 92 insertions(+), 205 deletions(-)

diff --git a/src/mesa/drivers/dri/intel/intel_context.c b/src/mesa/drivers/dri/intel/intel_context.c
index 109c670..8f8395a 100644
--- a/src/mesa/drivers/dri/intel/intel_context.c
+++ b/src/mesa/drivers/dri/intel/intel_context.c
@@ -669,6 +669,58 @@ intelInitContext(struct intel_context *intel,
       }
    }
 
+   memset(&ctx->texture_format_supported, 0,
+	  sizeof(ctx->texture_format_supported));
+   ctx->texture_format_supported[MESA_FORMAT_ARGB8888] = GL_TRUE;
+   if (intel->has_xrgb_textures)
+      ctx->texture_format_supported[MESA_FORMAT_XRGB8888] = GL_TRUE;
+   ctx->texture_format_supported[MESA_FORMAT_ARGB4444] = GL_TRUE;
+   ctx->texture_format_supported[MESA_FORMAT_ARGB1555] = GL_TRUE;
+   ctx->texture_format_supported[MESA_FORMAT_RGB565] = GL_TRUE;
+   ctx->texture_format_supported[MESA_FORMAT_L8] = GL_TRUE;
+   ctx->texture_format_supported[MESA_FORMAT_A8] = GL_TRUE;
+   ctx->texture_format_supported[MESA_FORMAT_I8] = GL_TRUE;
+   ctx->texture_format_supported[MESA_FORMAT_AL88] = GL_TRUE;
+   ctx->texture_format_supported[MESA_FORMAT_AL1616] = GL_TRUE;
+   ctx->texture_format_supported[MESA_FORMAT_S8_Z24] = GL_TRUE;
+   /*
+    * This was disabled in initial FBO enabling to avoid combinations
+    * of depth+stencil that wouldn't work together.  We since decided
+    * that it was OK, since it's up to the app to come up with the
+    * combo that actually works, so this can probably be re-enabled.
+    */
+   /*
+   ctx->texture_format_supported[MESA_FORMAT_Z16] = GL_TRUE;
+   ctx->texture_format_supported[MESA_FORMAT_Z24] = GL_TRUE;
+   */
+
+   /* ctx->Extensions.MESA_ycbcr_texture */
+   ctx->texture_format_supported[MESA_FORMAT_YCBCR] = GL_TRUE;
+   ctx->texture_format_supported[MESA_FORMAT_YCBCR_REV] = GL_TRUE;
+
+   /* GL_3DFX_texture_compression_FXT1 */
+   ctx->texture_format_supported[MESA_FORMAT_RGB_FXT1] = GL_TRUE;
+   ctx->texture_format_supported[MESA_FORMAT_RGBA_FXT1] = GL_TRUE;
+
+   /* GL_EXT_texture_compression_s3tc */
+   ctx->texture_format_supported[MESA_FORMAT_RGB_DXT1] = GL_TRUE;
+   ctx->texture_format_supported[MESA_FORMAT_RGBA_DXT1] = GL_TRUE;
+   ctx->texture_format_supported[MESA_FORMAT_RGBA_DXT3] = GL_TRUE;
+   ctx->texture_format_supported[MESA_FORMAT_RGBA_DXT5] = GL_TRUE;
+
+#ifndef I915
+   ctx->texture_format_supported[MESA_FORMAT_DUDV8] = GL_TRUE;
+   ctx->texture_format_supported[MESA_FORMAT_SIGNED_RGBA8888_REV] = GL_TRUE;
+
+   /* GL_EXT_texture_sRGB */
+   ctx->texture_format_supported[MESA_FORMAT_SARGB8] = GL_TRUE;
+   ctx->texture_format_supported[MESA_FORMAT_SRGB_DXT1] = GL_TRUE;
+   if (intel->has_luminance_srgb) {
+      ctx->texture_format_supported[MESA_FORMAT_SL8] = GL_TRUE;
+      ctx->texture_format_supported[MESA_FORMAT_SLA8] = GL_TRUE;
+   }
+#endif
+
    driParseConfigFiles(&intel->optionCache, &intelScreen->optionCache,
                        sPriv->myNum, (intel->gen >= 4) ? "i965" : "i915");
    if (intelScreen->deviceID == PCI_CHIP_I865_G)
diff --git a/src/mesa/drivers/dri/intel/intel_tex.c b/src/mesa/drivers/dri/intel/intel_tex.c
index 4537f58..1f70beb 100644
--- a/src/mesa/drivers/dri/intel/intel_tex.c
+++ b/src/mesa/drivers/dri/intel/intel_tex.c
@@ -192,7 +192,6 @@ intelGenerateMipmap(GLcontext *ctx, GLenum target,
 void
 intelInitTextureFuncs(struct dd_function_table *functions)
 {
-   functions->ChooseTextureFormat = intelChooseTextureFormat;
    functions->GenerateMipmap = intelGenerateMipmap;
 
    functions->NewTextureObject = intelNewTextureObject;
diff --git a/src/mesa/drivers/dri/intel/intel_tex.h b/src/mesa/drivers/dri/intel/intel_tex.h
index cd77dd5..692b332 100644
--- a/src/mesa/drivers/dri/intel/intel_tex.h
+++ b/src/mesa/drivers/dri/intel/intel_tex.h
@@ -40,9 +40,6 @@ void intelInitTextureSubImageFuncs(struct dd_function_table *functions);
 
 void intelInitTextureCopyImageFuncs(struct dd_function_table *functions);
 
-gl_format intelChooseTextureFormat(GLcontext *ctx, GLint internalFormat,
-                                   GLenum format, GLenum type);
-
 void intelSetTexBuffer(__DRIcontext *pDRICtx,
 		       GLint target, __DRIdrawable *pDraw);
 void intelSetTexBuffer2(__DRIcontext *pDRICtx,
diff --git a/src/mesa/drivers/dri/intel/intel_tex_format.c b/src/mesa/drivers/dri/intel/intel_tex_format.c
index e03b203..0902cdd 100644
--- a/src/mesa/drivers/dri/intel/intel_tex_format.c
+++ b/src/mesa/drivers/dri/intel/intel_tex_format.c
@@ -3,207 +3,6 @@
 #include "main/enums.h"
 #include "main/formats.h"
 
-/**
- * Choose hardware texture format given the user's glTexImage parameters.
- *
- * It works out that this function is fine for all the supported
- * hardware.  However, there is still a need to map the formats onto
- * hardware descriptors.
- *
- * Note that the i915 can actually support many more formats than
- * these if we take the step of simply swizzling the colors
- * immediately after sampling...
- */
-gl_format
-intelChooseTextureFormat(GLcontext * ctx, GLint internalFormat,
-                         GLenum format, GLenum type)
-{
-   struct intel_context *intel = intel_context(ctx);
-
-#if 0
-   printf("%s intFmt=0x%x format=0x%x type=0x%x\n",
-          __FUNCTION__, internalFormat, format, type);
-#endif
-
-   switch (internalFormat) {
-   case 4:
-   case GL_RGBA:
-   case GL_COMPRESSED_RGBA:
-      if (type == GL_UNSIGNED_SHORT_4_4_4_4_REV)
-	 return MESA_FORMAT_ARGB4444;
-      else if (type == GL_UNSIGNED_SHORT_1_5_5_5_REV)
-	 return MESA_FORMAT_ARGB1555;
-      else
-	 return MESA_FORMAT_ARGB8888;
-
-   case 3:
-   case GL_RGB:
-   case GL_COMPRESSED_RGB:
-      if (type == GL_UNSIGNED_SHORT_5_6_5)
-	 return MESA_FORMAT_RGB565;
-      else if (intel->has_xrgb_textures)
-	 return MESA_FORMAT_XRGB8888;
-      else
-	 return MESA_FORMAT_ARGB8888;
-
-   case GL_RGBA8:
-   case GL_RGB10_A2:
-   case GL_RGBA12:
-   case GL_RGBA16:
-      return MESA_FORMAT_ARGB8888;
-
-   case GL_RGBA4:
-   case GL_RGBA2:
-      return MESA_FORMAT_ARGB4444;
-
-   case GL_RGB5_A1:
-      return MESA_FORMAT_ARGB1555;
-
-   case GL_RGB8:
-   case GL_RGB10:
-   case GL_RGB12:
-   case GL_RGB16:
-      if (intel->has_xrgb_textures)
-	 return MESA_FORMAT_XRGB8888;
-      else
-	 return MESA_FORMAT_ARGB8888;
-
-   case GL_RGB5:
-   case GL_RGB4:
-   case GL_R3_G3_B2:
-      return MESA_FORMAT_RGB565;
-
-   case GL_ALPHA:
-   case GL_ALPHA4:
-   case GL_ALPHA8:
-   case GL_ALPHA12:
-   case GL_ALPHA16:
-   case GL_COMPRESSED_ALPHA:
-      return MESA_FORMAT_A8;
-
-   case 1:
-   case GL_LUMINANCE:
-   case GL_LUMINANCE4:
-   case GL_LUMINANCE8:
-   case GL_LUMINANCE12:
-   case GL_LUMINANCE16:
-   case GL_COMPRESSED_LUMINANCE:
-      return MESA_FORMAT_L8;
-
-   case GL_LUMINANCE12_ALPHA4:
-   case GL_LUMINANCE12_ALPHA12:
-   case GL_LUMINANCE16_ALPHA16:
-#ifndef I915
-      return MESA_FORMAT_AL1616;
-#else
-      /* FALLTHROUGH */
-#endif
-
-   case 2:
-   case GL_LUMINANCE_ALPHA:
-   case GL_LUMINANCE4_ALPHA4:
-   case GL_LUMINANCE6_ALPHA2:
-   case GL_LUMINANCE8_ALPHA8:
-   case GL_COMPRESSED_LUMINANCE_ALPHA:
-      return MESA_FORMAT_AL88;
-
-   case GL_INTENSITY:
-   case GL_INTENSITY4:
-   case GL_INTENSITY8:
-   case GL_INTENSITY12:
-   case GL_INTENSITY16:
-   case GL_COMPRESSED_INTENSITY:
-      return MESA_FORMAT_I8;
-
-   case GL_YCBCR_MESA:
-      if (type == GL_UNSIGNED_SHORT_8_8_MESA || type == GL_UNSIGNED_BYTE)
-         return MESA_FORMAT_YCBCR;
-      else
-         return MESA_FORMAT_YCBCR_REV;
-
-   case GL_COMPRESSED_RGB_FXT1_3DFX:
-      return MESA_FORMAT_RGB_FXT1;
-   case GL_COMPRESSED_RGBA_FXT1_3DFX:
-      return MESA_FORMAT_RGBA_FXT1;
-
-   case GL_RGB_S3TC:
-   case GL_RGB4_S3TC:
-   case GL_COMPRESSED_RGB_S3TC_DXT1_EXT:
-      return MESA_FORMAT_RGB_DXT1;
-
-   case GL_COMPRESSED_RGBA_S3TC_DXT1_EXT:
-      return MESA_FORMAT_RGBA_DXT1;
-
-   case GL_RGBA_S3TC:
-   case GL_RGBA4_S3TC:
-   case GL_COMPRESSED_RGBA_S3TC_DXT3_EXT:
-      return MESA_FORMAT_RGBA_DXT3;
-
-   case GL_COMPRESSED_RGBA_S3TC_DXT5_EXT:
-      return MESA_FORMAT_RGBA_DXT5;
-
-   case GL_DEPTH_COMPONENT:
-   case GL_DEPTH_COMPONENT16:
-   case GL_DEPTH_COMPONENT24:
-   case GL_DEPTH_COMPONENT32:
-#if 0
-      return MESA_FORMAT_Z16;
-#else
-      /* fall-through.
-       * 16bpp depth texture can't be paired with a stencil buffer so
-       * always used combined depth/stencil format.
-       */
-#endif
-   case GL_DEPTH_STENCIL_EXT:
-   case GL_DEPTH24_STENCIL8_EXT:
-      return MESA_FORMAT_S8_Z24;
-
-#ifndef I915
-   case GL_SRGB_EXT:
-   case GL_SRGB8_EXT:
-   case GL_SRGB_ALPHA_EXT:
-   case GL_SRGB8_ALPHA8_EXT:
-   case GL_COMPRESSED_SRGB_EXT:
-   case GL_COMPRESSED_SRGB_ALPHA_EXT:
-   case GL_COMPRESSED_SLUMINANCE_EXT:
-   case GL_COMPRESSED_SLUMINANCE_ALPHA_EXT:
-      return MESA_FORMAT_SARGB8;
-   case GL_SLUMINANCE_EXT:
-   case GL_SLUMINANCE8_EXT:
-      if (intel->has_luminance_srgb)
-         return MESA_FORMAT_SL8;
-      else
-         return MESA_FORMAT_SARGB8;
-   case GL_SLUMINANCE_ALPHA_EXT:
-   case GL_SLUMINANCE8_ALPHA8_EXT:
-      if (intel->has_luminance_srgb)
-         return MESA_FORMAT_SLA8;
-      else
-         return MESA_FORMAT_SARGB8;
-   case GL_COMPRESSED_SRGB_S3TC_DXT1_EXT:
-   case GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT:
-   case GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT:
-   case GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT:
-      return MESA_FORMAT_SRGB_DXT1;
-
-   /* i915 could also do this */
-   case GL_DUDV_ATI:
-   case GL_DU8DV8_ATI:
-      return MESA_FORMAT_DUDV8;
-   case GL_RGBA_SNORM:
-   case GL_RGBA8_SNORM:
-      return MESA_FORMAT_SIGNED_RGBA8888_REV;
-#endif
-
-   default:
-      fprintf(stderr, "unexpected texture format %s in %s\n",
-              _mesa_lookup_enum_by_nr(internalFormat), __FUNCTION__);
-      return MESA_FORMAT_NONE;
-   }
-
-   return MESA_FORMAT_NONE;       /* never get here */
-}
-
 int intel_compressed_num_bytes(GLuint mesaFormat)
 {
    GLuint bw, bh;
diff --git a/src/mesa/main/texformat.c b/src/mesa/main/texformat.c
index 1200ca5..30f0a32 100644
--- a/src/mesa/main/texformat.c
+++ b/src/mesa/main/texformat.c
@@ -68,14 +68,25 @@ _mesa_choose_tex_format( GLcontext *ctx, GLint internalFormat,
       /* shallow RGBA formats */
       case 4:
       case GL_RGBA:
+	 if (type == GL_UNSIGNED_SHORT_4_4_4_4_REV) {
+	    RETURN_IF_SUPPORTED(MESA_FORMAT_ARGB4444);
+	 } else if (type == GL_UNSIGNED_SHORT_1_5_5_5_REV) {
+	    RETURN_IF_SUPPORTED(MESA_FORMAT_ARGB1555);
+	 }
+	 RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA8888);
+	 RETURN_IF_SUPPORTED(MESA_FORMAT_ARGB8888);
+	 break;
+
       case GL_RGBA8:
 	 RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA8888);
+	 RETURN_IF_SUPPORTED(MESA_FORMAT_ARGB8888);
 	 break;
       case GL_RGB5_A1:
 	 RETURN_IF_SUPPORTED(MESA_FORMAT_ARGB1555);
 	 break;
       case GL_RGBA2:
          RETURN_IF_SUPPORTED(MESA_FORMAT_ARGB4444_REV); /* just to test another format*/
+         RETURN_IF_SUPPORTED(MESA_FORMAT_ARGB4444);
 	 break;
       case GL_RGBA4:
          RETURN_IF_SUPPORTED(MESA_FORMAT_ARGB4444);
@@ -86,6 +97,8 @@ _mesa_choose_tex_format( GLcontext *ctx, GLint internalFormat,
       case GL_RGBA12:
       case GL_RGBA16:
          RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA_16);
+	 RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA8888);
+	 RETURN_IF_SUPPORTED(MESA_FORMAT_ARGB8888);
 	 break;
 
       /* shallow RGB formats */
@@ -93,9 +106,14 @@ _mesa_choose_tex_format( GLcontext *ctx, GLint internalFormat,
       case GL_RGB:
       case GL_RGB8:
          RETURN_IF_SUPPORTED(MESA_FORMAT_RGB888);
+         RETURN_IF_SUPPORTED(MESA_FORMAT_XRGB8888);
+         RETURN_IF_SUPPORTED(MESA_FORMAT_ARGB8888);
 	 break;
       case GL_R3_G3_B2:
          RETURN_IF_SUPPORTED(MESA_FORMAT_RGB332);
+         RETURN_IF_SUPPORTED(MESA_FORMAT_RGB888);
+         RETURN_IF_SUPPORTED(MESA_FORMAT_XRGB8888);
+         RETURN_IF_SUPPORTED(MESA_FORMAT_ARGB8888);
 	 break;
       case GL_RGB4:
          RETURN_IF_SUPPORTED(MESA_FORMAT_RGB565_REV); /* just to test another format */
@@ -109,6 +127,8 @@ _mesa_choose_tex_format( GLcontext *ctx, GLint internalFormat,
       case GL_RGB12:
       case GL_RGB16:
          RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA_16);
+         RETURN_IF_SUPPORTED(MESA_FORMAT_XRGB8888);
+         RETURN_IF_SUPPORTED(MESA_FORMAT_ARGB8888);
 	 break;
 
       /* Alpha formats */
@@ -143,6 +163,7 @@ _mesa_choose_tex_format( GLcontext *ctx, GLint internalFormat,
       case GL_LUMINANCE12_ALPHA12:
       case GL_LUMINANCE16_ALPHA16:
          RETURN_IF_SUPPORTED(MESA_FORMAT_AL1616);
+         RETURN_IF_SUPPORTED(MESA_FORMAT_AL88);
 	 break;
 
       case GL_INTENSITY:
@@ -173,9 +194,11 @@ _mesa_choose_tex_format( GLcontext *ctx, GLint internalFormat,
          case GL_DEPTH_COMPONENT24:
          case GL_DEPTH_COMPONENT32:
             RETURN_IF_SUPPORTED(MESA_FORMAT_Z32);
+            RETURN_IF_SUPPORTED(MESA_FORMAT_S8_Z24);
 	    break;
          case GL_DEPTH_COMPONENT16:
             RETURN_IF_SUPPORTED(MESA_FORMAT_Z16);
+            RETURN_IF_SUPPORTED(MESA_FORMAT_S8_Z24);
 	    break;
          default:
             ; /* fallthrough */
@@ -202,6 +225,8 @@ _mesa_choose_tex_format( GLcontext *ctx, GLint internalFormat,
          if (ctx->Extensions.TDFX_texture_compression_FXT1)
             RETURN_IF_SUPPORTED(MESA_FORMAT_RGB_FXT1);
          RETURN_IF_SUPPORTED(MESA_FORMAT_RGB888);
+         RETURN_IF_SUPPORTED(MESA_FORMAT_XRGB8888);
+         RETURN_IF_SUPPORTED(MESA_FORMAT_ARGB8888);
 	 break;
       case GL_COMPRESSED_RGBA_ARB:
          if (ctx->Extensions.EXT_texture_compression_s3tc ||
@@ -210,6 +235,7 @@ _mesa_choose_tex_format( GLcontext *ctx, GLint internalFormat,
          if (ctx->Extensions.TDFX_texture_compression_FXT1)
             RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA_FXT1);
          RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA8888);
+         RETURN_IF_SUPPORTED(MESA_FORMAT_ARGB8888);
 	 break;
       default:
          ; /* fallthrough */
@@ -323,6 +349,7 @@ _mesa_choose_tex_format( GLcontext *ctx, GLint internalFormat,
          case GL_DEPTH_STENCIL_EXT:
          case GL_DEPTH24_STENCIL8_EXT:
             RETURN_IF_SUPPORTED(MESA_FORMAT_Z24_S8);
+            RETURN_IF_SUPPORTED(MESA_FORMAT_S8_Z24);
 	    break;
          default:
             ; /* fallthrough */
@@ -345,6 +372,7 @@ _mesa_choose_tex_format( GLcontext *ctx, GLint internalFormat,
          case GL_RGBA_SNORM:
          case GL_RGBA8_SNORM:
             RETURN_IF_SUPPORTED(MESA_FORMAT_SIGNED_RGBA8888);
+            RETURN_IF_SUPPORTED(MESA_FORMAT_SIGNED_RGBA8888_REV);
 	    break;
          default:
             ; /* fallthrough */
@@ -392,24 +420,30 @@ _mesa_choose_tex_format( GLcontext *ctx, GLint internalFormat,
          case GL_SRGB_EXT:
          case GL_SRGB8_EXT:
             RETURN_IF_SUPPORTED(MESA_FORMAT_SRGB8);
+            RETURN_IF_SUPPORTED(MESA_FORMAT_SARGB8);
 	    break;
          case GL_SRGB_ALPHA_EXT:
          case GL_SRGB8_ALPHA8_EXT:
             RETURN_IF_SUPPORTED(MESA_FORMAT_SRGBA8);
+            RETURN_IF_SUPPORTED(MESA_FORMAT_SARGB8);
 	    break;
          case GL_SLUMINANCE_EXT:
          case GL_SLUMINANCE8_EXT:
             RETURN_IF_SUPPORTED(MESA_FORMAT_SL8);
+            RETURN_IF_SUPPORTED(MESA_FORMAT_SARGB8);
 	    break;
          case GL_SLUMINANCE_ALPHA_EXT:
          case GL_SLUMINANCE8_ALPHA8_EXT:
             RETURN_IF_SUPPORTED(MESA_FORMAT_SLA8);
+            RETURN_IF_SUPPORTED(MESA_FORMAT_SARGB8);
 	    break;
          case GL_COMPRESSED_SLUMINANCE_EXT:
             RETURN_IF_SUPPORTED(MESA_FORMAT_SL8);
+            RETURN_IF_SUPPORTED(MESA_FORMAT_SARGB8);
 	    break;
          case GL_COMPRESSED_SLUMINANCE_ALPHA_EXT:
             RETURN_IF_SUPPORTED(MESA_FORMAT_SLA8);
+            RETURN_IF_SUPPORTED(MESA_FORMAT_SARGB8);
 	    break;
          case GL_COMPRESSED_SRGB_EXT:
 #if FEATURE_texture_s3tc
@@ -417,6 +451,7 @@ _mesa_choose_tex_format( GLcontext *ctx, GLint internalFormat,
                RETURN_IF_SUPPORTED(MESA_FORMAT_SRGB_DXT1);
 #endif
             RETURN_IF_SUPPORTED(MESA_FORMAT_SRGB8);
+            RETURN_IF_SUPPORTED(MESA_FORMAT_SARGB8);
 	    break;
          case GL_COMPRESSED_SRGB_ALPHA_EXT:
 #if FEATURE_texture_s3tc
@@ -424,23 +459,28 @@ _mesa_choose_tex_format( GLcontext *ctx, GLint internalFormat,
                RETURN_IF_SUPPORTED(MESA_FORMAT_SRGBA_DXT3); /* Not srgba_dxt1, see spec */
 #endif
             RETURN_IF_SUPPORTED(MESA_FORMAT_SRGBA8);
+            RETURN_IF_SUPPORTED(MESA_FORMAT_SARGB8);
 	    break;
 #if FEATURE_texture_s3tc
          case GL_COMPRESSED_SRGB_S3TC_DXT1_EXT:
             if (ctx->Extensions.EXT_texture_compression_s3tc)
                RETURN_IF_SUPPORTED(MESA_FORMAT_SRGB_DXT1);
+            RETURN_IF_SUPPORTED(MESA_FORMAT_SARGB8);
             break;
          case GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT:
             if (ctx->Extensions.EXT_texture_compression_s3tc)
                RETURN_IF_SUPPORTED(MESA_FORMAT_SRGBA_DXT1);
+            RETURN_IF_SUPPORTED(MESA_FORMAT_SARGB8);
             break;
          case GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT:
             if (ctx->Extensions.EXT_texture_compression_s3tc)
                RETURN_IF_SUPPORTED(MESA_FORMAT_SRGBA_DXT3);
+            RETURN_IF_SUPPORTED(MESA_FORMAT_SARGB8);
             break;
          case GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT:
             if (ctx->Extensions.EXT_texture_compression_s3tc)
                RETURN_IF_SUPPORTED(MESA_FORMAT_SRGBA_DXT5);
+            RETURN_IF_SUPPORTED(MESA_FORMAT_SARGB8);
             break;
 #endif
          default:
-- 
1.7.1



More information about the mesa-dev mailing list