[Mesa-dev] [PATCH] mesa/textureview: move error checks up higher
Anuj Phogat
anuj.phogat at gmail.com
Tue May 3 10:10:09 UTC 2016
On Mon, May 2, 2016 at 10:21 PM, Dave Airlie <airlied at gmail.com> wrote:
>
> From: Dave Airlie <airlied at redhat.com>
>
> GL43-CTS.texture_view.errors checks for GL_INVALID_VALUE
> here but we catch these problems in the dimensionsOK check
> and return the wrong error value.
>
> This fixes:
> GL43-CTS.texture_view.errors.
>
> Signed-off-by: Dave Airlie <airlied at redhat.com>
> ---
> src/mesa/main/textureview.c | 50 +++++++++++++++++++++++----------------------
> 1 file changed, 26 insertions(+), 24 deletions(-)
>
> diff --git a/src/mesa/main/textureview.c b/src/mesa/main/textureview.c
> index 4b3b324..ef4d7bb 100644
> --- a/src/mesa/main/textureview.c
> +++ b/src/mesa/main/textureview.c
> @@ -639,15 +639,40 @@ _mesa_TextureView(GLuint texture, GLenum target, GLuint origtexture,
> case GL_TEXTURE_2D:
> case GL_TEXTURE_2D_MULTISAMPLE:
> case GL_TEXTURE_RECTANGLE:
> + depth = 1;
> + break;
> case GL_TEXTURE_CUBE_MAP:
> + /* If the new texture's target is TEXTURE_CUBE_MAP, the clamped
> + * <numlayers> must be equal to 6.
> + */
> + if (newViewNumLayers != 6) {
> + _mesa_error(ctx, GL_INVALID_VALUE,
> + "glTextureView(clamped numlayers %d != 6)",
> + newViewNumLayers);
> + return;
> + }
> depth = 1;
> break;
>
> case GL_TEXTURE_2D_ARRAY:
> - case GL_TEXTURE_CUBE_MAP_ARRAY:
> case GL_TEXTURE_2D_MULTISAMPLE_ARRAY:
> depth = newViewNumLayers;
> break;
> + case GL_TEXTURE_CUBE_MAP_ARRAY:
> + /* If the new texture's target is TEXTURE_CUBE_MAP_ARRAY,
> + * then <numlayers> counts layer-faces rather than layers,
> + * and the clamped <numlayers> must be a multiple of 6.
> + * Otherwise, the error INVALID_VALUE is generated.
> + */
> + if ((newViewNumLayers % 6) != 0) {
> + _mesa_error(ctx, GL_INVALID_VALUE,
> + "glTextureView(clamped numlayers %d is not"
> + " a multiple of 6)",
> + newViewNumLayers);
> + return;
> + }
> + depth = newViewNumLayers;
> + break;
> }
>
> /* If the dimensions of the original texture are larger than the maximum
> @@ -689,32 +714,9 @@ _mesa_TextureView(GLuint texture, GLenum target, GLuint origtexture,
> return;
> }
> break;
> -
> case GL_TEXTURE_CUBE_MAP:
> - /* If the new texture's target is TEXTURE_CUBE_MAP, the clamped
> - * <numlayers> must be equal to 6.
> - */
> - if (newViewNumLayers != 6) {
> - _mesa_error(ctx, GL_INVALID_VALUE,
> - "glTextureView(clamped numlayers %d != 6)",
> - newViewNumLayers);
> - return;
> - }
> break;
> -
> case GL_TEXTURE_CUBE_MAP_ARRAY:
> - /* If the new texture's target is TEXTURE_CUBE_MAP_ARRAY,
> - * then <numlayers> counts layer-faces rather than layers,
> - * and the clamped <numlayers> must be a multiple of 6.
> - * Otherwise, the error INVALID_VALUE is generated.
> - */
> - if ((newViewNumLayers % 6) != 0) {
> - _mesa_error(ctx, GL_INVALID_VALUE,
> - "glTextureView(clamped numlayers %d is not"
> - " a multiple of 6)",
> - newViewNumLayers);
> - return;
> - }
> break;
> }
>
> --
> 2.5.5
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
Reviewed-by: Anuj Phogat <anuj.phogat at gmail.com>
More information about the mesa-dev
mailing list