[Mesa-dev] [PATCH 6/7] mesa: Validate the layer selection of an array texture too
Marek Olšák
maraeo at gmail.com
Wed Jul 31 15:07:03 PDT 2013
I think we should also validate the layer for GL_TEXTURE_CUBE_MAP_ARRAY.
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