[Piglit] [PATCH 2/2] arb_shader_atomic_counters: check different binding points

Francisco Jerez currojerez at riseup.net
Tue Mar 7 21:20:21 UTC 2017


Andres Gomez <agomez at igalia.com> 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 <agomez at igalia.com>
> Cc: Francisco Jerez <currojerez at riseup.net>
> Cc: Ian Romanick <ian.d.romanick at intel.com>
> ---
>  .../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 <currojerez at riseup.net>

> +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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 212 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/piglit/attachments/20170307/ca833da1/attachment.sig>


More information about the Piglit mailing list