[Piglit] [PATCH] arb_compute_variable_group_size: add ARB_compute_shader enables

Samuel Pitoiset samuel.pitoiset at gmail.com
Mon Oct 17 19:53:16 UTC 2016



On 10/17/2016 09:38 PM, Nicolai Hähnle wrote:
> From: Nicolai Hähnle <nicolai.haehnle at amd.com>
>
> Without those, many of the tests started failing now that Mesa explicitly
> checks for the compute shader enable in the compiler.

Well, ARB_compute_variable_group_size requires ARB_compute_shader, 
that's why I didn't check it initially. But if mesa now checks for 
compute shaders availability, this makes sense.

Your patch will conflict with Matt's one though, but this looks better 
to me actually.

Reviewed-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>

> ---
>  tests/spec/arb_compute_variable_group_size/compiler/do_nothing.comp     | 1 +
>  .../compiler/gl_LocalGroupSizeARB_illegal_use.comp                      | 1 +
>  .../compiler/gl_LocalGroupSizeARB_layout.comp                           | 1 +
>  tests/spec/arb_compute_variable_group_size/errors.c                     | 1 +
>  .../execution/basic-local-size.shader_test                              | 1 +
>  .../linker/mixed_fixed_variable_local_work_size.shader_test             | 2 ++
>  .../linker/no_local_size_specified.shader_test                          | 2 ++
>  tests/spec/arb_compute_variable_group_size/local-size.c                 | 1 +
>  8 files changed, 10 insertions(+)
>
> diff --git a/tests/spec/arb_compute_variable_group_size/compiler/do_nothing.comp b/tests/spec/arb_compute_variable_group_size/compiler/do_nothing.comp
> index 95c061b..ae2e973 100644
> --- a/tests/spec/arb_compute_variable_group_size/compiler/do_nothing.comp
> +++ b/tests/spec/arb_compute_variable_group_size/compiler/do_nothing.comp
> @@ -1,14 +1,15 @@
>  // [config]
>  // expect_result: pass
>  // glsl_version: 3.30
>  // require_extensions: GL_ARB_compute_variable_group_size
>  // [end config]
>
>  #version 330
> +#extension GL_ARB_compute_shader: enable
>  #extension GL_ARB_compute_variable_group_size: enable
>
>  layout(local_size_variable) in;
>
>  void main()
>  {
>  }
> diff --git a/tests/spec/arb_compute_variable_group_size/compiler/gl_LocalGroupSizeARB_illegal_use.comp b/tests/spec/arb_compute_variable_group_size/compiler/gl_LocalGroupSizeARB_illegal_use.comp
> index f8fcf92..5eb8f4d 100644
> --- a/tests/spec/arb_compute_variable_group_size/compiler/gl_LocalGroupSizeARB_illegal_use.comp
> +++ b/tests/spec/arb_compute_variable_group_size/compiler/gl_LocalGroupSizeARB_illegal_use.comp
> @@ -11,18 +11,19 @@
>  //     example, a shader might want to declare a shared variable with one
>  //     instance per work group invocation, such as:
>  //
>  //     shared float shared_values[gl_WorkGroupSize.x *
>  //                                gl_WorkGroupSize.y * gl_WorkGroupSize.z];
>  //
>  //     Such declarations would be illegal using the input
>  //     "gl_LocalGroupSizeARB".
>
>  #version 330
> +#extension GL_ARB_compute_shader: enable
>  #extension GL_ARB_compute_variable_group_size: enable
>
>  layout(local_size_variable) in;
>
>  void main()
>  {
>  	uint v[gl_LocalGroupSizeARB.x];
>  }
> diff --git a/tests/spec/arb_compute_variable_group_size/compiler/gl_LocalGroupSizeARB_layout.comp b/tests/spec/arb_compute_variable_group_size/compiler/gl_LocalGroupSizeARB_layout.comp
> index 953856e..d575001 100644
> --- a/tests/spec/arb_compute_variable_group_size/compiler/gl_LocalGroupSizeARB_layout.comp
> +++ b/tests/spec/arb_compute_variable_group_size/compiler/gl_LocalGroupSizeARB_layout.comp
> @@ -10,18 +10,19 @@
>  //     variable containing the local work group size for the current compute-
>  //     shader work group. For compute shaders with a fixed local group size
>  //     (using *local_size_x*, *local_size_y*, or *local_size_z* layout
>  //     qualifiers), its value will be the same as the constant
>  //     /gl_WorkGroupSize/. For compute shaders with a variable local group size
>  //     (using *local_size_variable*), the value of /gl_LocalGroupSizeARB/ will
>  //     be the work group size specified in the OpenGL API command dispatching
>  //     the current compute shader work.
>
>  #version 330
> +#extension GL_ARB_compute_shader: enable
>  #extension GL_ARB_compute_variable_group_size: enable
>
>  layout(local_size_variable) in;
>
>  void main()
>  {
>  	uvec3 size = gl_LocalGroupSizeARB;
>  }
> diff --git a/tests/spec/arb_compute_variable_group_size/errors.c b/tests/spec/arb_compute_variable_group_size/errors.c
> index 19945d1..82bae42 100644
> --- a/tests/spec/arb_compute_variable_group_size/errors.c
> +++ b/tests/spec/arb_compute_variable_group_size/errors.c
> @@ -35,20 +35,21 @@ static struct piglit_gl_test_config *piglit_config;
>  PIGLIT_GL_TEST_CONFIG_BEGIN
>
>  	piglit_config = &config;
>  	config.supports_gl_compat_version = 33;
>  	config.supports_gl_core_version = 33;
>
>  PIGLIT_GL_TEST_CONFIG_END
>
>  static const char *variable_work_group_size_shader =
>  	"#version 330\n"
> +	"#extension GL_ARB_compute_shader: enable\n"
>  	"#extension GL_ARB_compute_variable_group_size: enable\n"
>  	"\n"
>  	"layout(local_size_variable) in;\n"
>  	"\n"
>  	"void main()\n"
>  	"{\n"
>  	"}\n";
>
>  static const char *fixed_work_group_size_shader =
>  	"#version 330\n"
> diff --git a/tests/spec/arb_compute_variable_group_size/execution/basic-local-size.shader_test b/tests/spec/arb_compute_variable_group_size/execution/basic-local-size.shader_test
> index 108ebd5..75c93f7 100644
> --- a/tests/spec/arb_compute_variable_group_size/execution/basic-local-size.shader_test
> +++ b/tests/spec/arb_compute_variable_group_size/execution/basic-local-size.shader_test
> @@ -2,20 +2,21 @@
>  # functioning. Atomic counters are used as outputs.
>
>  [require]
>  GL >= 3.3
>  GLSL >= 3.30
>  GL_ARB_compute_variable_group_size
>  GL_ARB_shader_atomic_counters
>
>  [compute shader]
>  #version 330
> +#extension GL_ARB_compute_shader: enable
>  #extension GL_ARB_compute_variable_group_size: enable
>  #extension GL_ARB_shader_atomic_counters: require
>
>  layout(binding = 0) uniform atomic_uint a;
>
>  layout(local_size_variable) in;
>
>  void main()
>  {
>  	if (gl_LocalGroupSizeARB.x == 8u &&
> diff --git a/tests/spec/arb_compute_variable_group_size/linker/mixed_fixed_variable_local_work_size.shader_test b/tests/spec/arb_compute_variable_group_size/linker/mixed_fixed_variable_local_work_size.shader_test
> index d660d56..6d52933 100644
> --- a/tests/spec/arb_compute_variable_group_size/linker/mixed_fixed_variable_local_work_size.shader_test
> +++ b/tests/spec/arb_compute_variable_group_size/linker/mixed_fixed_variable_local_work_size.shader_test
> @@ -1,36 +1,38 @@
>  # The ARB_compute_variable_group_size spec says:
>  #
>  #     If one compute shader attached to a program declares a variable local
>  #     group size and a second compute shader attached to the same program
>  #     declares a fixed local group size, a link-time error results.
>
>  [require]
>  GL >= 3.3
>  GLSL >= 3.30
>  GL_ARB_compute_shader
> +GL_ARB_compute_variable_group_size
>
>  [compute shader]
>  #version 330
>  #extension GL_ARB_compute_shader: enable
>
>  layout(local_size_x = 2) in;
>
>  void foo();
>
>  void main()
>  {
>  	foo();
>  }
>
>  [compute shader]
>  #version 330
> +#extension GL_ARB_compute_shader: enable
>  #extension GL_ARB_compute_variable_group_size: enable
>
>  layout(local_size_variable) in;
>
>  void foo()
>  {
>  }
>
>  [test]
>  link error
> diff --git a/tests/spec/arb_compute_variable_group_size/linker/no_local_size_specified.shader_test b/tests/spec/arb_compute_variable_group_size/linker/no_local_size_specified.shader_test
> index 6371c29..78428df 100644
> --- a/tests/spec/arb_compute_variable_group_size/linker/no_local_size_specified.shader_test
> +++ b/tests/spec/arb_compute_variable_group_size/linker/no_local_size_specified.shader_test
> @@ -1,32 +1,34 @@
>  # The ARB_compute_variable_group_size spec says:
>  #
>  #     Furthermore, if a program object contains any compute shaders, at least
>  #     one must contain an input layout qualifier specifying a fixed or variable
>  #     local group size for the program, or a link-time error will occur.
>
>  [require]
>  GL >= 3.3
>  GLSL >= 3.30
>  GL_ARB_compute_shader
> +GL_ARB_compute_variable_group_size
>
>  [compute shader]
>  #version 330
>  #extension GL_ARB_compute_shader: enable
>
>  void foo();
>
>  void main()
>  {
>  	foo();
>  }
>
>  [compute shader]
>  #version 330
> +#extension GL_ARB_compute_shader: enable
>  #extension GL_ARB_compute_variable_group_size: enable
>
>  void foo()
>  {
>  }
>
>  [test]
>  link error
> diff --git a/tests/spec/arb_compute_variable_group_size/local-size.c b/tests/spec/arb_compute_variable_group_size/local-size.c
> index e646c06..26cf5d6 100644
> --- a/tests/spec/arb_compute_variable_group_size/local-size.c
> +++ b/tests/spec/arb_compute_variable_group_size/local-size.c
> @@ -44,20 +44,21 @@ static uint32_t local_x = 0, local_y = 0, local_z = 0;
>  static int32_t max_local_x = 0, max_local_y = 0, max_local_z = 0;
>  static int32_t max_variable_invocations = 0;
>
>  static uint32_t sizes[] = {
>  	1, 2, 3, 4, 5, 7, 8, 9, 15, 16, 17, 31, 32, 33, 63, 64, 65,
>  	127, 128, 129, 255, 256, 257, 511, 512, 513, 1023, 1024
>  };
>
>  static const char *compute_shader_source =
>  	"#version 330\n"
> +	"#extension GL_ARB_compute_shader: enable\n"
>  	"#extension GL_ARB_compute_variable_group_size: enable\n"
>  	"#extension GL_ARB_shader_atomic_counters: require\n"
>  	"\n"
>  	"layout(binding = 0) uniform atomic_uint a;\n"
>  	"layout(local_size_variable) in;\n"
>  	"\n"
>  	"void main()\n"
>  	"{\n"
>  	"	if (gl_LocalGroupSizeARB.x == %du &&\n"
>  	"	    gl_LocalGroupSizeARB.y == %du &&\n"
>


More information about the Piglit mailing list