mesa/teximage: return the base internal format of the ASTC formats
authorNanley Chery <nanley.g.chery@intel.com>
Tue, 28 Apr 2015 22:10:11 +0000 (15:10 -0700)
committerNanley Chery <nanley.g.chery@intel.com>
Wed, 26 Aug 2015 21:36:43 +0000 (14:36 -0700)
This is necesary to initialize the gl_texture_image struct.

From the KHR_texture_compression_astc_ldr spec:
  "Added to Section 3.8.6, Compressed Texture Images

   Add the tokens specified above to Table 3.16, Compressed Internal Formats.
   In all cases, the base internal format will be RGBA. The encoding allows
   images to be encoded with fewer channels, but this is always presented as
   RGBA to the sampler."

v2. use _mesa_is_astc_format().

Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com>
Signed-off-by: Nanley Chery <nanley.g.chery@intel.com>
src/mesa/main/teximage.c

index 56ae4150a6faf8050ff3c4f324d4cb454ce4cc52..0535db35f26b8c9c44853a6304d2f0a19f5623f6 100644 (file)
@@ -565,6 +565,10 @@ _mesa_base_tex_format( struct gl_context *ctx, GLint internalFormat )
       }
    }
 
+   if (ctx->Extensions.KHR_texture_compression_astc_ldr &&
+       _mesa_is_astc_format(internalFormat))
+         return GL_RGBA;
+
    if (_mesa_is_gles3(ctx) || ctx->Extensions.ARB_ES3_compatibility) {
       switch (internalFormat) {
       case GL_COMPRESSED_RGB8_ETC2: