Commit 30823f99 authored by Dave Airlie's avatar Dave Airlie
Browse files

mesa/textureview: move error checks up higher



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.
Reviewed-by: Anuj Phogat's avatarAnuj Phogat <anuj.phogat@gmail.com>
Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
parent 5541e11b
......@@ -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;
}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment