[Mesa-dev] [PATCH] mesa: Skip mipmap generation if there is no source image.
Brian Paul
brianp at vmware.com
Tue Oct 18 15:56:48 PDT 2011
On 10/18/2011 04:09 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).
>
> v2: Do the early return before calling into the driver function.
>
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=40308
> ---
> src/mesa/main/fbobject.c | 8 ++++++++
> 1 files changed, 8 insertions(+), 0 deletions(-)
>
> diff --git a/src/mesa/main/fbobject.c b/src/mesa/main/fbobject.c
> index f9da54e..c56062a 100644
> --- a/src/mesa/main/fbobject.c
> +++ b/src/mesa/main/fbobject.c
> @@ -2486,6 +2486,7 @@ _mesa_GetFramebufferAttachmentParameterivEXT(GLenum target, GLenum attachment,
> void GLAPIENTRY
> _mesa_GenerateMipmapEXT(GLenum target)
> {
> + struct gl_texture_image *srcImage;
> struct gl_texture_object *texObj;
> GLboolean error;
>
> @@ -2532,6 +2533,13 @@ _mesa_GenerateMipmapEXT(GLenum target)
> }
>
> _mesa_lock_texture(ctx, texObj);
> +
> + srcImage = _mesa_select_tex_image(ctx, texObj, target, texObj->BaseLevel);
> + if (!srcImage) {
> + _mesa_unlock_texture(ctx, texObj);
> + return;
> + }
> +
> if (target == GL_TEXTURE_CUBE_MAP) {
> GLuint face;
> for (face = 0; face< 6; face++)
Reviewed-by: Brian Paul <brianp at vmware.com>
BTW, for anyone else reading along, the earlier _mesa_cube_complete()
test (if it passes) will ensure that checking just the positive-X face
image is sufficient for cubemaps.
-Brian
More information about the mesa-dev
mailing list