diff options
author | Ian Romanick <ian.d.romanick@intel.com> | 2011-04-08 19:15:36 -0700 |
---|---|---|
committer | Ian Romanick <ian.d.romanick@intel.com> | 2011-04-11 17:18:20 -0700 |
commit | b3d916512433fb6bbfedb2ba2a41d0f4437a2c49 (patch) | |
tree | cb5b1d3d75f76b556aaec40df82d440cfa39c90e | |
parent | 930370bc8b61f96193986dc330afc445279d8f8c (diff) |
ARB_draw_instanced: Add trivial instanced drawing tests
Tested-by: Brian Paul <brianp@vmware.com>
3 files changed, 89 insertions, 0 deletions
diff --git a/tests/all.tests b/tests/all.tests index 42e2eee1a..97bf697d5 100644 --- a/tests/all.tests +++ b/tests/all.tests @@ -694,6 +694,10 @@ import_glsl_parser_tests(arb_draw_instanced, os.path.dirname(__file__) + '/spec/arb_draw_instanced', ['']) +add_shader_test_dir(arb_draw_instanced, + os.path.dirname(__file__) + '/spec/arb_draw_instanced/execution', + recursive=True) + # Group ARB_shader_texture_lod arb_shader_texture_lod = Group() diff --git a/tests/spec/arb_draw_instanced/execution/draw-non-instanced.shader_test b/tests/spec/arb_draw_instanced/execution/draw-non-instanced.shader_test new file mode 100644 index 000000000..1d9d7cc4a --- /dev/null +++ b/tests/spec/arb_draw_instanced/execution/draw-non-instanced.shader_test @@ -0,0 +1,41 @@ +[require] +GL_ARB_draw_instanced + +[vertex shader] +/* Verify that InstanceID is zero when drawing primitives using a + * non-instanced drawing function. + */ +#extension GL_ARB_draw_instanced: require + +varying vec4 color; + +void main() +{ + color = vec4(float(gl_InstanceIDARB), + 1.0 - float(gl_InstanceIDARB), + 0.0, + 1.0); + gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex; +} + +[fragment shader] +varying vec4 color; + +void main() +{ + gl_FragColor = color; +} + +[test] +ortho +clear color 0.5 0.5 0.5 0.5 +clear + +draw rect 10 10 10 10 +probe rgb 15 15 0 1 0 + +draw rect 30 10 10 10 +probe rgb 35 15 0 1 0 + +draw rect 50 10 10 10 +probe rgb 55 15 0 1 0 diff --git a/tests/spec/arb_draw_instanced/execution/instance-array-dereference.shader_test b/tests/spec/arb_draw_instanced/execution/instance-array-dereference.shader_test new file mode 100644 index 000000000..ae3671df7 --- /dev/null +++ b/tests/spec/arb_draw_instanced/execution/instance-array-dereference.shader_test @@ -0,0 +1,44 @@ +[require] +GL_ARB_draw_instanced +GLSL >= 1.20 + +[vertex shader] +/* Verify that InstanceID is zero when drawing primitives using a + * non-instanced drawing function. + */ +#version 120 +#extension GL_ARB_draw_instanced: require + +uniform vec4 instance_colors[] = vec4[](vec4(0.0, 1.0, 0.0, 1.0), + vec4(0.0, 0.5, 0.5, 1.0), + vec4(0.0, 0.0, 1.0, 1.0)); + +varying vec4 color; + +void main() +{ + color = instance_colors[gl_InstanceIDARB]; + + vec4 v = gl_Vertex; + v.x += 20.0 * float(gl_InstanceIDARB); + + gl_Position = gl_ModelViewProjectionMatrix * v; +} + +[fragment shader] +varying vec4 color; + +void main() +{ + gl_FragColor = color; +} + +[test] +ortho +clear color 0.5 0.5 0.5 0.5 +clear + +draw instanced rect 3 10 10 10 10 +probe rgb 15 15 0.0 1.0 0.0 +probe rgb 35 15 0.0 0.5 0.5 +probe rgb 55 15 0.0 0.0 1.0 |