[Piglit] [PATCH] arb_gpu_shader5: test setting the invocations count in a separate GS
Matt Turner
mattst88 at gmail.com
Fri Jan 31 23:28:20 PST 2014
On Fri, Jan 31, 2014 at 4:10 PM, Jordan Justen
<jordan.l.justen at intel.com> wrote:
> Signed-off-by: Jordan Justen <jordan.l.justen at intel.com>
> ---
> .../invocation-id-in-separate-gs.shader_test | 62 ++++++++++++++++++++++
> 1 file changed, 62 insertions(+)
> create mode 100644 tests/spec/arb_gpu_shader5/execution/invocation-id-in-separate-gs.shader_test
>
> diff --git a/tests/spec/arb_gpu_shader5/execution/invocation-id-in-separate-gs.shader_test b/tests/spec/arb_gpu_shader5/execution/invocation-id-in-separate-gs.shader_test
> new file mode 100644
> index 0000000..9d0523a
> --- /dev/null
> +++ b/tests/spec/arb_gpu_shader5/execution/invocation-id-in-separate-gs.shader_test
> @@ -0,0 +1,62 @@
> +[require]
> +GLSL >= 1.50
> +GL_ARB_gpu_shader5
> +
> +[vertex shader]
Could use [vertex shader passthrough]
> +#version 150
> +
> +void main()
> +{
> +}
> +
> +[geometry shader]
> +#version 150
Don't need #version, because of the [require] section.
> +#extension GL_ARB_gpu_shader5 : enable
> +
> +// Note: invocations = 4 is set in a separate GS (below)
> +layout(points) in;
> +layout(triangle_strip, max_vertices = 4) out;
> +
> +void emit(vec2 v2)
> +{
> + gl_Position.xy = v2;
> + gl_Position.zw = vec2(0, 1);
> + EmitVertex();
> +}
> +
> +void main()
> +{
> + int i = gl_InvocationID;
> +
> + vec2 v;
> + v.x = -1.0 + float(i & 1);
> + v.y = -1.0 + float((i & 2) / 2);
> +
> + if (i >= 0 && i < 4) {
> + emit(v);
> + emit(v + vec2(1, 0));
> + emit(v + vec2(0, 1));
> + emit(v + vec2(1, 1));
> + EndPrimitive();
> + }
> +}
> +
> +[geometry shader]
Same.
> +#version 150
> +#extension GL_ARB_gpu_shader5 : enable
> +
> +layout(invocations = 4) in;
> +
> +[fragment shader]
> +#version 150
Same.
> +
> +void main()
> +{
> + gl_FragColor = vec4(0.0, 1.0, 0.0, 1.0);
> +}
> +
> +[test]
> +clear color 0.0 0.0 0.0 0.0
> +clear
> +draw arrays GL_POINTS 0 1
> +probe all rgba 0.0 1.0 0.0 1.0
> --
> 1.8.5.3
More information about the Piglit
mailing list