[Mesa-dev] [PATCH 6/7] mesa: Validate the layer selection of an array texture too

Ian Romanick idr at freedesktop.org
Wed Jul 31 15:09:02 PDT 2013


On 07/31/2013 03:07 PM, Marek Olšák wrote:
> I think we should also validate the layer for GL_TEXTURE_CUBE_MAP_ARRAY.

You are correct.  I'll update the patch and the test case.

> Marek
>
> On Wed, Jul 31, 2013 at 10:29 PM, Ian Romanick <idr at freedesktop.org> wrote:
>> From: Ian Romanick <ian.d.romanick at intel.com>
>>
>> Previously only the slice of a 3D texture was validated in the FBO
>> completeness check.  This fixes the failure in the 'invalid layer of an
>> array texture' subtest of piglit's fbo-incomplete test.
>>
>> v2: 1D_ARRAY textures have Depth == 1.  Instead, compare against Height.
>>
>> Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>
>> Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
>> Cc: mesa-stable at lists.freedesktop.org
>> ---
>>   src/mesa/main/fbobject.c | 27 +++++++++++++++++++++++----
>>   1 file changed, 23 insertions(+), 4 deletions(-)
>>
>> diff --git a/src/mesa/main/fbobject.c b/src/mesa/main/fbobject.c
>> index 1225fea..bed7a68 100644
>> --- a/src/mesa/main/fbobject.c
>> +++ b/src/mesa/main/fbobject.c
>> @@ -729,10 +729,29 @@ test_attachment_completeness(const struct gl_context *ctx, GLenum format,
>>            att->Complete = GL_FALSE;
>>            return;
>>         }
>> -      if (texObj->Target == GL_TEXTURE_3D && att->Zoffset >= texImage->Depth) {
>> -         att_incomplete("bad z offset");
>> -         att->Complete = GL_FALSE;
>> -         return;
>> +
>> +      switch (texObj->Target) {
>> +      case GL_TEXTURE_3D:
>> +         if (att->Zoffset >= texImage->Depth) {
>> +            att_incomplete("bad z offset");
>> +            att->Complete = GL_FALSE;
>> +            return;
>> +         }
>> +         break;
>> +      case GL_TEXTURE_1D_ARRAY:
>> +         if (att->Zoffset >= texImage->Height) {
>> +            att_incomplete("bad 1D-array layer");
>> +            att->Complete = GL_FALSE;
>> +            return;
>> +         }
>> +         break;
>> +      case GL_TEXTURE_2D_ARRAY:
>> +         if (att->Zoffset >= texImage->Depth) {
>> +            att_incomplete("bad 2D-array layer");
>> +            att->Complete = GL_FALSE;
>> +            return;
>> +         }
>> +         break;
>>         }
>>
>>         baseFormat = _mesa_get_format_base_format(texImage->TexFormat);
>> --
>> 1.8.1.4
>>
>> _______________________________________________
>> mesa-dev mailing list
>> mesa-dev at lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/mesa-dev



More information about the mesa-dev mailing list