Andres Gomez <[email protected]> writes:

> This adds a test to check that a link error is expected when
> specifying different binding points among compilation units for atomic
> counters with the same name.
>
> From the ARB_shader_atomic_counters spec:
>
>   " It is legal for some shaders to provide a layout qualifier for a
>     uniform variable of the same name, while another shader does not
>     provide a layout qualifier for a uniform variable of the same
>     name, but if provided, all provided layout qualifiers must be
>     equal for a uniform variable of the same name, and if not
>     provided, all implicitly provided layout qualifiers must be equal
>     for a uniform variable of the same name."
>
> v2: Added GL minimum version restriction.
>
> Signed-off-by: Andres Gomez <[email protected]>
> Cc: Francisco Jerez <[email protected]>
> Cc: Ian Romanick <[email protected]>
> ---
>  .../different-bindings-atomic-counter.shader_test  | 51 
> ++++++++++++++++++++++
>  1 file changed, 51 insertions(+)
>  create mode 100644 
> tests/spec/arb_shader_atomic_counters/linker/different-bindings-atomic-counter.shader_test
>
> diff --git 
> a/tests/spec/arb_shader_atomic_counters/linker/different-bindings-atomic-counter.shader_test
>  
> b/tests/spec/arb_shader_atomic_counters/linker/different-bindings-atomic-counter.shader_test
> new file mode 100644
> index 000000000..b331650cc
> --- /dev/null
> +++ 
> b/tests/spec/arb_shader_atomic_counters/linker/different-bindings-atomic-counter.shader_test
> @@ -0,0 +1,51 @@
> +/* The ARB_shader_atomic_counters says:
> + *
> + *     "It is legal for some shaders to provide a layout qualifier for
> + *      a uniform variable of the same name, while another shader does
> + *      not provide a layout qualifier for a uniform variable of the
> + *      same name, but if provided, all provided layout qualifiers
> + *      must be equal for a uniform variable of the same name, and if
> + *      not provided, all implicitly provided layout qualifiers must
> + *      be equal for a uniform variable of the same name."
> + *
> + * Verify that a link error happens when using different binding
> + * points for an atomic counter with the same name in different
> + * compilation units.
> + */
> +
> +[require]
> +GL >= 3.00

The GL version specification seems inconsistent with the GLSL version
specified below, I think you want to ask for 3.1 here, with that fixed:

Reviewed-by: Francisco Jerez <[email protected]>

> +GLSL >= 1.40
> +GL_ARB_shader_atomic_counters
> +
> +[vertex shader]
> +#version 140
> +#extension GL_ARB_shader_atomic_counters: require
> +
> +layout (binding = 0) uniform atomic_uint x;
> +
> +in vec4 piglit_vertex;
> +out vec4 vs_fs;
> +
> +void main()
> +{
> +     vs_fs = vec4(atomicCounter(x));
> +     gl_Position = piglit_vertex;
> +}
> +
> +[fragment shader]
> +#version 140
> +#extension GL_ARB_shader_atomic_counters: require
> +
> +layout (binding = 1) uniform atomic_uint x;
> +
> +in  vec4 vs_fs;
> +out vec4 fs_out;
> +
> +void main()
> +{
> +     fs_out = vs_fs * atomicCounter(x);
> +}
> +
> +[test]
> +link error
> -- 
> 2.11.0

Attachment: signature.asc
Description: PGP signature

_______________________________________________
Piglit mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/piglit

Reply via email to