[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