mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-02 07:20:16 +01:00
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 <eric@anholt.net> Tested-by: Sven Arvidsson <sa@whiz.se>
This commit is contained in:
parent
82e38ac91f
commit
df4a88ac43
2 changed files with 0 additions and 28 deletions
|
|
@ -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 [...]
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue