[Mesa-dev] Status of GL_ARB_separate_shader_objects? I would like to help.

Matt Turner mattst88 at gmail.com
Fri Mar 22 15:44:07 PDT 2013

On Fri, Mar 22, 2013 at 1:00 PM, gregory hainaut
<gregory.hainaut at gmail.com> wrote:
> * GenProgramPipelines doesn't create object!
> ... Spec extract:
> These names are marked as used, for the purposes of GenBuffers only,
>   but they acquire buffer state only when they are first bound with
>   BindBuffer (see below), just as if they were unused.
> ...
> Basically any command (like BindBuffer) that access the pipeline will
> create the pipeline. It seems like vertex array object. From an
> implemention point of view it seems much easier to create the object
> during GenProgramPipelines call. However I don't know if
> IsProgramPipeline must return FALSE if the object was never really
> created (bind) like VAO.

This is a weird part of the spec. After glGen* (but before glBind*)
the associated glIs* function usually returns false. It's something
that no one but conformance tests seem to care about. See commit
fd93d55141f11069fb76a9b377ad1af88d0ecdd3 (in Mesa) for how to fix this
kind of thing.

I said "usually" above because there is some inconsistency. The
ARB_sampler_objects spec says that the act of calling glIsSampler()
actually creates the object.

It looks like for ARB_separate_shader_objects that glGen* followed by
glIs* should return false (like VAOs).

More information about the mesa-dev mailing list