Validate transform feedback conflicts on zero draw.
This conflict should be validated even if the draw call would result in
no work being done on the GPU.
Bug: angleproject:2747
Change-Id: I6b32a07ff8a8598dd865270a3a935060f050a68f
Reviewed-on: https://chromium-review.googlesource.com/1162507
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
diff --git a/src/libANGLE/validationES.cpp b/src/libANGLE/validationES.cpp
index d05cb75..70f2031 100644
--- a/src/libANGLE/validationES.cpp
+++ b/src/libANGLE/validationES.cpp
@@ -2726,6 +2726,12 @@
{
return {GL_INVALID_OPERATION, kErrorDrawBufferTypeMismatch};
}
+
+ const VertexArray *vao = context->getGLState().getVertexArray();
+ if (vao->hasTransformFeedbackBindingConflict(context))
+ {
+ return {GL_INVALID_OPERATION, kErrorVertexBufferBoundForTransformFeedback};
+ }
}
}
@@ -2801,17 +2807,6 @@
return false;
}
}
-
- if (extensions.webglCompatibility && count > 0)
- {
- const VertexArray *vao = context->getGLState().getVertexArray();
- if (vao->hasTransformFeedbackBindingConflict(context))
- {
- ANGLE_VALIDATION_ERR(context, InvalidOperation(),
- VertexBufferBoundForTransformFeedback);
- return false;
- }
- }
}
return true;