From: Alexis Hetu Date: Tue, 23 Jun 2015 15:33:20 +0000 (-0400) Subject: Added proper transform feedback checks to glDrawRangeElements X-Git-Tag: android-x86-7.1-r1~969 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=146411a83f534c928c790ef1e7d3ddb576ee33f7;p=android-x86%2Fexternal-swiftshader.git Added proper transform feedback checks to glDrawRangeElements It is illegal to start a new draw operation while a transform feedback is active. Change-Id: I5ebb01889ce5154162a51f5e6cfbc8431554c879 Reviewed-on: https://swiftshader-review.googlesource.com/3549 Tested-by: Alexis Hétu Reviewed-by: Nicolas Capens --- diff --git a/src/OpenGL/libGLESv2/libGLESv3.cpp b/src/OpenGL/libGLESv2/libGLESv3.cpp index 60912104c..ef9eefff6 100644 --- a/src/OpenGL/libGLESv2/libGLESv3.cpp +++ b/src/OpenGL/libGLESv2/libGLESv3.cpp @@ -549,6 +549,12 @@ GL_APICALL void GL_APIENTRY glDrawRangeElements(GLenum mode, GLuint start, GLuin if(context) { + es2::TransformFeedback* transformFeedback = context->getTransformFeedback(); + if(transformFeedback && transformFeedback->isActive() && !transformFeedback->isPaused()) + { + return error(GL_INVALID_OPERATION); + } + context->drawElements(mode, start, end, count, type, indices); } }