[Piglit] [PATCH] glslparsertest: Test compute shaders.

Matt Turner mattst88 at gmail.com
Wed Jan 8 11:11:20 PST 2014


On Mon, Jan 6, 2014 at 9:01 AM, Paul Berry <stereotype441 at gmail.com> wrote:
> ---
>  framework/glsl_parser_test.py                          |  2 +-
>  tests/all.tests                                        |  6 ++++++
>  tests/glslparsertest/glslparsertest.c                  | 11 +++++++++++
>  tests/spec/arb_compute_shader/compiler/do_nothing.comp | 13 +++++++++++++
>  4 files changed, 31 insertions(+), 1 deletion(-)
>  create mode 100644 tests/spec/arb_compute_shader/compiler/do_nothing.comp
>
> diff --git a/framework/glsl_parser_test.py b/framework/glsl_parser_test.py
> index 74034e8..91f59cb 100755
> --- a/framework/glsl_parser_test.py
> +++ b/framework/glsl_parser_test.py
> @@ -70,7 +70,7 @@ def import_glsl_parser_tests(group, basepath, subdirectories):
>              for f in filenames:
>                  # Add f as a test if its file extension is good.
>                  ext = f.rsplit('.')[-1]
> -                if ext in ['vert', 'geom', 'frag']:
> +                if ext in ['vert', 'geom', 'frag', 'comp']:
>                      filepath = path.join(dirpath, f)
>                      # testname := filepath relative to
>                      # basepath.
> diff --git a/tests/all.tests b/tests/all.tests
> index edf066b..3268d3e 100644
> --- a/tests/all.tests
> +++ b/tests/all.tests
> @@ -2779,6 +2779,12 @@ import_glsl_parser_tests(spec['ARB_geometry_shader4'],
>                           os.path.join(testsDir, 'spec', 'arb_geometry_shader4'),
>                           ['compiler'])
>
> +arb_compute_shader = Group()
> +spec['ARB_compute_shader'] = arb_compute_shader
> +import_glsl_parser_tests(spec['ARB_compute_shader'],
> +                         os.path.join(testsDir, 'spec', 'arb_compute_shader'),
> +                         ['compiler'])
> +
>  # group glslparsertest ------------------------------------------------------
>  glslparsertest = Group()
>  # Add all shader source files in the directories below.
> diff --git a/tests/glslparsertest/glslparsertest.c b/tests/glslparsertest/glslparsertest.c
> index 00e4fcc..fbfbb16 100644
> --- a/tests/glslparsertest/glslparsertest.c
> +++ b/tests/glslparsertest/glslparsertest.c
> @@ -206,6 +206,8 @@ test(void)
>  #ifdef PIGLIT_USE_OPENGL
>         else if (strcmp(filename + strlen(filename) - 4, "geom") == 0)
>                 type = GL_GEOMETRY_SHADER;
> +       else if (strcmp(filename + strlen(filename) - 4, "comp") == 0)
> +               type = GL_COMPUTE_SHADER;
>  #endif
>         else {
>                 fprintf(stderr, "Couldn't determine type of program %s\n",
> @@ -216,6 +218,15 @@ test(void)
>         piglit_require_vertex_shader();
>         piglit_require_fragment_shader();
>
> +       if (type == GL_COMPUTE_SHADER) {
> +               if (!piglit_is_extension_supported("GL_ARB_compute_shader") &&
> +                   (piglit_is_gles() || piglit_get_gl_version() < 43)) {
> +                       printf("Test requires GL version 4.3 or "
> +                              "GL_ARB_compute_shader\n");
> +                       piglit_report_result(PIGLIT_SKIP);
> +               }
> +       }
> +
>         prog_string = piglit_load_text_file(filename, NULL);
>         if (prog_string == NULL) {
>                 fprintf(stderr, "Couldn't open program %s: %s\n",
> diff --git a/tests/spec/arb_compute_shader/compiler/do_nothing.comp b/tests/spec/arb_compute_shader/compiler/do_nothing.comp
> new file mode 100644
> index 0000000..fa2ac7e
> --- /dev/null
> +++ b/tests/spec/arb_compute_shader/compiler/do_nothing.comp
> @@ -0,0 +1,13 @@
> +// [config]
> +// expect_result: pass
> +// glsl_version: 3.30

// require_extensions: GL_ARB_compute_shader

> +// [end config]
> +
> +#version 330
> +#extension GL_ARB_compute_shader: enable
> +
> +layout(local_size_x = 1) in;
> +
> +void main()
> +{
> +}
> --

Reviewed-by: Matt Turner <mattst88 at gmail.com>


More information about the Piglit mailing list