[Piglit] Testing for GL_ARB_draw_instanced

Eric Anholt eric at anholt.net
Tue Feb 28 13:32:34 PST 2012

Here's testing for almost everything else I came up with from the spec.
The weaknesses I'd note are:

* We don't test whether one of the required shader extensions or GL3
  is actually present.

* We don't test for the non-presence of variables if optional
  extensions are not present.

* We don't test very large instance counts.

* We don't test interaction with non-GL3 (EXT_gpu_shader4 or

* We don't test other implied behavior of text like:

   "The command

        void DrawElementsInstancedARB(enum mode, sizei count, enum type,
                const void *indices, sizei primcount);

    behaves identically to DrawElements except that <primcount>
    instances of the set of elements are executed, and the value of
    <instanceID> advances for each iteration.  It has the same effect

        if (mode, count, or type is invalid )
            generate appropriate error
        else {
            for (int i = 0; i < primcount; i++) {
                instanceID = i;
                DrawElements(mode, count, type, indices, i);
            instanceID = 0;

  We test that basic instancing-related rendering works, and we test
  the explicitly mentioned error behavior for "type" in the spec, but
  for example checking whether count or mode are invalid is not done.

More information about the Piglit mailing list