[Mesa-dev] [PATCH 2/4] mesa: Draw Indirect is not allowed when no vertex array binding exists.

Marek Olšák maraeo at gmail.com
Tue Oct 20 10:54:37 PDT 2015


On Tue, Oct 20, 2015 at 4:19 PM, Marta Lofstedt
<marta.lofstedt at linux.intel.com> wrote:
> From: Marta Lofstedt <marta.lofstedt at 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.lofstedt at 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);
> +   }

NAK.

VERTEX_ARRAY_BINDING is a VAO. Array.ArrayBufferObj is from glBindBuffer.

Marek


More information about the mesa-dev mailing list