[Mesa-dev] [PATCH] mesa: Skip mipmap generation if there is no source image.
Brian Paul
brianp at vmware.com
Mon Oct 17 13:59:03 PDT 2011
On 10/17/2011 02:45 PM, Eric Anholt wrote:
> The spec doesn't explicitly mandate this behavior, but it seems like
> the only sensible thing to do (as opposed to assertion failing or
> segfaulting).
>
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=40308
> ---
>
> Oops, looks like I never sent this one out for review.
>
> src/mesa/main/mipmap.c | 4 +++-
> 1 files changed, 3 insertions(+), 1 deletions(-)
>
> diff --git a/src/mesa/main/mipmap.c b/src/mesa/main/mipmap.c
> index c2f9226..2b6aead 100644
> --- a/src/mesa/main/mipmap.c
> +++ b/src/mesa/main/mipmap.c
> @@ -2036,7 +2036,9 @@ _mesa_generate_mipmap(struct gl_context *ctx, GLenum target,
>
> ASSERT(texObj);
> srcImage = _mesa_select_tex_image(ctx, texObj, target, texObj->BaseLevel);
> - ASSERT(srcImage);
> +
> + if (!srcImage)
> + return;
>
> maxLevel = _mesa_max_texture_levels(ctx, texObj->Target) - 1;
> ASSERT(maxLevel>= 0); /* bad target */
I think this check should come sooner. We typically do error checking
and no-op checking before calling the ctx->Driver.Foobar() functions.
The above fix might work for the fallback path, but what about if
ctx->Driver.GenerateMipmap points to _mesa_meta_GenerateMipmap() or
st_generate_mipmap()?
I think I'd try to do the check in _mesa_GenerateMipmapEXT().
-Brian
More information about the mesa-dev
mailing list