[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