[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