From b31104e318ec1a49447d3f301bcfe46b22d508db Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Tue, 25 Oct 2011 14:38:39 -0700 Subject: [PATCH] mesa: Skip texstore for 0-sized texture data. The intel driver (and gallium, it looks like, though it doesn't use these texstore functions at this point) doesn't bother making storage for textures with 0 width, height, or depth. This avoids them having to deal with returning a mapping for that nonexistent data. Fixes assertion failures with an upcoming intel driver change. Reviewed-by: Brian Paul --- src/mesa/main/texstore.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/mesa/main/texstore.c b/src/mesa/main/texstore.c index cd92496..05c1964 100644 --- a/src/mesa/main/texstore.c +++ b/src/mesa/main/texstore.c @@ -4499,6 +4499,9 @@ _mesa_store_teximage1d(struct gl_context *ctx, GLenum target, GLint level, (void) border; + if (width == 0) + return; + /* allocate storage for texture data */ if (!ctx->Driver.AllocTextureImageBuffer(ctx, texImage, texImage->TexFormat, width, 1, 1)) { @@ -4560,6 +4563,9 @@ _mesa_store_teximage2d(struct gl_context *ctx, GLenum target, GLint level, (void) border; + if (width == 0 || height == 0) + return; + /* allocate storage for texture data */ if (!ctx->Driver.AllocTextureImageBuffer(ctx, texImage, texImage->TexFormat, width, height, 1)) { @@ -4651,6 +4657,9 @@ _mesa_store_teximage3d(struct gl_context *ctx, GLenum target, GLint level, (void) border; + if (width == 0 || height == 0 || depth == 0) + return; + /* allocate storage for texture data */ if (!ctx->Driver.AllocTextureImageBuffer(ctx, texImage, texImage->TexFormat, width, height, depth)) { -- 2.7.4