mesa: Fix glCompressedTexSubImage (and non-Sub) for height == 2 or 1.
authorEric Anholt <eric@anholt.net>
Thu, 1 Dec 2011 22:35:18 +0000 (14:35 -0800)
committerEric Anholt <eric@anholt.net>
Fri, 2 Dec 2011 23:28:44 +0000 (15:28 -0800)
Generally this code works with width and height aligned to compressed
blocks, but at the 2x2 and 1x1 levels of a square texture (or height <
bh in general), we were skipping uploading our single row of blocks.

Fixes piglit compressedteximage GL_COMPRESSED_RGBA_S3TC_DXT5_EXT.

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

index 237f920793b4426c6199d4f7278ed3ba8ff445e4..99adf799f6298c4526ac6ce5bbc4a07927d7bd50 100644 (file)
@@ -5139,7 +5139,7 @@ _mesa_store_compressed_texsubimage2d(struct gl_context *ctx, GLenum target,
 
    if (dstMap) {
       bytesPerRow = srcRowStride;  /* bytes per row of blocks */
-      rows = height / bh;  /* rows in blocks */
+      rows = (height + bh - 1) / bh;  /* rows in blocks */
 
       /* copy rows of blocks */
       for (i = 0; i < rows; i++) {