[Piglit] [PATCH 1/3] arb_es3_compatibility: add a test for PRIMITIVE_RESTART_FIXED_INDEX corner case

Marek Olšák maraeo at gmail.com
Thu Jan 15 09:34:52 PST 2015


Thanks. I've committed a fix.

Marek

On Thu, Jan 15, 2015 at 5:50 PM, Jose Fonseca <jfonseca at vmware.com> wrote:
> On 04/01/15 15:48, Marek Olšák wrote:
>>
>> From: Marek Olšák <marek.olsak at amd.com>
>>
>> ---
>>   tests/all.py                                       |   1 +
>>   tests/spec/CMakeLists.txt                          |   1 +
>>   tests/spec/arb_es3_compatibility/CMakeLists.gl.txt |  12 +++
>>   tests/spec/arb_es3_compatibility/CMakeLists.txt    |   1 +
>>   .../es3-drawarrays-primrestart-fixedindex.c        | 106
>> +++++++++++++++++++++
>>   5 files changed, 121 insertions(+)
>>   create mode 100644 tests/spec/arb_es3_compatibility/CMakeLists.gl.txt
>>   create mode 100644 tests/spec/arb_es3_compatibility/CMakeLists.txt
>>   create mode 100644
>> tests/spec/arb_es3_compatibility/es3-drawarrays-primrestart-fixedindex.c
>>
>> diff --git a/tests/all.py b/tests/all.py
>> index 6b745e1..3e40fc4 100644
>> --- a/tests/all.py
>> +++ b/tests/all.py
>> @@ -4278,6 +4278,7 @@ for tex_format in ('rgb8', 'srgb8', 'rgba8',
>> 'srgb8-alpha8', 'r11', 'rg11', 'rgb
>>           test_name = ' ' .join(['oes_compressed_etc2_texture-miptree',
>> tex_format, context])
>>           executable = '{0}'.format(test_name)
>>           arb_es3_compatibility[test_name] = PiglitGLTest(executable,
>> run_concurrent=True)
>> +add_concurrent_test(arb_es3_compatibility,
>> 'es3-drawarrays-primrestart-fixedindex')
>>
>>   add_shader_test_dir(spec, os.path.join(generatedTestDir, 'spec'),
>>                       recursive=True)
>> diff --git a/tests/spec/CMakeLists.txt b/tests/spec/CMakeLists.txt
>> index dfd822b..ee280fa 100644
>> --- a/tests/spec/CMakeLists.txt
>> +++ b/tests/spec/CMakeLists.txt
>> @@ -12,6 +12,7 @@ add_subdirectory (arb_depth_clamp)
>>   add_subdirectory (arb_draw_indirect)
>>   add_subdirectory (arb_draw_instanced)
>>   add_subdirectory (arb_es2_compatibility)
>> +add_subdirectory (arb_es3_compatibility)
>>   add_subdirectory (arb_explicit_attrib_location)
>>   add_subdirectory (arb_explicit_uniform_location)
>>   add_subdirectory (arb_framebuffer_object)
>> diff --git a/tests/spec/arb_es3_compatibility/CMakeLists.gl.txt
>> b/tests/spec/arb_es3_compatibility/CMakeLists.gl.txt
>> new file mode 100644
>> index 0000000..22df5af
>> --- /dev/null
>> +++ b/tests/spec/arb_es3_compatibility/CMakeLists.gl.txt
>> @@ -0,0 +1,12 @@
>> +include_directories(
>> +       ${GLEXT_INCLUDE_DIR}
>> +       ${OPENGL_INCLUDE_PATH}
>> +)
>> +
>> +link_libraries (
>> +       piglitutil_${piglit_target_api}
>> +       ${OPENGL_gl_LIBRARY}
>> +       ${OPENGL_glu_LIBRARY}
>> +)
>> +
>> +piglit_add_executable (es3-drawarrays-primrestart-fixedindex
>> es3-drawarrays-primrestart-fixedindex.c)
>> diff --git a/tests/spec/arb_es3_compatibility/CMakeLists.txt
>> b/tests/spec/arb_es3_compatibility/CMakeLists.txt
>> new file mode 100644
>> index 0000000..144a306
>> --- /dev/null
>> +++ b/tests/spec/arb_es3_compatibility/CMakeLists.txt
>> @@ -0,0 +1 @@
>> +piglit_include_target_api()
>> diff --git
>> a/tests/spec/arb_es3_compatibility/es3-drawarrays-primrestart-fixedindex.c
>> b/tests/spec/arb_es3_compatibility/es3-drawarrays-primrestart-fixedindex.c
>> new file mode 100644
>> index 0000000..e967676
>> --- /dev/null
>> +++
>> b/tests/spec/arb_es3_compatibility/es3-drawarrays-primrestart-fixedindex.c
>> @@ -0,0 +1,106 @@
>> +/*
>> + * Copyright © 2014 Advanced Micro Devices, Inc.
>> + *
>> + * 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.
>> + */
>> +
>> +/**
>> + * Test if primitive restart is disabled for glDrawArrays while both
>> + * PRIMITIVE_RESTART and PRIMITIVE_RESTART_FIXED_INDEX are enabled.
>> + */
>> +
>> +#include "piglit-util-gl.h"
>> +
>> +PIGLIT_GL_TEST_CONFIG_BEGIN
>> +       config.supports_gl_compat_version = 33;
>> +       config.supports_gl_core_version = 33;
>> +       config.window_visual = PIGLIT_GL_VISUAL_RGBA |
>> PIGLIT_GL_VISUAL_DOUBLE;
>> +PIGLIT_GL_TEST_CONFIG_END
>> +
>> +static const GLchar *vstext =
>> +       "#version 330\n"
>> +       "attribute vec2 piglit_vertex;\n"
>> +       "attribute int piglit_texcoord;\n"
>> +       "out vec4 color;\n"
>> +       "void main()\n"
>> +       "{\n"
>> +       "       gl_Position = vec4(piglit_vertex, 0.0, 1.0);\n"
>> +       "       color = vec4(0.0, 1.0, 0.0, 1.0);\n"
>> +       "} \n";
>> +
>> +static const char *fstext =
>> +       "#version 330\n"
>> +       "in vec4 color;\n"
>> +       "void main() {\n"
>> +       "       gl_FragColor = color;\n"
>> +       "}\n";
>> +
>> +static GLint prog;
>> +
>> +enum piglit_result
>> +piglit_display(void)
>> +{
>> +       static const float green[] = {0, 1, 0, 1};
>> +       enum piglit_result result;
>> +
>> +       glClear(GL_COLOR_BUFFER_BIT);
>> +       glDrawArrays(GL_TRIANGLES, 0, 7);
>> +
>> +       result = piglit_probe_rect_rgba(0, 0, piglit_width, piglit_height,
>> +                                       green)
>> +               ? PIGLIT_PASS : PIGLIT_FAIL;
>> +
>> +       piglit_present_results();
>> +       return result;
>> +}
>> +
>> +void
>> +piglit_init(int argc, char **argv)
>> +{
>> +       static const float pos[] = {
>> +               -1, -1,
>> +               -1,  1,
>> +                1, -1,
>> +                1,  1,
>> +                1, -1,
>> +               -1,  1,
>> +               -1,  1 /* should be dropped */
>> +       };
>> +       GLuint vao, buf;
>> +
>> +       piglit_require_gl_version(33);
>> +       piglit_require_extension("GL_ARB_ES3_compatibility");
>> +       prog = piglit_build_simple_program(vstext, fstext);
>> +       glUseProgram(prog);
>> +
>> +       glGenVertexArrays(1, &vao);
>> +       glBindVertexArray(vao);
>> +
>> +       glGenBuffers(1, &buf);
>> +       glBindBuffer(GL_ARRAY_BUFFER, buf);
>> +       glBufferData(GL_ARRAY_BUFFER, sizeof(pos), pos, GL_STATIC_DRAW);
>> +
>> +       glEnableVertexAttribArray(PIGLIT_ATTRIB_POS);
>> +       glVertexAttribPointer(PIGLIT_ATTRIB_POS, 2, GL_FLOAT, 0, 0, NULL);
>> +
>> +       glEnable(GL_PRIMITIVE_RESTART_FIXED_INDEX);
>> +       glEnable(GL_PRIMITIVE_RESTART);
>> +       glPrimitiveRestartIndex(3);
>> +}
>>
>
>
> Marek,
>
> I'm getting an assertion with this:
>
> /var/lib/hudson/tools/lin64/piglit-ci/bin/piglit run -v -p glx -b junit
> tests/custom.py results/custom.results
> Traceback (most recent call last):
>   File "/var/lib/hudson/tools/lin64/piglit-ci/bin/piglit", line 148, in
> <module>
>     main()
>   File "/var/lib/hudson/tools/lin64/piglit-ci/bin/piglit", line 143, in main
>     returncode = parsed.func(args)
>   File
> "/var/lib/hudson/tools/lin64/piglit-ci/lib/piglit/framework/programs/run.py",
> line 284, in run
>     profile = framework.profile.merge_test_profiles(args.test_profile)
>   File
> "/var/lib/hudson/tools/lin64/piglit-ci/lib/piglit/framework/profile.py",
> line 305, in merge_test_profiles
>     profile = load_test_profile(profiles.pop())
>   File
> "/var/lib/hudson/tools/lin64/piglit-ci/lib/piglit/framework/profile.py",
> line 285, in load_test_profile
>     os.path.splitext(os.path.basename(filename))[0]))
>   File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module
>     __import__(name)
>   File "/var/lib/hudson/tools/lin64/piglit-ci/lib/piglit/tests/custom.py",
> line 7, in <module>
>     execfile(os.path.dirname(__file__) + '/gpu.py')
>   File "/var/lib/hudson/tools/lin64/piglit-ci/lib/piglit/tests/gpu.py", line
> 5, in <module>
>     from tests.quick import profile
>   File "/var/lib/hudson/tools/lin64/piglit-ci/lib/piglit/tests/quick.py",
> line 4, in <module>
>     from tests.all import profile
>   File "/var/lib/hudson/tools/lin64/piglit-ci/lib/piglit/tests/all.py", line
> 4371, in <module>
>     add_concurrent_test(arb_es3_compatibility, 'es3-primrestart-fixedindex')
>   File "/var/lib/hudson/tools/lin64/piglit-ci/lib/piglit/tests/all.py", line
> 46, in add_concurrent_test
>     add_plain_test(group, args, run_concurrent=True)
>   File "/var/lib/hudson/tools/lin64/piglit-ci/lib/piglit/tests/all.py", line
> 43, in add_plain_test
>     group[gname] = PiglitGLTest(args, **kwargs)
>   File
> "/var/lib/hudson/tools/lin64/piglit-ci/lib/piglit/framework/test/piglit_test.py",
> line 99, in __init__
>     super(PiglitGLTest, self).__init__(command, **kwargs)
>   File
> "/var/lib/hudson/tools/lin64/piglit-ci/lib/piglit/framework/test/piglit_test.py",
> line 57, in __init__
>     super(PiglitBaseTest, self).__init__(*args, **kwargs)
>   File
> "/var/lib/hudson/tools/lin64/piglit-ci/lib/piglit/framework/test/base.py",
> line 125, in __init__
>     assert isinstance(command, list), command
> AssertionError: es3-primrestart-fixedindex
>
>
>
> I think you need to modify the  add_concurrent_test() calls to pass a list,
> or something like that.
>
>
> Jose
>


More information about the Piglit mailing list