[Piglit] [PATCH] arb_transform_feedback2: Check switching active XFB objects while paused

Ian Romanick idr at freedesktop.org
Tue Oct 1 11:34:40 PDT 2013


On 09/09/2013 11:16 AM, Paul Berry wrote:
> On 5 September 2013 18:18, Ian Romanick <idr at freedesktop.org
> <mailto:idr at freedesktop.org>> wrote:
> 
>     From: Ian Romanick <ian.d.romanick at intel.com
>     <mailto:ian.d.romanick at intel.com>>
> 
>     The test methodology is:
> 
>         - Bind an XFB object, start XFB, draw something, pause XFB.
> 
>         - Bind a different XFB object, start XFB, draw someting, pause XFB.
> 
>         - Rebind the first XFB object, resume XFB, draw something, end XFB.
> 
>         - Rebind the second XFB object, resume XFB, draw something, end XFB.
> 
>         - Verify that all the expected data has landed in the expected
>           places.
> 
>     NVIDIA (304.64 on GTX 260) passes this test.  AMD has not been tested.
> 
>     Mesa (i965_dri.so) fails the GLES3 version of the test, and, when
>     GL_ARB_transform_feedback2 is force-enabled, it fails the desktop GL
>     version as well.
> 
>     Signed-off-by: Ian Romanick <ian.d.romanick at intel.com
>     <mailto:ian.d.romanick at intel.com>>
>     Cc: Kenneth Graunke <kenneth at whitecape.org
>     <mailto:kenneth at whitecape.org>>
>     ---
>      tests/all.tests                                    |   2 +
>      .../spec/arb_transform_feedback2/CMakeLists.gl.txt |   1 +
>      .../arb_transform_feedback2/CMakeLists.gles3.txt   |  13 +
>      .../change-objects-while-paused.c                  | 303
>     +++++++++++++++++++++
>      4 files changed, 319 insertions(+)
>      create mode 100644
>     tests/spec/arb_transform_feedback2/CMakeLists.gles3.txt
>      create mode 100644
>     tests/spec/arb_transform_feedback2/change-objects-while-paused.c
> 
>     diff --git a/tests/all.tests b/tests/all.tests
>     index b68f187..4a19fdc 100644
>     --- a/tests/all.tests
>     +++ b/tests/all.tests
>     @@ -2242,6 +2242,8 @@
>     ext_transform_feedback['geometry-shaders-basic'] = concurrent_test(
> 
>      arb_transform_feedback2 = Group()
>      spec['ARB_transform_feedback2'] = arb_transform_feedback2
>     +arb_transform_feedback2['Change objects while paused'] =
>     PlainExecTest(['arb_transform_feedback2-change-objects-while-paused', '-auto'])
>     +arb_transform_feedback2['Change objects while paused (GLES3)'] =
>     PlainExecTest(['arb_transform_feedback2-change-objects-while-paused_gles3',
>     '-auto'])
>      arb_transform_feedback2['draw-auto'] =
>     PlainExecTest(['arb_transform_feedback2-draw-auto', '-auto'])
>      arb_transform_feedback2['istranformfeedback'] =
>     PlainExecTest(['arb_transform_feedback2-istransformfeedback', '-auto'])
>      arb_transform_feedback2['glGenTransformFeedbacks names only'] =
>     concurrent_test('arb_transform_feedback2-gen-names-only')
>     diff --git a/tests/spec/arb_transform_feedback2/CMakeLists.gl.txt
>     b/tests/spec/arb_transform_feedback2/CMakeLists.gl.txt
>     index fbd716b..3d74f91 100644
>     --- a/tests/spec/arb_transform_feedback2/CMakeLists.gl.txt
>     +++ b/tests/spec/arb_transform_feedback2/CMakeLists.gl.txt
>     @@ -12,6 +12,7 @@ link_libraries (
>      piglit_add_executable (arb_transform_feedback2-api-errors api-errors.c)
>      piglit_add_executable (arb_transform_feedback2-api-queries
>     api-queries.c)
>      piglit_add_executable
>     (arb_transform_feedback2-cannot-bind-when-active
>     cannot-bind-when-active.c)
>     +piglit_add_executable
>     (arb_transform_feedback2-change-objects-while-paused
>     change-objects-while-paused.c)
>      piglit_add_executable (arb_transform_feedback2-draw-auto draw-auto.c)
>      piglit_add_executable (arb_transform_feedback2-gen-names-only
>     gen-names-only.c)
>      piglit_add_executable (arb_transform_feedback2-istransformfeedback
>     istransformfeedback.c)
>     diff --git a/tests/spec/arb_transform_feedback2/CMakeLists.gles3.txt
>     b/tests/spec/arb_transform_feedback2/CMakeLists.gles3.txt
>     new file mode 100644
>     index 0000000..cad25bd
>     --- /dev/null
>     +++ b/tests/spec/arb_transform_feedback2/CMakeLists.gles3.txt
>     @@ -0,0 +1,13 @@
>     +include_directories(
>     +       ${GLEXT_INCLUDE_DIR}
>     +       ${OPENGL_INCLUDE_PATH}
>     +)
>     +
>     +link_libraries (
>     +       piglitutil_${piglit_target_api}
>     +       ${OPENGL_gles2_LIBRARY}
>     +)
>     +
>     +piglit_add_executable
>     (arb_transform_feedback2-change-objects-while-paused_${piglit_target_api}
>     change-objects-while-paused.c)
>     +
>     +# vim: ft=cmake:
>     diff --git
>     a/tests/spec/arb_transform_feedback2/change-objects-while-paused.c
>     b/tests/spec/arb_transform_feedback2/change-objects-while-paused.c
>     new file mode 100644
>     index 0000000..2d759de
>     --- /dev/null
>     +++ b/tests/spec/arb_transform_feedback2/change-objects-while-paused.c
>     @@ -0,0 +1,303 @@
>     +/*
>     + * Copyright © 2013 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 change-objects-while-paused.c
>     + * Verify behavior of changing XFB objects while XFB is paused.
>     + *
>     + * The test methodology is:
>     + *
>     + * - Bind an XFB object, start XFB, draw something, pause XFB.
>     + *
>     + * - Bind a different XFB object, start XFB, draw someting, pause XFB.
>     + *
>     + * - Rebind the first XFB object, resume XFB, draw something, end XFB.
>     + *
>     + * - Rebind the second XFB object, resume XFB, draw something, end XFB.
>     + *
>     + * - Verify that all the expected data has landed in the expected
>     places.
>     + */
>     +
>     +#include "piglit-util-gl-common.h"
>     +
>     +PIGLIT_GL_TEST_CONFIG_BEGIN
>     +
>     +#ifdef PIGLIT_USE_OPENGL
>     +       config.supports_gl_compat_version = 10;
> 
> 
> I don't see anything in this test that relies on compatibility
> functionality.  Can we add:
> 
> config.supports_gl_core_version = 31;

In addition to the supports_gl_compat_version or instead of?

I did that because several Gallium drivers enable this extension without
even OpenGL 3.0.  I wanted the test to be able to run on those drivers
as well.

> With that changed, patch is:
> 
> Reviwed-by: Paul Berry <stereotype441 at gmail.com
> <mailto:stereotype441 at gmail.com>>



More information about the Piglit mailing list