Brian Paul <[email protected]> writes: > From: Brian Paul <[email protected]> > > If a subtexture region isn't aligned to the compressed block size, > return GL_INVALID_OPERATION, not gl_INVALID_VALUE. > > NOTE: This is a candidate for the stable branches. > --- > src/mesa/main/teximage.c | 6 +++--- > 1 files changed, 3 insertions(+), 3 deletions(-) > > diff --git a/src/mesa/main/teximage.c b/src/mesa/main/teximage.c > index 08af668..c22e853 100644 > --- a/src/mesa/main/teximage.c > +++ b/src/mesa/main/teximage.c > @@ -3574,13 +3574,13 @@ compressed_subtexture_error_check(struct gl_context > *ctx, GLint dimensions, > get_compressed_block_size(format, &bw, &bh); > > if ((xoffset % bw != 0) || (yoffset % bh != 0)) > - return GL_INVALID_VALUE; > + return GL_INVALID_OPERATION; > > if ((width % bw != 0) && width != 2 && width != 1) > - return GL_INVALID_VALUE; > + return GL_INVALID_OPERATION; > > if ((height % bh != 0) && height != 2 && height != 1) > - return GL_INVALID_VALUE; > + return GL_INVALID_OPERATION;
Reviewed-by: Eric Anholt <[email protected]> The conditions are pretty bogus, though. The s3tc text says: INVALID_OPERATION is generated by CompressedTexSubImage2D if TEXTURE_INTERNAL_FORMAT is COMPRESSED_RGB_S3TC_DXT1_EXT, COMPRESSED_RGBA_S3TC_DXT1_EXT, COMPRESSED_RGBA_S3TC_DXT3_EXT, or COMPRESSED_RGBA_S3TC_DXT5_EXT and any of the following apply: * <width> is not a multiple of four, and <width> plus <xoffset> is not equal to TEXTURE_WIDTH; * <height> is not a multiple of four, and <height> plus <yoffset> is not equal to TEXTURE_HEIGHT; or and the 3.1 core spec text says (section 3.8.3): These commands will result in an INVALID_OPERATION error if one of the following conditions occurs: • width is not a multiple of four, and width + xoffset is not equal to the value of TEXTURE_WIDTH. • height is not a multiple of four, and height + yoffset is not equal to the value of TEXTURE_HEIGHT. • xoffset or yoffset is not a multiple of four. Looks like this code wants to live in compressed_subtexture_error_check2(), which has some overlapping checks in it.
pgpmPkv67zOrW.pgp
Description: PGP signature
_______________________________________________ mesa-dev mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/mesa-dev
