mesa: Validate the layer selection of an array texture too
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. v3: Handle CUBE_MAP_ARRAY textures too. Noticed by Marek. Signed-off-by: Ian Romanick <ian.d.romanick@intel.com> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> Cc: "9.1 9.2" mesa-stable@lists.freedesktop.org
This commit is contained in:
parent
41485fea7c
commit
25281fef0f
|
@ -729,11 +729,37 @@ 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) {
|
||||
|
||||
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;
|
||||
case GL_TEXTURE_CUBE_MAP_ARRAY:
|
||||
if (att->Zoffset >= texImage->Depth) {
|
||||
att_incomplete("bad cube-array layer");
|
||||
att->Complete = GL_FALSE;
|
||||
return;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
baseFormat = _mesa_get_format_base_format(texImage->TexFormat);
|
||||
|
||||
|
|
Loading…
Reference in New Issue