[Piglit] [PATCH 00/14] Add DSA tests for vertex array objects

Fredrik Höglund fredrik at kde.org
Thu Apr 2 10:05:32 PDT 2015

On Wednesday 01 April 2015, Martin Peres wrote:
> On 31/03/15 20:26, Fredrik Höglund wrote:
> > This series adds piglit tests for the VAO portion of
> > GL_ARB_direct_state_access.
> >
> > The tests are written so that they can be run against either the core
> > or compatibility profiles.  The exception is vao-core and vao-compatibility,
> > which contain all the profile specific tests.
> >
> > Note that vao-attrib-format fails without this patch:
> > http://patchwork.freedesktop.org/patch/44068
> >
> > It would be interesting to know if the tests pass with NVIDIA's
> > implementation, but I haven't been able to test that.
> I see the following warnings when compiling the patches:

I could have sworn I fixed those warnings before I sent the patches,
but apparently I didn't.

> Here is the result of the run on nvidia 346.35: http://pastebin.com/TGPzKpPG

So here is my analysis of the failures:

vao-attrib-binding probably fails because GetVertexArrayIndexediv does
not accept VERTEX_ATTRIB_BINDING.  The spec does indeed not list this
as a valid parameter, but that's clearly an oversight.

The vao-attrib-format failures are more complex.  The specification
specifies both INVALID_VALUE and INVALID_OPERATION for certain
size errors:

"An INVALID_VALUE error is generated if size is not one of the values
 shown in table 10.2 for the corresponding command."
 An INVALID_OPERATION error is generated under any of the following

 • size is BGRA and type is not UNSIGNED_BYTE, INT_2_10_10_10_REV
   or UNSIGNED_INT_2_10_10_10_REV;

 • type is INT_2_10_10_10_REV or UNSIGNED_INT_2_10_10_10_-
   REV, and size is neither 4 nor BGRA;

 • type is UNSIGNED_INT_10F_11F_11F_REV and size is not 3;

 • size is BGRA and normalized is FALSE."

So if <type> is INT_2_10_10_10_REV and <size> is 5, should the
implementation generate INVALID_OPERATION?  Or does INVALID_VALUE
take precedence because 5 is not listed as a valid size in table 10.2?
NVIDIA seems to have made the latter interpretation in this case.
At the same time we see that VertexArrayAttribIFormat generates
INVALID_OPERATION when <size> is BGRA and <type> is not one of the
valid BGRA types.  This even though BGRA is not a valid size for this

vao-core fails because VertexArrayVertexBuffer only accepts existing
buffer objects, while the spec says that "<buffer> is either zero or
a name returned by GenBuffers or CreateBuffers."

The GetVertexArrayiv test fails because it accepts
VERTEX_BUFFER_BINDING.  The spec says that "<pname> must be

The GetVertexArrayIndexediv test fails for the same reason as the
vao-attrib-binding test; There are a number of vertex attrib and
binding parameters that are not listed as valid parameters in the
specification.  We need a file a bug report about this with Khronos.


More information about the Piglit mailing list