summaryrefslogtreecommitdiffstats
path: root/src/mesa/main/api_validate.c
diff options
context:
space:
mode:
authorChris Forbes <chrisf@ijw.co.nz>2014-10-18 21:12:07 +1300
committerChris Forbes <chrisf@ijw.co.nz>2014-10-29 21:25:20 +1300
commit0d5f4960a468947f9862bf5de2a71fce63b50cf7 (patch)
treed15de0588287644ec0c8c682fa96fe311630e6bb /src/mesa/main/api_validate.c
parentf87c7008958cdb095efa1cfb29ca8f3c9b9066e4 (diff)
downloadexternal_mesa3d-0d5f4960a468947f9862bf5de2a71fce63b50cf7.zip
external_mesa3d-0d5f4960a468947f9862bf5de2a71fce63b50cf7.tar.gz
external_mesa3d-0d5f4960a468947f9862bf5de2a71fce63b50cf7.tar.bz2
mesa: Fix order of errors for glDrawTransformFeedbackStream
The OpenGL 4.0 core profile specification, section 2.17.3 Transform Feedback Draw Operations says: "The error INVALID_VALUE is generated if <stream> is greater than or equal to the value of MAX_VERTEX_STREAMS. ... The error INVALID_OPERATION is generated if EndTransformFeedback has never been called while the object named by id was bound." Fixes the piglit test: ARB_transform_feedback3/arb_transform_feedback3-draw_using_invalid_stream_index (with the test itself fixed to eliminate an unrelated failure) Signed-off-by: Chris Forbes <chrisf@ijw.co.nz> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Diffstat (limited to 'src/mesa/main/api_validate.c')
-rw-r--r--src/mesa/main/api_validate.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/mesa/main/api_validate.c b/src/mesa/main/api_validate.c
index 9b80600..a3a2d25 100644
--- a/src/mesa/main/api_validate.c
+++ b/src/mesa/main/api_validate.c
@@ -749,17 +749,17 @@ _mesa_validate_DrawTransformFeedback(struct gl_context *ctx,
return GL_FALSE;
}
- if (!obj->EndedAnytime) {
- _mesa_error(ctx, GL_INVALID_OPERATION, "glDrawTransformFeedback*");
- return GL_FALSE;
- }
-
if (stream >= ctx->Const.MaxVertexStreams) {
_mesa_error(ctx, GL_INVALID_VALUE,
"glDrawTransformFeedbackStream*(index>=MaxVertexStream)");
return GL_FALSE;
}
+ if (!obj->EndedAnytime) {
+ _mesa_error(ctx, GL_INVALID_OPERATION, "glDrawTransformFeedback*");
+ return GL_FALSE;
+ }
+
if (numInstances <= 0) {
if (numInstances < 0)
_mesa_error(ctx, GL_INVALID_VALUE,