mesa: Fix assertions for block size handling in glCompressedTexSubImage2D.
authorEric Anholt <eric@anholt.net>
Thu, 1 Dec 2011 22:52:44 +0000 (14:52 -0800)
committerEric Anholt <eric@anholt.net>
Fri, 2 Dec 2011 23:28:44 +0000 (15:28 -0800)
Anything of less than (bw, bh) size is possible when you consider
rectangular textures, and this code is (now) safe for those.  Even for
power-of-two textures, width could be 4 for FXT1 while not being
aligned to block size.

Fixes piglit compressedteximage GL_COMPRESSED_RGB_FXT1_3DFX

Reviewed-by: Brian Paul <brianp@vmware.com>
src/mesa/main/texstore.c

index 99adf799f6298c4526ac6ce5bbc4a07927d7bd50..37fea2156e696d55cf2afbd1ea9a54178886d88b 100644 (file)
@@ -5116,8 +5116,8 @@ _mesa_store_compressed_texsubimage2d(struct gl_context *ctx, GLenum target,
    _mesa_get_format_block_size(texFormat, &bw, &bh);
 
    /* these should have been caught sooner */
-   ASSERT((width % bw) == 0 || width == 2 || width == 1);
-   ASSERT((height % bh) == 0 || height == 2 || height == 1);
+   ASSERT((width % bw) == 0 || width < bw);
+   ASSERT((height % bh) == 0 || height < bh);
    ASSERT((xoffset % bw) == 0);
    ASSERT((yoffset % bh) == 0);