<div dir="ltr">On 5 September 2013 18:18, Ian Romanick <span dir="ltr"><<a href="mailto:idr@freedesktop.org" target="_blank">idr@freedesktop.org</a>></span> wrote:<br><div class="gmail_extra"><div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">From: Ian Romanick <<a href="mailto:ian.d.romanick@intel.com">ian.d.romanick@intel.com</a>><br>
<br>
The test methodology is:<br>
<br>
    - Bind an XFB object, start XFB, draw something, pause XFB.<br>
<br>
    - Bind a different XFB object, start XFB, draw someting, pause XFB.<br>
<br>
    - Rebind the first XFB object, resume XFB, draw something, end XFB.<br>
<br>
    - Rebind the second XFB object, resume XFB, draw something, end XFB.<br>
<br>
    - Verify that all the expected data has landed in the expected<br>
      places.<br>
<br>
NVIDIA (304.64 on GTX 260) passes this test.  AMD has not been tested.<br>
<br>
Mesa (i965_dri.so) fails the GLES3 version of the test, and, when<br>
GL_ARB_transform_feedback2 is force-enabled, it fails the desktop GL<br>
version as well.<br>
<br>
Signed-off-by: Ian Romanick <<a href="mailto:ian.d.romanick@intel.com">ian.d.romanick@intel.com</a>><br>
Cc: Kenneth Graunke <<a href="mailto:kenneth@whitecape.org">kenneth@whitecape.org</a>><br>
---<br>
 tests/all.tests                                    |   2 +<br>
 .../spec/arb_transform_feedback2/CMakeLists.gl.txt |   1 +<br>
 .../arb_transform_feedback2/CMakeLists.gles3.txt   |  13 +<br>
 .../change-objects-while-paused.c                  | 303 +++++++++++++++++++++<br>
 4 files changed, 319 insertions(+)<br>
 create mode 100644 tests/spec/arb_transform_feedback2/CMakeLists.gles3.txt<br>
 create mode 100644 tests/spec/arb_transform_feedback2/change-objects-while-paused.c<br>
