Change Validation For Indexed Draw Without ELEMENT_ARRAY_BUFFER
Changed WebGL Validation to return INVALID_OPERATION any time an
indexed draw call is made without a bound ELEMENT_ARRAY_BUFFER. Spec
was changed to no longer require count > 0 in order to cause error.
Make same spec change to GL_ANGLE_client_arrays extension.
BUG:angleproject:2639
Change-Id: I23963f357119d081890aa5387b2863e1d42b92a5
Reviewed-on: https://chromium-review.googlesource.com/1093984
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
diff --git a/src/libANGLE/validationES.cpp b/src/libANGLE/validationES.cpp
index 14cc067..d3519fc 100644
--- a/src/libANGLE/validationES.cpp
+++ b/src/libANGLE/validationES.cpp
@@ -3055,11 +3055,11 @@
if (context->getExtensions().webglCompatibility ||
!context->getGLState().areClientArraysEnabled())
{
- if (!elementArrayBuffer && count > 0)
+ if (!elementArrayBuffer)
{
// [WebGL 1.0] Section 6.2 No Client Side Arrays
- // If drawElements is called with a count greater than zero, and no WebGLBuffer is bound
- // to the ELEMENT_ARRAY_BUFFER binding point, an INVALID_OPERATION error is generated.
+ // If an indexed draw command (drawElements) is called and no WebGLBuffer is bound to
+ // the ELEMENT_ARRAY_BUFFER binding point, an INVALID_OPERATION error is generated.
ANGLE_VALIDATION_ERR(context, InvalidOperation(), MustHaveElementArrayBinding);
return false;
}