[Mesa-dev] [PATCH] mesa: Fix generic compressed texture formats' handling in glTexImage/glCopyTexImage

Anuj Phogat anuj.phogat at gmail.com
Tue Aug 21 11:57:39 PDT 2012


The generic texture formats should be accepted by the <internalformat>
parameter of TexImage1D, TexImage2D, TexImage3D, CopyTexImage1D, and
CopyTexImage2D functions. When the application specifies a generic
format, the driver is free to pick an uncompressed format.

This patch reverts the changes due to following commit:
commit a36581ccc06693231011c3fe136207e73191b1ce
Author: Brian Paul <brianp at vmware.com>
Date:   Tue May 1 14:46:04 2012 -0600
mesa: do more teximage error checking for generic compressed formats

This patch fixes compressed texture format failures in intel oglconform
pxconv-gettex test case:
https://bugs.freedesktop.org/show_bug.cgi?id=47220

Signed-off-by: Anuj Phogat <anuj.phogat at gmail.com>
---
 src/mesa/main/teximage.c |   32 ++------------------------------
 1 files changed, 2 insertions(+), 30 deletions(-)

diff --git a/src/mesa/main/teximage.c b/src/mesa/main/teximage.c
index fd02a1b..27294ba 100644
--- a/src/mesa/main/teximage.c
+++ b/src/mesa/main/teximage.c
@@ -541,32 +541,6 @@ _mesa_base_tex_format( struct gl_context *ctx, GLint internalFormat )
 
 
 /**
- * Is the given texture format a generic compressed format?
- */
-static GLboolean
-is_generic_compressed_format(GLenum format)
-{
-   switch (format) {
-   case GL_COMPRESSED_RED:
-   case GL_COMPRESSED_RG:
-   case GL_COMPRESSED_RGB:
-   case GL_COMPRESSED_RGBA:
-   case GL_COMPRESSED_ALPHA:
-   case GL_COMPRESSED_LUMINANCE:
-   case GL_COMPRESSED_LUMINANCE_ALPHA:
-   case GL_COMPRESSED_INTENSITY:
-   case GL_COMPRESSED_SRGB:
-   case GL_COMPRESSED_SRGB_ALPHA:
-   case GL_COMPRESSED_SLUMINANCE:
-   case GL_COMPRESSED_SLUMINANCE_ALPHA:
-      return GL_TRUE;
-   default:
-      return GL_FALSE;
-   }
-}
-
-
-/**
  * For cube map faces, return a face index in [0,5].
  * For other targets return 0;
  */
@@ -1745,8 +1719,7 @@ texture_error_check( struct gl_context *ctx,
    }
 
    /* additional checks for compressed textures */
-   if (_mesa_is_compressed_format(ctx, internalFormat) ||
-       is_generic_compressed_format(internalFormat)) {
+   if (_mesa_is_compressed_format(ctx, internalFormat)) {
       if (!target_can_be_compressed(ctx, target, internalFormat)) {
          if (!isProxy)
             _mesa_error(ctx, GL_INVALID_ENUM,
@@ -2077,8 +2050,7 @@ copytexture_error_check( struct gl_context *ctx, GLuint dimensions,
       return GL_TRUE;
    }
 
-   if (_mesa_is_compressed_format(ctx, internalFormat) ||
-       is_generic_compressed_format(internalFormat)) {
+   if (_mesa_is_compressed_format(ctx, internalFormat)) {
       if (!target_can_be_compressed(ctx, target, internalFormat)) {
          _mesa_error(ctx, GL_INVALID_ENUM,
                      "glCopyTexImage%dD(target)", dimensions);
-- 
1.7.7.6



More information about the mesa-dev mailing list