[Piglit] [PATCH] Add #version 300 es by glShaderSource when the shader is based on GLSL ES30, and the shader it self do not contained the token #version 300 es
Because the token #version 300 es is necessary with the current infrastructure during a GLSL ES30 shader test is added. This patch is used to make it more automation, and the infrastructure can now adding #version 300 es itself, when the GLSL ES30 shader do not include the token. Signed-off-by: Wang Shuo shuo.w...@intel.com --- tests/glslparsertest/glslparsertest.c | 26 +++--- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/tests/glslparsertest/glslparsertest.c b/tests/glslparsertest/glslparsertest.c index b969eff..39704ac 100644 --- a/tests/glslparsertest/glslparsertest.c +++ b/tests/glslparsertest/glslparsertest.c @@ -214,13 +214,15 @@ test(void) { GLint prog; GLint ok; - GLchar *prog_string; + GLchar *prog_string[2]; FILE *out; GLboolean pass; GLchar *info; GLint size; GLenum type; char *failing_stage = NULL; + GLint ISGLSLES30VersionContained = 0; + char *glslES30Version = #version 300 es\n; if (strcmp(filename + strlen(filename) - 4, frag) == 0) type = GL_FRAGMENT_SHADER; @@ -264,15 +266,25 @@ test(void) } } - prog_string = piglit_load_text_file(filename, NULL); - if (prog_string == NULL) { + prog_string[1] = piglit_load_text_file(filename, NULL); + if (prog_string[1] == NULL) { fprintf(stderr, Couldn't open program %s: %s\n, filename, strerror(errno)); exit(1); } + if (strstr(filename, glsl-es-3.00) != NULL){ + if (strstr(prog_string[1], #version 300 es) == NULL){ + ISGLSLES30VersionContained = 1; + } + } + + prog_string[0] = glslES30Version; prog = glCreateShader(type); - glShaderSource(prog, 1, (const GLchar **)prog_string, NULL); + if(ISGLSLES30VersionContained == 0) + glShaderSource(prog, 1, (const GLchar **)(prog_string[1]), NULL); + else + glShaderSource(prog, 2, (const GLchar **)prog_string, NULL); glCompileShader(prog); ok = get_shader_compile_status(prog); @@ -336,7 +348,7 @@ test(void) filename, info); if (expected_pass) { printf(Shader source:\n); - printf(%s\n, prog_string); + printf(%s\n, prog_string[1]); } } else { fprintf(out, Successfully %s %s shader %s: %s\n, @@ -345,13 +357,13 @@ test(void) filename, info); if (!expected_pass) { printf(Shader source:\n); - printf(%s\n, prog_string); + printf(%s\n, prog_string[1]); } } if (size != 0) free(info); - free(prog_string); + free(prog_string[1]); glDeleteShader(prog); piglit_report_result (pass ? PIGLIT_PASS : PIGLIT_FAIL); } -- 1.8.3.2 ___ Piglit mailing list Piglit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/piglit
Re: [Piglit] [PATCH v4] Add tests arb_conditional_render_inverted
On 11/15/2014 08:56 PM, Tobias Klausmann wrote: Adopted tests from NV_conditional_render Signed-off-by: Tobias Klausmann tobias.johannes.klausm...@mni.thm.de In several places you have config.supports_gl_compat_version = 10; and later piglit_require_gl_version(30); I think you could just specify config.supports_gl_compat_version = 30 and omit the piglit_require_gl_version(30); It's a shame this duplicates so much code from the NV_conditional_render tests. Another option might be to update the existing tests to take an inverted command line argument to test the GL_ARB_conditional_render_inverted extension. Though the tests should then alternately accept OpenGL 3.0 support instead of NV_conditional_render. Thoughts? -Brian ___ Piglit mailing list Piglit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/piglit
Re: [Piglit] [PATCH 43/45] gen_builtin_packing_tests.py: removed unused variable
On Fri 14 Nov 2014, Matt Turner wrote: On Wed, Nov 12, 2014 at 3:46 PM, Dylan Baker baker.dyla...@gmail.com wrote: Signed-off-by: Dylan Baker dylanx.c.ba...@intel.com --- generated_tests/gen_builtin_packing_tests.py | 1 - 1 file changed, 1 deletion(-) diff --git a/generated_tests/gen_builtin_packing_tests.py b/generated_tests/gen_builtin_packing_tests.py index 7a7d610..9a56601 100644 --- a/generated_tests/gen_builtin_packing_tests.py +++ b/generated_tests/gen_builtin_packing_tests.py @@ -524,7 +524,6 @@ def make_inputs_for_pack_half_2x16(): # handling of zero. subnormal_min = 2.0**(-14) * (1.0 / 2.0**10) -subnormal_max = 2.0**(-14) * (1023.0 / 2.0**10) Weird, yeah. Seems unused. Chad? Yes, unused. Maybe I used it in an uncommitted version of the patch, but it's unused now. Reviewed-by: Chad Versace chad.vers...@linux.intel.com ___ Piglit mailing list Piglit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/piglit
[Piglit] [PATCH] Remove spec.EXT_timer_query.time-elapsed from quick.py
spec.EXT_timer_query.time-elapsed fails intermittently, causing confusion for developers running quick.py to find regressions. This test has always been intermittent, and people generally know to ignore it when it fails. However, if everyone ignores the test, there is no point in running it all the time. --- tests/quick.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/quick.py b/tests/quick.py index 8762d7d..802501c 100644 --- a/tests/quick.py +++ b/tests/quick.py @@ -12,3 +12,4 @@ del profile.tests['shaders']['glsl-fs-inline-explosion'] del profile.tests['shaders']['glsl-fs-unroll-explosion'] del profile.tests['shaders']['glsl-vs-inline-explosion'] del profile.tests['shaders']['glsl-vs-unroll-explosion'] +del profile.tests['spec']['EXT_timer_query']['time-elapsed'] -- 2.1.3 ___ Piglit mailing list Piglit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/piglit
Re: [Piglit] [PATCH] Remove spec.EXT_timer_query.time-elapsed from quick.py
On Monday, November 17, 2014 11:30:13 AM Mark Janes wrote: spec.EXT_timer_query.time-elapsed fails intermittently, causing confusion for developers running quick.py to find regressions. This test has always been intermittent, and people generally know to ignore it when it fails. However, if everyone ignores the test, there is no point in running it all the time. --- tests/quick.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/quick.py b/tests/quick.py index 8762d7d..802501c 100644 --- a/tests/quick.py +++ b/tests/quick.py @@ -12,3 +12,4 @@ del profile.tests['shaders']['glsl-fs-inline-explosion'] del profile.tests['shaders']['glsl-fs-unroll-explosion'] del profile.tests['shaders']['glsl-vs-inline-explosion'] del profile.tests['shaders']['glsl-vs-unroll-explosion'] +del profile.tests['spec']['EXT_timer_query']['time-elapsed'] -- 2.1.3 I think I've seen all of the EXT_timer_query and all of the ARB_timer_query fail sporadicly. Should we just disable all of those groups? signature.asc Description: This is a digitally signed message part. ___ Piglit mailing list Piglit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/piglit
[Piglit] [PATCH] all.py: remove explicit additions of -auto to test command lines
Patch c6fc8b36b948a7c2 modified the python PiglitGLTESt class (the one used by non-glean, non-shader_test, non-glsl_parser_test tests) to automatically add -auto to all tests, and -fbo to concurrent tests. I did a really poor job of looking for tests that contained -auto in them when that patch was added because of the add_plain_test and add_concurrent_test wrappers. This patch corrects that oversight by remove tests that explicitly add -auto. It does not remove tests that explicitly set -fbo, because the tests that are doing that are not setting run_concurrent=True, so -fbo isn't being added to their command lines automatically. I saw no changes with this patch on quick.py with an IVB running 10.4-devel. Signed-off-by: Dylan Baker dylanx.c.ba...@intel.com --- tests/all.py | 134 +-- 1 file changed, 66 insertions(+), 68 deletions(-) diff --git a/tests/all.py b/tests/all.py index 5651fdc..6e5721d 100644 --- a/tests/all.py +++ b/tests/all.py @@ -665,8 +665,8 @@ spec['!OpenGL 1.1'] = gl11 add_texwrap_target_tests(gl11, '1D') add_texwrap_target_tests(gl11, '2D') add_texwrap_format_tests(gl11) -gl11['copyteximage 1D'] = PiglitGLTest(['copyteximage', '-auto', '1D']) -gl11['copyteximage 2D'] = PiglitGLTest(['copyteximage', '-auto', '2D']) +gl11['copyteximage 1D'] = PiglitGLTest(['copyteximage', '1D']) +gl11['copyteximage 2D'] = PiglitGLTest(['copyteximage', '2D']) add_plain_test(gl11, 'drawbuffer-modes') add_plain_test(gl11, 'fdo10370') add_plain_test(gl11, 'fdo23489') @@ -743,7 +743,7 @@ add_plain_test(gl11, 'copytexsubimage') add_plain_test(gl11, 'getteximage-formats') add_plain_test(gl11, 'getteximage-luminance') add_plain_test(gl11, 'getteximage-simple') -gl11['incomplete-texture-fixed'] = PiglitGLTest('incomplete-texture -auto fixed', run_concurrent=True) +gl11['incomplete-texture-fixed'] = PiglitGLTest('incomplete-texture fixed', run_concurrent=True) add_plain_test(gl11, 'max-texture-size') add_concurrent_test(gl11, 'max-texture-size-level') add_concurrent_test(gl11, 'proxy-texture') @@ -841,7 +841,7 @@ add_msaa_visual_plain_tests(gl14, 'copy-pixels') add_plain_test(gl14, 'draw-batch') add_plain_test(gl14, 'stencil-wrap') add_plain_test(gl14, 'triangle-rasterization') -gl14['triangle-rasterization-fbo'] = PiglitGLTest(['triangle-rasterization', '-auto', '-use_fbo']) +gl14['triangle-rasterization-fbo'] = PiglitGLTest(['triangle-rasterization', '-use_fbo']) add_plain_test(gl14, 'triangle-rasterization-overdraw') gl14['tex-miplevel-selection'] = PiglitGLTest('tex-miplevel-selection -nobias -nolod', run_concurrent=True) gl14['tex-miplevel-selection-lod'] = PiglitGLTest('tex-miplevel-selection -nobias', run_concurrent=True) @@ -850,13 +850,13 @@ gl14['tex-miplevel-selection-lod-bias'] = PiglitGLTest('tex-miplevel-selection', gl15 = {} spec['!OpenGL 1.5'] = gl15 add_plain_test(gl15, 'draw-elements') -gl15['draw-elements-user'] = PiglitGLTest(['draw-elements', '-auto', 'user']) +gl15['draw-elements-user'] = PiglitGLTest(['draw-elements', 'user']) add_plain_test(gl15, 'draw-vertices') -gl15['draw-vertices-user'] = PiglitGLTest(['draw-vertices', '-auto', 'user']) +gl15['draw-vertices-user'] = PiglitGLTest(['draw-vertices', 'user']) add_plain_test(gl15, 'isbufferobj') add_plain_test(gl15, 'depth-tex-compare') -gl15['normal3b3s-invariance-byte'] = PiglitGLTest(['gl-1.5-normal3b3s-invariance', 'GL_BYTE', '-auto']) -gl15['normal3b3s-invariance-short'] = PiglitGLTest(['gl-1.5-normal3b3s-invariance', 'GL_SHORT', '-auto']) +gl15['normal3b3s-invariance-byte'] = PiglitGLTest(['gl-1.5-normal3b3s-invariance', 'GL_BYTE']) +gl15['normal3b3s-invariance-short'] = PiglitGLTest(['gl-1.5-normal3b3s-invariance', 'GL_SHORT']) gl20 = {} spec['!OpenGL 2.0'] = gl20 @@ -906,7 +906,7 @@ add_plain_test(gl20, 'stencil-twoside') add_plain_test(gl20, 'vs-point_size-zero') add_plain_test(gl20, 'depth-tex-modes-glsl') add_plain_test(gl20, 'fragment-and-vertex-texturing') -gl20['incomplete-texture-glsl'] = PiglitGLTest('incomplete-texture -auto glsl', run_concurrent=True) +gl20['incomplete-texture-glsl'] = PiglitGLTest('incomplete-texture glsl', run_concurrent=True) add_plain_test(gl20, 'tex3d-npot') add_concurrent_test(gl20, 'max-samplers') add_concurrent_test(gl20, 'max-samplers border') @@ -1091,7 +1091,7 @@ def add_recursion_test(group, name): # This may cause false negatives on systems that map the framebuffer # into the processes address space. This happens on X with DRI1 based # drivers, for example. -group[name] = PiglitGLTest(['recursion', '-auto', '-rlimit', '268435456', name]) +group[name] = PiglitGLTest(['recursion', '-rlimit', '268435456', name]) rec = {} spec['glsl-1.20']['recursion'] = rec @@ -1202,7 +1202,7 @@ add_plain_test(spec['glsl-1.30']['linker']['clipping'], 'mixing-clip-distance-an add_plain_test(spec['glsl-1.30']['execution']['clipping'], 'max-clip-distances') for arg in
[Piglit] [PATCH 0/6] ARB_pipeline_statistics tests
tl;dr: please review pipeline_stats_vert_adj This patch series implements some basic tests for GL_ARB_pipeline_statistics_query The extension adds the following tokens: VERTICES_SUBMITTED_ARB PRIMITIVES_SUBMITTED_ARB VERTEX_SHADER_INVOCATIONS_ARB TESS_CONTROL_SHADER_PATCHES_ARB TESS_EVALUATION_SHADER_INVOCATIONS_ARB GEOMETRY_SHADER_INVOCATIONS GEOMETRY_SHADER_PRIMITIVES_EMITTED_ARB FRAGMENT_SHADER_INVOCATIONS_ARB COMPUTE_SHADER_INVOCATIONS_ARB CLIPPING_INPUT_PRIMITIVES_ARB CLIPPING_OUTPUT_PRIMITIVES_ARB As far as I can tell, the vertex, fragment, and clipper tests only require GL3.0, while the remaining all require some higher GL version, and/or support of the relevant extension. s such, it is currently impossible to test the tokens missing from this series: COMPUTE_SHADER_INVOCATIONS_ARB TESS_CONTROL_SHADER_PATCHES_ARB TESS_EVALUATION_SHADER_INVOCATIONS_ARB There is one clause in the spec which effectively makes it impossible to write canonical positive test cases for this feature: (5) How accurate should the statistics be? RESOLVED: None of the statistics have to be exact, thus implementations might return slightly different results for any of them. Within each file I've quoted the relevant portion of the spec, and began lovingly calling it the chickin clause. (I understand the technical reason for these clauses, but it does make it hard to write a test...). I suppose over time we can adjust the amount of fudge in each test. The fragment shader test provides an example of this, since that test reasonably needs some amount of fudge. Ideally someone will look at pipeline_stats_vert_adj to make sure I understood the spec correctly. This case is not passing on Intel. All of other these tests pass on Intel hardware with the mesa patch that I will submit separately after these patches, or the equivalent, are merged. For those who want a preview: http://cgit.freedesktop.org/~bwidawsk/mesa/log/?h=pipe_stats To run them all: piglit-run.py -t arb_pipeline_stats tests/all.py output/pipeline_stats Ben Widawsky (6): ARB_pipeline_statistics_query (vertex): basic test ARB_pipeline_statistics_query (vertex): adjacency ARB_pipeline_statistics_query (clip): basic test ARB_pipeline_statistics_query (frag): basic test ARB_pipeline_statistics_query (geom): basic test arb_pipeline_statistics: add some basic tests tests/all.py | 13 ++ tests/spec/CMakeLists.txt | 1 + .../spec/arb_pipeline_statistics/CMakeLists.gl.txt | 30 + tests/spec/arb_pipeline_statistics/CMakeLists.txt | 1 + .../arb_pipeline_statistics/pipeline_stats_clip.c | 126 ++ .../arb_pipeline_statistics/pipeline_stats_frag.c | 105 +++ .../arb_pipeline_statistics/pipeline_stats_geom.c | 146 + .../arb_pipeline_statistics/pipeline_stats_vert.c | 132 +++ .../pipeline_stats_vert_adj.c | 143 tests/spec/arb_pipeline_statistics/pipestat_help.c | 98 ++ tests/spec/arb_pipeline_statistics/pipestat_help.h | 32 + 11 files changed, 827 insertions(+) create mode 100644 tests/spec/arb_pipeline_statistics/CMakeLists.gl.txt create mode 100644 tests/spec/arb_pipeline_statistics/CMakeLists.txt create mode 100644 tests/spec/arb_pipeline_statistics/pipeline_stats_clip.c create mode 100644 tests/spec/arb_pipeline_statistics/pipeline_stats_frag.c create mode 100644 tests/spec/arb_pipeline_statistics/pipeline_stats_geom.c create mode 100644 tests/spec/arb_pipeline_statistics/pipeline_stats_vert.c create mode 100644 tests/spec/arb_pipeline_statistics/pipeline_stats_vert_adj.c create mode 100644 tests/spec/arb_pipeline_statistics/pipestat_help.c create mode 100644 tests/spec/arb_pipeline_statistics/pipestat_help.h -- 2.1.3 ___ Piglit mailing list Piglit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/piglit
[Piglit] [PATCH 2/6] ARB_pipeline_statistics_query (vertex): adjacency
Signed-off-by: Ben Widawsky b...@bwidawsk.net --- .../spec/arb_pipeline_statistics/CMakeLists.gl.txt | 2 + .../pipeline_stats_vert_adj.c | 143 + tests/spec/arb_pipeline_statistics/pipestat_help.c | 17 ++- tests/spec/arb_pipeline_statistics/pipestat_help.h | 2 + 4 files changed, 162 insertions(+), 2 deletions(-) create mode 100644 tests/spec/arb_pipeline_statistics/pipeline_stats_vert_adj.c diff --git a/tests/spec/arb_pipeline_statistics/CMakeLists.gl.txt b/tests/spec/arb_pipeline_statistics/CMakeLists.gl.txt index bec5918..d26f588 100644 --- a/tests/spec/arb_pipeline_statistics/CMakeLists.gl.txt +++ b/tests/spec/arb_pipeline_statistics/CMakeLists.gl.txt @@ -18,5 +18,7 @@ add_library (pipestat_help STATIC pipestat_help.c) piglit_add_executable (arb_pipeline_stats_vert pipeline_stats_vert.c) target_link_libraries (arb_pipeline_stats_vert pipestat_help) +piglit_add_executable (arb_pipeline_stats_vert_adj pipeline_stats_vert_adj.c) +target_link_libraries (arb_pipeline_stats_vert_adj pipestat_help) # vim: ft=cmake diff --git a/tests/spec/arb_pipeline_statistics/pipeline_stats_vert_adj.c b/tests/spec/arb_pipeline_statistics/pipeline_stats_vert_adj.c new file mode 100644 index 000..54e5339 --- /dev/null +++ b/tests/spec/arb_pipeline_statistics/pipeline_stats_vert_adj.c @@ -0,0 +1,143 @@ +/* + * Copyright © 2014 Intel Corporation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the Software), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED AS IS, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + * IN THE SOFTWARE. + */ + +/** \file pipeline_stats_vert_adj.c + * + * This test verifies that the vertex shader related tokens of + * ARB_pipeline_statistics_query() work as expected. Much of this was derived + * from ignore-adjacent-vertices.c + * + * 10.11 + * In case of primitive types with adjacency information (see sections 10.1.11 + * through 10.1.14) only the vertices belonging to the main primitive are + * counted but not the adjacent vertices. In case of line loop primitives + * implementations are allowed to count the first vertex twice for the + * purposes of VERTICES_SUBMITTED_ARB queries. Additionally, vertices + * corresponding to incomplete primitives may or may not be counted. + * + * I read this as: the only definite thing we can test across implementation is + * discarding adjacent vertices. + */ + +#include piglit-util-gl.h +#include pipestat_help.h + +PIGLIT_GL_TEST_CONFIG_BEGIN +/* I believe the adjacency tokens require 3.2 GS */ + config.supports_gl_compat_version = 32; + config.supports_gl_core_version = 32; + config.window_visual = PIGLIT_GL_VISUAL_DOUBLE | PIGLIT_GL_VISUAL_RGBA; +PIGLIT_GL_TEST_CONFIG_END + +static const char *vs_src = + #version 130 \n + \n + in vec4 piglit_vertex; \n + void main()\n + { \n + gl_Position = piglit_vertex;\n + } \n; + +static const char *fs_src = + #version 110 \n + \n + void main()\n + { \n + gl_FragColor = vec4(0, 1, 0, 1); \n + } \n; + +static struct query queries[] = { + { +.query = GL_PRIMITIVES_SUBMITTED_ARB, +.name = GL_PRIMITIVES_SUBMITTED_ARB, +.expected = 1}, /* Going to emit a line */ + { +.query = GL_VERTICES_SUBMITTED_ARB, +.name = GL_VERTICES_SUBMITTED_ARB, +.expected = 2}, /*(26) Should VERTICES_SUBMITTED_ARB count adjacent + vertices in case of primitives with adjacency? */ + { +.query = GL_VERTEX_SHADER_INVOCATIONS_ARB, +.name = GL_VERTEX_SHADER_INVOCATIONS_ARB, +.expected = 4} /* Unclear if this should be 4 or two. */ +}; + +static void +draw(void) +{ + /* 4 components, 2 verts
[Piglit] [PATCH 5/6] ARB_pipeline_statistics_query (geom): basic test
Signed-off-by: Ben Widawsky b...@bwidawsk.net --- .../spec/arb_pipeline_statistics/CMakeLists.gl.txt | 2 + .../arb_pipeline_statistics/pipeline_stats_geom.c | 146 + tests/spec/arb_pipeline_statistics/pipestat_help.c | 3 +- 3 files changed, 150 insertions(+), 1 deletion(-) create mode 100644 tests/spec/arb_pipeline_statistics/pipeline_stats_geom.c diff --git a/tests/spec/arb_pipeline_statistics/CMakeLists.gl.txt b/tests/spec/arb_pipeline_statistics/CMakeLists.gl.txt index 45da290..0c80a31 100644 --- a/tests/spec/arb_pipeline_statistics/CMakeLists.gl.txt +++ b/tests/spec/arb_pipeline_statistics/CMakeLists.gl.txt @@ -20,6 +20,8 @@ piglit_add_executable (arb_pipeline_stats_vert pipeline_stats_vert.c) target_link_libraries (arb_pipeline_stats_vert pipestat_help) piglit_add_executable (arb_pipeline_stats_vert_adj pipeline_stats_vert_adj.c) target_link_libraries (arb_pipeline_stats_vert_adj pipestat_help) +piglit_add_executable (arb_pipeline_stats_geom pipeline_stats_geom.c) +target_link_libraries (arb_pipeline_stats_geom pipestat_help) piglit_add_executable (arb_pipeline_stats_clip pipeline_stats_clip.c) target_link_libraries (arb_pipeline_stats_clip pipestat_help) piglit_add_executable (arb_pipeline_stats_frag pipeline_stats_frag.c) diff --git a/tests/spec/arb_pipeline_statistics/pipeline_stats_geom.c b/tests/spec/arb_pipeline_statistics/pipeline_stats_geom.c new file mode 100644 index 000..9cc4bcd --- /dev/null +++ b/tests/spec/arb_pipeline_statistics/pipeline_stats_geom.c @@ -0,0 +1,146 @@ +/* + * Copyright © 2014 Intel Corporation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the Software), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED AS IS, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + * IN THE SOFTWARE. + */ + +/** \file pipeline_stats_geom.c + * + * This test verifies that the vertex shader related tokens of + * ARB_pipeline_statistics_query() work as expected. OpenGL 4.4 Specification, + * Core Profile. + * + * When BeginQuery is called with a target of GEOMETRY_SHADER_INVOCATIONS, + * the geometry shader invocations count maintained by the GL is set to zero. + * When a geometry shader invocations query is active, the counter is + * incremented every time the geometry shader is invoked (see section 11.3). + * In case of instanced geometry shaders (see section 11.3.4.2) the geometry + * shader invocations count is incremented for each separate instanced + * invocation. + * + * When BeginQuery is called with a target of GEOMETRY_SHADER_PRIMITIVES_- + * EMITTED_ARB, the geometry shader output primitives count maintained by the + * GL is set to zero. When a geometry shader primitives emitted query is + * active, the counter is incremented every time the geometry shader emits + * a primitive to a vertex stream that is further processed by the GL (see + * section 11.3.2). Restarting primitive topology using the shading language + * built-in functions EndPrimitive or EndStreamPrimitive does not increment + * the geometry shader output primitives count. + * + * (The chicken clause) + * The result of geometry shader queries may be implementation dependent due + * to reasons described in section 11.1.3. + */ + +#include piglit-util-gl.h +#include pipestat_help.h + +PIGLIT_GL_TEST_CONFIG_BEGIN +config.supports_gl_core_version = 32; +config.supports_gl_compat_version = 32; +config.window_visual = PIGLIT_GL_VISUAL_DOUBLE | PIGLIT_GL_VISUAL_RGBA; +PIGLIT_GL_TEST_CONFIG_END + +const char *vs_src = + #version 150 \n + in vec4 piglit_vertex; \n + out vec4 vertex_to_gs; \n + void main()\n + { \n + vertex_to_gs = piglit_vertex;\n + } \n; + +const char *gs_src = + #version 150 \n + layout(triangles) in; \n + layout(triangle_strip, max_vertices = 3) out; \n + in vec4 vertex_to_gs[3];
[Piglit] [PATCH 3/6] ARB_pipeline_statistics_query (clip): basic test
Signed-off-by: Ben Widawsky b...@bwidawsk.net --- .../spec/arb_pipeline_statistics/CMakeLists.gl.txt | 2 + .../arb_pipeline_statistics/pipeline_stats_clip.c | 126 + 2 files changed, 128 insertions(+) create mode 100644 tests/spec/arb_pipeline_statistics/pipeline_stats_clip.c diff --git a/tests/spec/arb_pipeline_statistics/CMakeLists.gl.txt b/tests/spec/arb_pipeline_statistics/CMakeLists.gl.txt index d26f588..f9726e0 100644 --- a/tests/spec/arb_pipeline_statistics/CMakeLists.gl.txt +++ b/tests/spec/arb_pipeline_statistics/CMakeLists.gl.txt @@ -20,5 +20,7 @@ piglit_add_executable (arb_pipeline_stats_vert pipeline_stats_vert.c) target_link_libraries (arb_pipeline_stats_vert pipestat_help) piglit_add_executable (arb_pipeline_stats_vert_adj pipeline_stats_vert_adj.c) target_link_libraries (arb_pipeline_stats_vert_adj pipestat_help) +piglit_add_executable (arb_pipeline_stats_clip pipeline_stats_clip.c) +target_link_libraries (arb_pipeline_stats_clip pipestat_help) # vim: ft=cmake diff --git a/tests/spec/arb_pipeline_statistics/pipeline_stats_clip.c b/tests/spec/arb_pipeline_statistics/pipeline_stats_clip.c new file mode 100644 index 000..904b52b --- /dev/null +++ b/tests/spec/arb_pipeline_statistics/pipeline_stats_clip.c @@ -0,0 +1,126 @@ +/* + * Copyright © 2014 Intel Corporation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the Software), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED AS IS, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + * IN THE SOFTWARE. + */ + +/** \file pipeline_stats_clip.c + * + * This test verifies that the clipper related tokens of + * ARB_pipeline_statistics_query() work as expected. I believe these values + * are safe to use on all hardware but I am not certain. + * + * As with the vertex information, there seems to be a clause which allows + * implementations to make non-deterministic values (13.5 quoted below). + * + * 13.5 (the chicken clause) + * + * Implementations are allowed to pass incoming primitives unchanged and to + * output multiple primitives for an incoming primitive due to implementation + * dependent reasons as long as the results of rendering otherwise remain + * unchanged. + * + * 13.5.2 + * When BeginQuery is called with a target of CLIPPING_INPUT_PRIMITIVES_ARB, + * the clipping input primitives count maintained by the GL is set to zero. + * When a clipping input primitives query is active, the counter is + * incremented every time a primitive reaches the primitive clipping stage + * (see section 13.5). + * + * When BeginQuery is called with a target of CLIPPING_OUTPUT_PRIMITIVES_ARB, + * the clipping output primitives count maintained by the GL is set to zero. + * When a clipping output primitives query is active, the counter is + * incremented every time a primitive passes the primitive clipping stage. + * The actual number of primitives output by the primitive clipping stage for + * a particular input primitive is implementation dependent (see section 13.5) + * but must satisfy the following conditions. + * + * (Chicken clause 2) + * If RASTERIZER_DISCARD is enabled, implementations are allowed to + * discard primitives right after the optional transform feedback state + * (see Section 14.1). As a result, if RASTERIZER_DISCARD is enabled, + * the clipping input and output primitives count may not be + * incremented. + * + * To me, this makes it sound like this is impossible to test RASTERIZER_DISCARD + * reliably, so I won't bother. + */ + +#include piglit-util-gl.h +#include pipestat_help.h + +PIGLIT_GL_TEST_CONFIG_BEGIN + config.supports_gl_compat_version = 30; + config.window_visual = PIGLIT_GL_VISUAL_DOUBLE | PIGLIT_GL_VISUAL_RGBA; +PIGLIT_GL_TEST_CONFIG_END + +static const char *vs_src = + #version 110 \n + \n + void main()\n + { \n + gl_Position = gl_Vertex;\n + } \n; + +static struct
[Piglit] [PATCH 1/6] ARB_pipeline_statistics_query (vertex): basic test
Add very rudimentary tests for the 3 vertex related queries in ARB_pipeline_statistics_query. This can be accomplished easily with 1 shader, and 1 draw call - and is sort of required to work before testing the other stages. The library introduced here will be reused on other tests. Note about the library: I attempted to use the existing piglit_add_library, however I was getting cmake warnings (cmake --help-policy CMP0038). Since the library won't grow large, I simply went with a static library using standard CMAKE directives. Signed-off-by: Ben Widawsky b...@bwidawsk.net --- tests/spec/CMakeLists.txt | 1 + .../spec/arb_pipeline_statistics/CMakeLists.gl.txt | 22 tests/spec/arb_pipeline_statistics/CMakeLists.txt | 1 + .../arb_pipeline_statistics/pipeline_stats_vert.c | 132 + tests/spec/arb_pipeline_statistics/pipestat_help.c | 82 + tests/spec/arb_pipeline_statistics/pipestat_help.h | 29 + 6 files changed, 267 insertions(+) create mode 100644 tests/spec/arb_pipeline_statistics/CMakeLists.gl.txt create mode 100644 tests/spec/arb_pipeline_statistics/CMakeLists.txt create mode 100644 tests/spec/arb_pipeline_statistics/pipeline_stats_vert.c create mode 100644 tests/spec/arb_pipeline_statistics/pipestat_help.c create mode 100644 tests/spec/arb_pipeline_statistics/pipestat_help.h diff --git a/tests/spec/CMakeLists.txt b/tests/spec/CMakeLists.txt index b2da115..c68e630 100644 --- a/tests/spec/CMakeLists.txt +++ b/tests/spec/CMakeLists.txt @@ -112,3 +112,4 @@ add_subdirectory (ext_image_dma_buf_import) add_subdirectory (arb_blend_func_extended) add_subdirectory (ext_unpack_subimage) add_subdirectory (arb_vertex_array_object) +add_subdirectory (arb_pipeline_statistics) diff --git a/tests/spec/arb_pipeline_statistics/CMakeLists.gl.txt b/tests/spec/arb_pipeline_statistics/CMakeLists.gl.txt new file mode 100644 index 000..bec5918 --- /dev/null +++ b/tests/spec/arb_pipeline_statistics/CMakeLists.gl.txt @@ -0,0 +1,22 @@ +include_directories( +${GLEXT_INCLUDE_DIR} +${OPENGL_INCLUDE_PATH} +) + +link_libraries ( +piglitutil_${piglit_target_api} +${OPENGL_gl_LIBRARY} +) + +# Display stuff in the tests +#add_definitions (-DDISPLAY) + +# Don't bother with the piglit helper functions since we just need a simple +# static link that won't be installed. (We'll actually anger newer cmake if we +# use piglit helpers). +add_library (pipestat_help STATIC pipestat_help.c) + +piglit_add_executable (arb_pipeline_stats_vert pipeline_stats_vert.c) +target_link_libraries (arb_pipeline_stats_vert pipestat_help) + +# vim: ft=cmake diff --git a/tests/spec/arb_pipeline_statistics/CMakeLists.txt b/tests/spec/arb_pipeline_statistics/CMakeLists.txt new file mode 100644 index 000..144a306 --- /dev/null +++ b/tests/spec/arb_pipeline_statistics/CMakeLists.txt @@ -0,0 +1 @@ +piglit_include_target_api() diff --git a/tests/spec/arb_pipeline_statistics/pipeline_stats_vert.c b/tests/spec/arb_pipeline_statistics/pipeline_stats_vert.c new file mode 100644 index 000..7072b4e --- /dev/null +++ b/tests/spec/arb_pipeline_statistics/pipeline_stats_vert.c @@ -0,0 +1,132 @@ +/* + * Copyright © 2014 Intel Corporation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the Software), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED AS IS, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + * IN THE SOFTWARE. + */ + +/** \file pipeline_stats_vert.c + * + * This test verifies that the vertex shader related tokens of + * ARB_pipeline_statistics_query() work as expected. OpenGL 4.4 Specification, + * Core Profile. + * + * Section 11.1.3 as quoted below makes it sound like we can't actually + * reliably count on any of these values. Consider that information when + * investigating failures. + * + * 10.1 + * When BeginQuery is called with a target of VERTICES_SUBMITTED_ARB, the + * submitted vertices count maintained by the GL is set to zero. When a + * vertices submitted query is active, the submitted vertices count is + *
Re: [Piglit] [PATCH 6/6] arb_pipeline_statistics: add some basic tests
On Monday, November 17, 2014 04:00:25 PM Ben Widawsky wrote: Signed-off-by: Ben Widawsky b...@bwidawsk.net --- tests/all.py | 13 + 1 file changed, 13 insertions(+) diff --git a/tests/all.py b/tests/all.py index f2c5c1f..796cc0f 100644 --- a/tests/all.py +++ b/tests/all.py @@ -3647,6 +3647,19 @@ import_glsl_parser_tests(spec['ARB_compute_shader'], ['compiler']) arb_compute_shader['built-in constants'] = PiglitGLTest('built-in-constants ' + os.path.join(testsDir, 'spec/arb_compute_shader/minimum-maximums.txt'), run_concurrent=True) +arb_pipeline_statistics = {} +spec['ARB_pipeline_statistics'] = arb_pipeline_statistics +arb_pipeline_statistics['arb_pipeline_stats_vs_basic_stats'] = \ + PiglitGLTest('arb_pipeline_stats_vert', run_concurrent=True) +arb_pipeline_statistics['arb_pipeline_stats_vs_adjacent_stats'] = \ + PiglitGLTest('arb_pipeline_stats_vert_adj', run_concurrent=True) +arb_pipeline_statistics['arb_pipeline_stats_gs_basic_stats'] = \ + PiglitGLTest('arb_pipeline_stats_geom', run_concurrent=True) +arb_pipeline_statistics['arb_pipeline_stats_clip_basic_stats'] = \ + PiglitGLTest('arb_pipeline_stats_clip', run_concurrent=True) +arb_pipeline_statistics['arb_pipeline_stats_fs_basic_stats'] = \ + PiglitGLTest('arb_pipeline_stats_frag', run_concurrent=True) + Two comments for you: 1) we generally add tests to all.py in the same commit we add the test 2) no tabs in the python code, please use 4 tab indent. # group glslparsertest -- glslparsertest = {} # Add all shader source files in the directories below. -- 2.1.3 ___ Piglit mailing list Piglit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/piglit signature.asc Description: This is a digitally signed message part. ___ Piglit mailing list Piglit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/piglit
Re: [Piglit] [PATCH] Remove spec.EXT_timer_query.time-elapsed from quick.py
Dylan Baker baker.dyla...@gmail.com writes: I think I've seen all of the EXT_timer_query and all of the ARB_timer_query fail sporadicly. Should we just disable all of those groups? You are right, I'll add that one as well and re-send the patch. ___ Piglit mailing list Piglit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/piglit
Re: [Piglit] [PATCH 6/6] arb_pipeline_statistics: add some basic tests
On Mon, Nov 17, 2014 at 7:12 PM, Dylan Baker baker.dyla...@gmail.com wrote: On Monday, November 17, 2014 04:00:25 PM Ben Widawsky wrote: Signed-off-by: Ben Widawsky b...@bwidawsk.net --- tests/all.py | 13 + 1 file changed, 13 insertions(+) diff --git a/tests/all.py b/tests/all.py index f2c5c1f..796cc0f 100644 --- a/tests/all.py +++ b/tests/all.py @@ -3647,6 +3647,19 @@ import_glsl_parser_tests(spec['ARB_compute_shader'], ['compiler']) arb_compute_shader['built-in constants'] = PiglitGLTest('built-in-constants ' + os.path.join(testsDir, 'spec/arb_compute_shader/minimum-maximums.txt'), run_concurrent=True) +arb_pipeline_statistics = {} +spec['ARB_pipeline_statistics'] = arb_pipeline_statistics +arb_pipeline_statistics['arb_pipeline_stats_vs_basic_stats'] = \ + PiglitGLTest('arb_pipeline_stats_vert', run_concurrent=True) +arb_pipeline_statistics['arb_pipeline_stats_vs_adjacent_stats'] = \ + PiglitGLTest('arb_pipeline_stats_vert_adj', run_concurrent=True) +arb_pipeline_statistics['arb_pipeline_stats_gs_basic_stats'] = \ + PiglitGLTest('arb_pipeline_stats_geom', run_concurrent=True) +arb_pipeline_statistics['arb_pipeline_stats_clip_basic_stats'] = \ + PiglitGLTest('arb_pipeline_stats_clip', run_concurrent=True) +arb_pipeline_statistics['arb_pipeline_stats_fs_basic_stats'] = \ + PiglitGLTest('arb_pipeline_stats_frag', run_concurrent=True) + Two comments for you: 1) we generally add tests to all.py in the same commit we add the test 2) no tabs in the python code, please use 4 tab indent. 4-space is probably better. 32 spaces feels excessive :) # group glslparsertest -- glslparsertest = {} # Add all shader source files in the directories below. -- 2.1.3 ___ Piglit mailing list Piglit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/piglit ___ Piglit mailing list Piglit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/piglit ___ Piglit mailing list Piglit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/piglit
Re: [Piglit] [PATCH] Add #version 300 es by glShaderSource when the shader is based on GLSL ES30, and the shader it self do not contained the token #version 300 es
On Monday, November 17, 2014 08:41:20 AM Wang, Shuo wrote: Because the token #version 300 es is necessary with the current infrastructure during a GLSL ES30 shader test is added. This patch is used to make it more automation, and the infrastructure can now adding #version 300 es itself, when the GLSL ES30 shader do not include the token. Signed-off-by: Wang Shuo shuo.w...@intel.com --- tests/glslparsertest/glslparsertest.c | 26 +++--- 1 file changed, 19 insertions(+), 7 deletions(-) For what it's worth, I don't like this plan. Currently, glslparsertest doesn't add a #version for you implicitly - you have to write it as the first line of the shader. I like this, because there's no magic - you write what you mean. The .vert or .frag file contains a complete shader that could be parsed by any tools. All of our tests already specify #version 300 es explicitly. shader_runner does implicitly add a #version for you, but glslparsertest never has. --Ken signature.asc Description: This is a digitally signed message part. ___ Piglit mailing list Piglit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/piglit
Re: [Piglit] [PATCH 6/6] arb_pipeline_statistics: add some basic tests
On Mon, Nov 17, 2014 at 04:57:38PM -0800, Ben Widawsky wrote: On Mon, Nov 17, 2014 at 04:12:03PM -0800, Dylan Baker wrote: On Monday, November 17, 2014 04:00:25 PM Ben Widawsky wrote: Signed-off-by: Ben Widawsky b...@bwidawsk.net --- tests/all.py | 13 + 1 file changed, 13 insertions(+) diff --git a/tests/all.py b/tests/all.py index f2c5c1f..796cc0f 100644 --- a/tests/all.py +++ b/tests/all.py @@ -3647,6 +3647,19 @@ import_glsl_parser_tests(spec['ARB_compute_shader'], ['compiler']) arb_compute_shader['built-in constants'] = PiglitGLTest('built-in-constants ' + os.path.join(testsDir, 'spec/arb_compute_shader/minimum-maximums.txt'), run_concurrent=True) +arb_pipeline_statistics = {} +spec['ARB_pipeline_statistics'] = arb_pipeline_statistics +arb_pipeline_statistics['arb_pipeline_stats_vs_basic_stats'] = \ + PiglitGLTest('arb_pipeline_stats_vert', run_concurrent=True) +arb_pipeline_statistics['arb_pipeline_stats_vs_adjacent_stats'] = \ + PiglitGLTest('arb_pipeline_stats_vert_adj', run_concurrent=True) +arb_pipeline_statistics['arb_pipeline_stats_gs_basic_stats'] = \ + PiglitGLTest('arb_pipeline_stats_geom', run_concurrent=True) +arb_pipeline_statistics['arb_pipeline_stats_clip_basic_stats'] = \ + PiglitGLTest('arb_pipeline_stats_clip', run_concurrent=True) +arb_pipeline_statistics['arb_pipeline_stats_fs_basic_stats'] = \ + PiglitGLTest('arb_pipeline_stats_frag', run_concurrent=True) + Two comments for you: 1) we generally add tests to all.py in the same commit we add the test 2) no tabs in the python code, please use 4 tab indent. You're right. You should modify the HACKING file to specify this. I essentially followed that, and this file was kind of a mess already without wrapping. I'll fix that before pushing. Blarg. It's there a few paragraphs below. -- Ben Widawsky, Intel Open Source Technology Center ___ Piglit mailing list Piglit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/piglit