[Mesa-dev] [PATCH 2/4] mesa: Draw Indirect is not allowed when no vertex array binding exists.
Tapani Pälli
tapani.palli at intel.com
Tue Oct 20 22:16:13 PDT 2015
On 10/20/2015 08:54 PM, Marek Olšák wrote:
> 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.
This check is valid, it is not against VERTEX_ARRAY_BINDING. Note "any
enabled vertex array", we hit this weird situation when client has a VAO
bound and has enabled vertex attrib array but has not bound any VBO to it.
Reviewed-by: Tapani Pälli <tapani.palli at intel.com>
> Marek
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
// Tapani
More information about the mesa-dev
mailing list