Stéphane Marchesin <marc...@chromium.org> writes: > The current computation for the lastlevel is based on the level size and can > lead to writing past the end of the texture array. Instead we clamp it by > MAX_TEXTURE_LEVELS. > --- > src/mesa/drivers/dri/intel/intel_tex_image.c | 5 +++++ > 1 files changed, 5 insertions(+), 0 deletions(-) > > diff --git a/src/mesa/drivers/dri/intel/intel_tex_image.c > b/src/mesa/drivers/dri/intel/intel_tex_image.c > index fe9040c..7ef258b 100644 > --- a/src/mesa/drivers/dri/intel/intel_tex_image.c > +++ b/src/mesa/drivers/dri/intel/intel_tex_image.c > @@ -88,6 +88,11 @@ intel_miptree_create_for_teximage(struct intel_context > *intel, > lastLevel = firstLevel; > } else { > lastLevel = firstLevel + _mesa_logbase2(MAX2(MAX2(width, height), > depth)); > + /* We tried to guess the last level based on the texture size, make > + * sure we don't go past MAX_TEXTURE_LEVELS since it's hardcoded > + * in many places. > + */ > + lastLevel = MIN2(lastLevel, MAX_TEXTURE_LEVELS - 1); > } > }
I'm confused. MAX_TEXTURE_LEVELS should set such that it covers something from the texture size limits down to 1x1. Does it not?
pgpn25muWReqX.pgp
Description: PGP signature
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev