[Mesa-dev] [PATCH 1/2] intel: Prevent huge lastlevel values from being computed.

Eric Anholt eric at anholt.net
Tue Sep 4 14:59:04 PDT 2012


Stéphane Marchesin <marcheu at 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?
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 197 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20120904/e7190418/attachment.pgp>


More information about the mesa-dev mailing list