Mesa (master): mesa: remove bogus compressed texture size checks

Brian Paul brianp at kemper.freedesktop.org
Tue Oct 2 21:21:03 UTC 2012


Module: Mesa
Branch: master
Commit: df4a88ac4398ec4c152eb57a7129c07bb623edd7
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=df4a88ac4398ec4c152eb57a7129c07bb623edd7

Author: Brian Paul <brianp at vmware.com>
Date:   Tue Oct  2 09:52:55 2012 -0600

mesa: remove bogus compressed texture size checks

A compressed texture image size doesn't have to be a multiple of the
compressed block size (only sub-images do).  Fixes issues when building
compressed mipmaps because we often wind up with non-block-size images
for the higher mipmap levels.

Fixes https://bugs.freedesktop.org/show_bug.cgi?id=55445

Note: This is a candidate for the stable branches.

Reviewed-by: Eric Anholt <eric at anholt.net>
Tested-by: Sven Arvidsson <sa at whiz.se>

---

 src/mesa/main/teximage.c |   22 ----------------------
 src/mesa/main/texstore.c |    6 ------
 2 files changed, 0 insertions(+), 28 deletions(-)

diff --git a/src/mesa/main/teximage.c b/src/mesa/main/teximage.c
index 8e1e601..019516f 100644
--- a/src/mesa/main/teximage.c
+++ b/src/mesa/main/teximage.c
@@ -2055,28 +2055,6 @@ compressed_texture_error_check(struct gl_context *ctx, GLint dimensions,
       goto error;
    }
 
-   /* check image size against compression block size */
-   /* XXX possibly move this into the _mesa_legal_texture_dimensions() func */
-   {
-      gl_format texFormat =
-         ctx->Driver.ChooseTextureFormat(ctx, target, proxy_format,
-					 choose_format, choose_type);
-      GLuint bw, bh;
-
-      _mesa_get_format_block_size(texFormat, &bw, &bh);
-      if ((width > bw && width % bw > 0) ||
-          (height > bh && height % bh > 0)) {
-         /*
-          * Per GL_ARB_texture_compression:  GL_INVALID_OPERATION is
-          * generated [...] if any parameter combinations are not
-          * supported by the specific compressed internal format. 
-          */
-         reason = "invalid width or height for compression format";
-         error = GL_INVALID_OPERATION;
-         goto error;
-      }
-   }
-
    /* check image size in bytes */
    if (expectedSize != imageSize) {
       /* Per GL_ARB_texture_compression:  GL_INVALID_VALUE is generated [...]
diff --git a/src/mesa/main/texstore.c b/src/mesa/main/texstore.c
index e2598a1..e691455 100644
--- a/src/mesa/main/texstore.c
+++ b/src/mesa/main/texstore.c
@@ -4476,12 +4476,6 @@ _mesa_store_compressed_texsubimage(struct gl_context *ctx, GLuint dims,
 
    _mesa_get_format_block_size(texFormat, &bw, &bh);
 
-   /* these should have been caught sooner */
-   ASSERT((width % bw) == 0 || width < bw);
-   ASSERT((height % bh) == 0 || height < bh);
-   ASSERT((xoffset % bw) == 0);
-   ASSERT((yoffset % bh) == 0);
-
    /* get pointer to src pixels (may be in a pbo which we'll map here) */
    data = _mesa_validate_pbo_compressed_teximage(ctx, imageSize, data,
                                                  &ctx->Unpack,




More information about the mesa-commit mailing list