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>tags/10.4-branchpoint
@@ -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, |