From: Marta Lofstedt <marta.lofst...@intel.com>

OpenGL ES 3.1 spec. section 10.5:
"An INVALID_OPERATION error is generated if zero is bound
to VERTEX_ARRAY_BINDING, DRAW_INDIRECT_BUFFER or to
any enabled vertex array."

Signed-off-by: Marta Lofstedt <marta.lofst...@linux.intel.com>
---
 src/mesa/main/api_validate.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/src/mesa/main/api_validate.c b/src/mesa/main/api_validate.c
index c5628f5..7062cbd 100644
--- a/src/mesa/main/api_validate.c
+++ b/src/mesa/main/api_validate.c
@@ -711,6 +711,20 @@ valid_draw_indirect(struct gl_context *ctx,
       return GL_FALSE;
    }
 
+   /*
+    * OpenGL ES 3.1 spec. section 10.5:
+    * "An INVALID_OPERATION error is generated if zero is bound to
+    * VERTEX_ARRAY_BINDING, DRAW_INDIRECT_BUFFER or to any enabled
+    * vertex array."
+    * OpenGL 4.5 spec. section 10.4:
+    * "An INVALID_OPERATION error is generated if  zero is bound to
+    * DRAW_INDIRECT_BUFFER, or if  no element array buffer is bound"
+    */
+   if (!_mesa_is_bufferobj(ctx->Array.ArrayBufferObj)) {
+      _mesa_error(ctx, GL_INVALID_OPERATION,
+                  "%s(No VBO is bound)", name);
+   }
+
    if (!_mesa_valid_prim_mode(ctx, mode, name))
       return GL_FALSE;
 
-- 
2.1.4

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to