mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 09:08:10 +02:00
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 <anuj.phogat@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
parent
5541e11b9a
commit
30823f997b
1 changed files with 26 additions and 24 deletions
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue