diff options
author | Brian Paul <[email protected]> | 2012-10-02 09:52:55 -0600 |
---|---|---|
committer | Brian Paul <[email protected]> | 2012-10-02 15:19:00 -0600 |
commit | df4a88ac4398ec4c152eb57a7129c07bb623edd7 (patch) | |
tree | 475b45742b14412321de0646c894333958161966 | |
parent | 82e38ac91f60e4ca242814ad36a5eecb82156cc6 (diff) |
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 <[email protected]>
Tested-by: Sven Arvidsson <[email protected]>
-rw-r--r-- | src/mesa/main/teximage.c | 22 | ||||
-rw-r--r-- | 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 8e1e601da7c..019516f00a4 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 e2598a1dcea..e6914553c87 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, |