Zero-sized tex images and sub images should not generate an error. Full images which are not multiples of the block size should also be legal.
Verified w/ NVIDIA's driver. --- tests/texturing/s3tc-errors.c | 38 ++++++++++++++++++++++++++++++++++++++ 1 files changed, 38 insertions(+), 0 deletions(-) diff --git a/tests/texturing/s3tc-errors.c b/tests/texturing/s3tc-errors.c index 8a6546d..b4b6776 100644 --- a/tests/texturing/s3tc-errors.c +++ b/tests/texturing/s3tc-errors.c @@ -273,6 +273,23 @@ test_format(int width, int height, GLfloat *image, GLenum format) pass = piglit_check_gl_error(GL_INVALID_OPERATION) && pass; + /* Try zero-sized subimage - should not be an error */ + x = 4; + y = 4; + w = 0; + h = 0; + glPixelStorei(GL_UNPACK_SKIP_PIXELS, x); + glPixelStorei(GL_UNPACK_SKIP_ROWS, y); + glCompressedTexSubImage2D(GL_TEXTURE_2D, 0, + x, y, w, h, + format, + piglit_compressed_image_size(format, w, h), + compressed_image + + piglit_compressed_pixel_offset(format, width, x, y)); + + pass = piglit_check_gl_error(GL_NO_ERROR) && pass; + + /* Try CompressedTexSubImage into level 1 (which is missing) */ x = 0; y = 0; @@ -289,6 +306,27 @@ test_format(int width, int height, GLfloat *image, GLenum format) pass = piglit_check_gl_error(GL_INVALID_OPERATION) && pass; + /* Try CompressedTexImage of size zero - should not be an erorr */ + w = 0; + h = 0; + glCompressedTexImage2D(GL_TEXTURE_2D, 0, format, w, h, 0, + piglit_compressed_image_size(format, w, h), + compressed_image); + + pass = piglit_check_gl_error(GL_NO_ERROR) && pass; + + /* Try CompressedTexImage with size which is a not a multiple of the + * block size - should not be an erorr + */ + w = width - 1; + h = height - 1; + glCompressedTexImage2D(GL_TEXTURE_2D, 0, format, w, h, 0, + piglit_compressed_image_size(format, w, h), + compressed_image); + + pass = piglit_check_gl_error(GL_NO_ERROR) && pass; + pass = check_rendering(width, height) && pass; + glDeleteTextures(1, &tex); free(compressed_image); -- 1.7.3.4 _______________________________________________ Piglit mailing list Piglit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/piglit