From: Marek Olšák Date: Mon, 4 Mar 2013 12:26:51 +0000 (+0100) Subject: mesa: don't allocate a texture if width or height is 0 in CopyTexImage X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=4b69c1a92d4e1a03377a91548e0a99c3cf3dfea1;p=mesa.git mesa: don't allocate a texture if width or height is 0 in CopyTexImage NOTE: This is a candidate for the stable branches. Reviewed-by: Brian Paul --- diff --git a/src/mesa/main/teximage.c b/src/mesa/main/teximage.c index 7d996da4708..4042e7969e0 100644 --- a/src/mesa/main/teximage.c +++ b/src/mesa/main/teximage.c @@ -3495,19 +3495,21 @@ copyteximage(struct gl_context *ctx, GLuint dims, _mesa_init_teximage_fields(ctx, texImage, width, height, 1, border, internalFormat, texFormat); - /* Allocate texture memory (no pixel data yet) */ - ctx->Driver.AllocTextureImageBuffer(ctx, texImage); + if (width && height) { + /* Allocate texture memory (no pixel data yet) */ + ctx->Driver.AllocTextureImageBuffer(ctx, texImage); - if (_mesa_clip_copytexsubimage(ctx, &dstX, &dstY, &srcX, &srcY, - &width, &height)) { - struct gl_renderbuffer *srcRb = - get_copy_tex_image_source(ctx, texImage->TexFormat); + if (_mesa_clip_copytexsubimage(ctx, &dstX, &dstY, &srcX, &srcY, + &width, &height)) { + struct gl_renderbuffer *srcRb = + get_copy_tex_image_source(ctx, texImage->TexFormat); - ctx->Driver.CopyTexSubImage(ctx, dims, texImage, dstX, dstY, dstZ, - srcRb, srcX, srcY, width, height); - } + ctx->Driver.CopyTexSubImage(ctx, dims, texImage, dstX, dstY, dstZ, + srcRb, srcX, srcY, width, height); + } - check_gen_mipmap(ctx, target, texObj, level); + check_gen_mipmap(ctx, target, texObj, level); + } _mesa_update_fbo_texture(ctx, texObj, face, level);