From: Brian Paul Date: Fri, 2 May 2008 16:38:39 +0000 (-0600) Subject: gallium: in st_finalize_texture() check texture dimensions X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=479d19f5a2bca79104f3b7f94147e94a52a27fea;p=mesa.git gallium: in st_finalize_texture() check texture dimensions Check dimensions in addition to target, format, etc. Fixes a bug where we failed to detect a change in texture image sizes and wound up using the old texture data. --- diff --git a/src/mesa/state_tracker/st_cb_texture.c b/src/mesa/state_tracker/st_cb_texture.c index 80122546fce..1eabef6d924 100644 --- a/src/mesa/state_tracker/st_cb_texture.c +++ b/src/mesa/state_tracker/st_cb_texture.c @@ -1483,13 +1483,16 @@ st_finalize_texture(GLcontext *ctx, } /* Check texture can hold all active levels. Check texture matches - * target, imageFormat, etc. + * target, imageFormat, dimensions, etc. */ if (stObj->pt && (stObj->pt->target != gl_target_to_pipe(stObj->base.Target) || stObj->pt->format != st_mesa_format_to_pipe_format(firstImage->base.TexFormat->MesaFormat) || stObj->pt->last_level < stObj->lastLevel || + stObj->pt->width[0] != firstImage->base.Width2 || + stObj->pt->height[0] != firstImage->base.Height2 || + stObj->pt->depth[0] != firstImage->base.Depth2 || stObj->pt->cpp != cpp || stObj->pt->compressed != firstImage->base.IsCompressed)) { pipe_texture_release(&stObj->pt);