<br>
diff --git a/tests/all.tests b/tests/all.tests<br>
index b68f187..4a19fdc 100644<br>
--- a/tests/all.tests<br>
+++ b/tests/all.tests<br>
@@ -2242,6 +2242,8 @@ ext_transform_feedback['geometry-shaders-basic'] = concurrent_test(<br>
<br>
 arb_transform_feedback2 = Group()<br>
 spec['ARB_transform_feedback2'] = arb_transform_feedback2<br>
+arb_transform_feedback2['Change objects while paused'] = PlainExecTest(['arb_transform_feedback2-change-objects-while-paused', '-auto'])<br>
+arb_transform_feedback2['Change objects while paused (GLES3)'] = PlainExecTest(['arb_transform_feedback2-change-objects-while-paused_gles3', '-auto'])<br>
 arb_transform_feedback2['draw-auto'] = PlainExecTest(['arb_transform_feedback2-draw-auto', '-auto'])<br>
 arb_transform_feedback2['istranformfeedback'] = PlainExecTest(['arb_transform_feedback2-istransformfeedback', '-auto'])<br>
 arb_transform_feedback2['glGenTransformFeedbacks names only'] = concurrent_test('arb_transform_feedback2-gen-names-only')<br>
diff --git a/tests/spec/arb_transform_feedback2/CMakeLists.gl.txt b/tests/spec/arb_transform_feedback2/CMakeLists.gl.txt<br>
index fbd716b..3d74f91 100644<br>
--- a/tests/spec/arb_transform_feedback2/CMakeLists.gl.txt<br>
+++ b/tests/spec/arb_transform_feedback2/CMakeLists.gl.txt<br>
@@ -12,6 +12,7 @@ link_libraries (<br>
 piglit_add_executable (arb_transform_feedback2-api-errors api-errors.c)<br>
 piglit_add_executable (arb_transform_feedback2-api-queries api-queries.c)<br>
 piglit_add_executable (arb_transform_feedback2-cannot-bind-when-active cannot-bind-when-active.c)<br>
+piglit_add_executable (arb_transform_feedback2-change-objects-while-paused change-objects-while-paused.c)<br>
 piglit_add_executable (arb_transform_feedback2-draw-auto draw-auto.c)<br>
 piglit_add_executable (arb_transform_feedback2-gen-names-only gen-names-only.c)<br>
 piglit_add_executable (arb_transform_feedback2-istransformfeedback istransformfeedback.c)<br>
diff --git a/tests/spec/arb_transform_feedback2/CMakeLists.gles3.txt b/tests/spec/arb_transform_feedback2/CMakeLists.gles3.txt<br>
new file mode 100644<br>
index 0000000..cad25bd<br>
--- /dev/null<br>
+++ b/tests/spec/arb_transform_feedback2/CMakeLists.gles3.txt<br>
@@ -0,0 +1,13 @@<br>
+include_directories(<br>
+       ${GLEXT_INCLUDE_DIR}<br>
+       ${OPENGL_INCLUDE_PATH}<br>
+)<br>
+<br>
+link_libraries (<br>
+       piglitutil_${piglit_target_api}<br>
+       ${OPENGL_gles2_LIBRARY}<br>
+)<br>
+<br>
+piglit_add_executable (arb_transform_feedback2-change-objects-while-paused_${piglit_target_api} change-objects-while-paused.c)<br>
+<br>
+# vim: ft=cmake:<br>
diff --git a/tests/spec/arb_transform_feedback2/change-objects-while-paused.c b/tests/spec/arb_transform_feedback2/change-objects-while-paused.c<br>
new file mode 100644<br>
index 0000000..2d759de<br>
--- /dev/null<br>
+++ b/tests/spec/arb_transform_feedback2/change-objects-while-paused.c<br>
@@ -0,0 +1,303 @@<br>
+/*<br>
+ * Copyright © 2013 Intel Corporation<br>
+ *<br>
+ * Permission is hereby granted, free of charge, to any person obtaining a<br>
+ * copy of this software and associated documentation files (the "Software"),<br>
+ * to deal in the Software without restriction, including without limitation<br>
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,<br>
+ * and/or sell copies of the Software, and to permit persons to whom the<br>
+ * Software is furnished to do so, subject to the following conditions:<br>
+ *<br>
+ * The above copyright notice and this permission notice (including the next<br>
+ * paragraph) shall be included in all copies or substantial portions of the<br>
+ * Software.<br>
+ *<br>
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR<br>
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,<br>
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL<br>
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER<br>
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING<br>
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS<br>
+ * IN THE SOFTWARE.<br>
+ */<br>
+<br>
+/**<br>
+ * \file change-objects-while-paused.c<br>
+ * Verify behavior of changing XFB objects while XFB is paused.<br>
+ *<br>
+ * The test methodology is:<br>
+ *<br>
+ * - Bind an XFB object, start XFB, draw something, pause XFB.<br>
+ *<br>
+ * - Bind a different XFB object, start XFB, draw someting, pause XFB.<br>
+ *<br>
+ * - Rebind the first XFB object, resume XFB, draw something, end XFB.<br>
+ *<br>
+ * - Rebind the second XFB object, resume XFB, draw something, end XFB.<br>
+ *<br>
+ * - Verify that all the expected data has landed in the expected places.<br>
+ */<br>
+<br>
+#include "piglit-util-gl-common.h"<br>
+<br>
+PIGLIT_GL_TEST_CONFIG_BEGIN<br>
+<br>
+#ifdef PIGLIT_USE_OPENGL<br>
+       config.supports_gl_compat_version = 10;<br></blockquote><div><br></div><div>I don't see anything in this test that relies on compatibility functionality.  Can we add:<br><br></div><div>config.supports_gl_core_version = 31;<br>
<br></div><div>With that changed, patch is:<br><br>Reviwed-by: Paul Berry <<a href="mailto:stereotype441@gmail.com">stereotype441@gmail.com</a>><br></div></div></div></div>