[Mesa-dev] [PATCH 1/4] mesa: implement GL_ARB_draw_indirect

Christoph Bumiller e0425955 at student.tuwien.ac.at
Fri Apr 5 04:32:31 PDT 2013


On 04.04.2013 21:17, Brian Paul wrote:
> I just did a quick skim and found a few minor things.
>
> First, the subject might be "mesa: implement GL_ARB_draw_indirect and
> GL_ARB_multi_draw_indirect"
>
> This is a big patch and I think it could have been broken down into
> smaller pieces, but I know it's a PITA to redo.  Next time.
>>
>> +static void GLAPIENTRY
>> +save_DrawArraysIndirect(GLenum mode, const GLvoid *indirect)
>> +{
>> +   GET_CURRENT_CONTEXT(ctx);
>> +   _mesa_error(ctx, GL_INVALID_OPERATION,
>> +           "glDrawArraysIndirect() during display list compile");
>> +}
>
> Is this specified in the spec?  IIRC, if a command isn't supposed to
> get compiled into a dlist it's just immediately executed.
>
>

Not that I can see.
But I figured since DrawElementsInstancedBaseVertex return
GL_INVALID_OPERATION, the indirect version, which is essentially the
same except for the place it takes its arguments from (especially in
compatibility mode, where the indirect argument is a user pointer (this
is not implemented, only exposing the extension in core profile for now,
which means it won't ever be used with display lists anyway until
compatibility for it is implemented), would behave the same.

I also don't get why DrawElements non-instanced non-baseVertex is
specified to execute immediately instead of returning INVALID_OPERATION.
Surely if I can draw one instance I can draw 2 instances if it's
executed immediately anyway.

The NV binary driver seems to simply execute it immediately fwiw.


More information about the mesa-dev mailing list