[Piglit] [PATCH 0/4] Add simple GL_ARB_draw_instanced tests

Brian Paul brianp at vmware.com
Sat Apr 9 10:21:03 PDT 2011


On 04/08/2011 08:49 PM, Ian Romanick wrote:
> These are super basic tests, but they're better than what we had before
> (which was nothing).
>
> All of the tests except a couple of the negative tests pass on
> AMD's closed-source driver.  On their driver, both gl_InstanceIDARB and
> GL_ARB_draw_instanced (feature macro) are available without the #extension
> line.
>
> Many tests fail on NVIDIA's closed-source driver.  They don't make
> gl_InstanceIDARB available at link time with or without the #extension line.
> Oddly, it is available at compile time.
>
> I have not tried any of these tests on Mesa.  Some Tested-by feedback would be
> appreciated.
>
> It would also be good to have tests that:
>
>     - Verify that GL_INVALID_ENUM is generated by glDrawElementsInstancedARB if
>       <type>  is not one of GL_UNSIGNED_BYTE, GL_UNSIGNED_SHORT or
>       GL_UNSIGNED_INT.  This is listed in the "Errors" section of the spec.
>
>     - Verify that GL_INVALID_VALUE is generated by glDrawArraysInstancedARB if
>       <first>  is less than zero.  This is listed in the "Errors" section of the
>       spec.
>
>     - Verify that glMultiDrawArrays and glMultiDrawElements do not affect the
>       value of gl_InstanceIDARB.  This is issue #2 in the spec.
>
>     - Verify that GL_INVALID_OPERATION is generated if glDrawArraysInstanced or
>       glDrawElementsInstanced is compiled into a display list.  This is issue
>       #3 in the spec.
>
>     - Verify that no error is generated and nothing is drawn if primcount for
>       glDrawArraysInstanced or glDrawElementsInstanced is less than or equal to
>       zero.  The spec does not say that an error is generated, and the "It has
>       the same effect as" code in section 2.8 will not draw anything if
>       primcount is less than or equal to zero.
>
>     - Verify that gl_InstanceIDARB is zero in a non-instanced draw call that
>       follows an instanced draw call.
>
> I'd suggest stuffing all of those in tests/specs/arb_draw_instanced/api.

What about the existing instanced tests that I added a while back?


Here's the output of running the the new tests with softpipe/llvmpipe:

$ bin/shader_runner 
tests/spec/arb_draw_instanced/execution/draw-non-instanced.shader_test
Failed to compile VS: 0:11(34): error: `gl_InstanceID' undeclared
0:11(15): error: cannot construct `float' from a non-numeric data type
0:11(10): error: cannot construct `vec4' from a non-numeric data type

PIGLIT: {'result': 'fail' }

$ bin/shader_runner 
tests/spec/arb_draw_instanced/execution/instance-array-dereference.shader_test 

Failed to compile VS: 0:8(26): error: cannot initialize uniforms in 
GLSL 1.10
0:6(34): error: array constructors forbidden in GLSL 1.10
0:8(26): error: initializer of uniform variable `instance_colors' must 
be a constant expression
0:14(42): error: unsized array index must be constant

PIGLIT: {'result': 'fail' }

$ bin/instanced_arrays -auto
PIGLIT: {'result': 'pass' }

$ bin/shader_runner 
tests/spec/arb_draw_instanced/compiler/instanceidarb-enabled.vert -auto
PIGLIT: {'result': 'pass' }

$ bin/shader_runner 
tests/spec/arb_draw_instanced/compiler/instanceidarb-disabled.vert -auto
PIGLIT: {'result': 'pass' }

$ bin/shader_runner 
tests/spec/arb_draw_instanced/compiler/instanceidarb-disabled.frag -auto
PIGLIT: {'result': 'pass' }

$ bin/shader_runner 
tests/spec/arb_draw_instanced/compiler/instanceidarb-enabled.frag -auto
PIGLIT: {'result': 'pass' }

Is that all of them?

-Brian


More information about the Piglit mailing list