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 <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
diff --git a/src/OpenGL/libGLESv2/libGLESv3.cpp b/src/OpenGL/libGLESv2/libGLESv3.cpp
index 6091210..ef9eeff 100644
--- a/src/OpenGL/libGLESv2/libGLESv3.cpp
+++ b/src/OpenGL/libGLESv2/libGLESv3.cpp
@@ -549,6 +549,12 @@
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);
}
}