On Tue, Sep 4, 2012 at 3:27 PM, Ian Romanick <i...@freedesktop.org> wrote:
> On 09/04/2012 03:19 PM, Stéphane Marchesin wrote:
>>
>> On Tue, Sep 4, 2012 at 2:59 PM, Eric Anholt <e...@anholt.net> wrote:
>>>
>>> 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?
>>
>>
>> Let's say the app calls glTexImage for level 6, and width = 2048. That
>
>
> Is that valid?  Since the base level of this texture would be huge, it seems
> like glTexImage should reject it.  I'm not sure there's any language in the
> spec either way, but that's my gut feeling.

I didn't see anything in the spec. I also wonder how that interacts
with something like a subsequent glCopyTexImage from that level of an
incomplete texture to somewhere else.

I'd be fine with rejecting it, if that's the right thing to do.

Stéphane
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to