<div dir="ltr">On 6 September 2013 17:59, Matt Turner <span dir="ltr"><<a href="mailto:mattst88@gmail.com" target="_blank">mattst88@gmail.com</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">
---<br>
 tests/all.tests                                    |  6 ++++<br>
 .../execution/fs-mix-bvec4.shader_test             | 36 +++++++++++++++++++<br>
 .../execution/fs-mix-ivec4.shader_test             | 36 +++++++++++++++++++<br>
 .../execution/fs-mix-uvec4.shader_test             | 36 +++++++++++++++++++<br>
 .../execution/vs-mix-bvec4.shader_test             | 41 ++++++++++++++++++++++<br>
 .../execution/vs-mix-ivec4.shader_test             | 41 ++++++++++++++++++++++<br>
 .../execution/vs-mix-uvec4.shader_test             | 41 ++++++++++++++++++++++<br>
 7 files changed, 237 insertions(+)<br>
 create mode 100644 tests/spec/mesa_shader_integer_mix/execution/fs-mix-bvec4.shader_test<br>
 create mode 100644 tests/spec/mesa_shader_integer_mix/execution/fs-mix-ivec4.shader_test<br>
 create mode 100644 tests/spec/mesa_shader_integer_mix/execution/fs-mix-uvec4.shader_test<br>
 create mode 100644 tests/spec/mesa_shader_integer_mix/execution/vs-mix-bvec4.shader_test<br>
 create mode 100644 tests/spec/mesa_shader_integer_mix/execution/vs-mix-ivec4.shader_test<br>
 create mode 100644 tests/spec/mesa_shader_integer_mix/execution/vs-mix-uvec4.shader_test<br>
<br>
diff --git a/tests/all.tests b/tests/all.tests<br>
index 22c009c..d5b457b 100644<br>
--- a/tests/all.tests<br>
+++ b/tests/all.tests<br>
@@ -2344,6 +2344,12 @@ ext_fog_coord = Group()<br>
 spec['EXT_fog_coord'] = ext_fog_coord<br>
 add_plain_test(ext_fog_coord, 'ext_fog_coord-modes')<br>
<br>
+mesa_shader_integer_mix = Group()<br>
+spec['MESA_shader_integer_mix'] = mesa_shader_integer_mix<br>
+add_shader_test_dir(spec['MESA_shader_integer_mix'],<br>
+                   os.path.join(testsDir, 'spec', 'mesa_shader_integer_mix'),<br>
+                   recursive=True)<br>
+<br>
 nv_texture_barrier = Group()<br>
 spec['NV_texture_barrier'] = nv_texture_barrier<br>
 add_plain_test(nv_texture_barrier, 'blending-in-shader')<br>
diff --git a/tests/spec/mesa_shader_integer_mix/execution/fs-mix-bvec4.shader_test b/tests/spec/mesa_shader_integer_mix/execution/fs-mix-bvec4.shader_test<br>
new file mode 100644<br>
index 0000000..febe0ad<br>
--- /dev/null<br>
+++ b/tests/spec/mesa_shader_integer_mix/execution/fs-mix-bvec4.shader_test<br>
@@ -0,0 +1,36 @@<br>
+# From the MESA_shader_integer_mix spec:<br>
+#<br>
+#     Selects which vector each returned component comes<br>
+#     from. For a component of a that is false, the<br>
+#     corresponding component of x is returned. For a<br>
+#     component of a that is true, the corresponding<br>
+#     component of y is returned.<br>
+<br>
+[require]<br>
+GLSL >= 1.30<br>
+GL_MESA_shader_integer_mix<br>
+<br>
+[vertex shader]<br>
+void main()<br>
+{<br>
+       gl_Position = gl_Vertex;<br>
+}<br>
+<br>
+[fragment shader]<br>
+#extension GL_MESA_shader_integer_mix: enable<br>
+<br>
+uniform bvec4 a, b;<br>
+uniform bvec4 selector;<br>
+<br>
+void main()<br>
+{<br>
+       gl_FragColor = vec4(mix(a, b, selector));<br>
+}<br>
+<br>
+[test]<br>
+uniform ivec4 a 1 1 0 1<br>
+uniform ivec4 b 0 1 1 0<br>
+uniform ivec4 selector 1 1 0 0<br>
+<br>
+draw rect -1 -1 2 2<br>
+probe all rgba 0.0 1.0 0.0 1.0<br>
diff --git a/tests/spec/mesa_shader_integer_mix/execution/fs-mix-ivec4.shader_test b/tests/spec/mesa_shader_integer_mix/execution/fs-mix-ivec4.shader_test<br>
new file mode 100644<br>
index 0000000..bcc76f9<br>
--- /dev/null<br>
+++ b/tests/spec/mesa_shader_integer_mix/execution/fs-mix-ivec4.shader_test<br>
@@ -0,0 +1,36 @@<br>
+# From the MESA_shader_integer_mix spec:<br>
+#<br>
+#     Selects which vector each returned component comes<br>
+#     from. For a component of a that is false, the<br>
+#     corresponding component of x is returned. For a<br>
+#     component of a that is true, the corresponding<br>
+#     component of y is returned.<br>
+<br>
+[require]<br>
+GLSL >= 1.30<br>
+GL_MESA_shader_integer_mix<br>
+<br>
+[vertex shader]<br>
+void main()<br>
+{<br>
+       gl_Position = gl_Vertex;<br>
+}<br>
+<br>
+[fragment shader]<br>
+#extension GL_MESA_shader_integer_mix: enable<br>
+<br>
+uniform ivec4 a, b;<br>
+uniform bvec4 selector;<br>
+<br>
+void main()<br>
+{<br>
+       gl_FragColor = vec4(mix(a, b, selector));<br>
+}<br>
+<br>
+[test]<br>
+uniform ivec4 a 1 1 0 1<br>
+uniform ivec4 b 0 1 1 0<br>
+uniform ivec4 selector 1 1 0 0<br>
+<br>
+draw rect -1 -1 2 2<br>
+probe all rgba 0.0 1.0 0.0 1.0<br></blockquote><div><br></div><div>For the ivec4 and uvec4 tests, I would feel a little more comfortable if we used some values other than 1 and 0, just to reassure ourselves that the implementation doesn't accidentally implement these functions using logic that only works on bools.<br>
<br></div><div>With that fixed, the patch is:<br><br>Reviewed-by: Paul Berry <<a href="mailto:stereotype441@gmail.com">stereotype441@gmail.com</a>><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

diff --git a/tests/spec/mesa_shader_integer_mix/execution/fs-mix-uvec4.shader_test b/tests/spec/mesa_shader_integer_mix/execution/fs-mix-uvec4.shader_test<br>
new file mode 100644<br>
index 0000000..061633c<br>
--- /dev/null<br>
+++ b/tests/spec/mesa_shader_integer_mix/execution/fs-mix-uvec4.shader_test<br>
@@ -0,0 +1,36 @@<br>
+# From the MESA_shader_integer_mix spec:<br>
+#<br>
+#     Selects which vector each returned component comes<br>
+#     from. For a component of a that is false, the<br>
+#     corresponding component of x is returned. For a<br>
+#     component of a that is true, the corresponding<br>
+#     component of y is returned.<br>
+<br>
+[require]<br>
+GLSL >= 1.30<br>
+GL_MESA_shader_integer_mix<br>
+<br>
+[vertex shader]<br>
+void main()<br>
+{<br>
+       gl_Position = gl_Vertex;<br>
+}<br>
+<br>
+[fragment shader]<br>
+#extension GL_MESA_shader_integer_mix: enable<br>
+<br>
+uniform uvec4 a, b;<br>
+uniform bvec4 selector;<br>
+<br>
+void main()<br>
+{<br>
+       gl_FragColor = vec4(mix(a, b, selector));<br>
+}<br>
+<br>
+[test]<br>
+uniform uvec4 a 1 1 0 1<br>
+uniform uvec4 b 0 1 1 0<br>
+uniform ivec4 selector 1 1 0 0<br>
+<br>
+draw rect -1 -1 2 2<br>
+probe all rgba 0.0 1.0 0.0 1.0<br>
diff --git a/tests/spec/mesa_shader_integer_mix/execution/vs-mix-bvec4.shader_test b/tests/spec/mesa_shader_integer_mix/execution/vs-mix-bvec4.shader_test<br>
new file mode 100644<br>
index 0000000..fa3de5d<br>
--- /dev/null<br>
+++ b/tests/spec/mesa_shader_integer_mix/execution/vs-mix-bvec4.shader_test<br>
@@ -0,0 +1,41 @@<br>
+# From the MESA_shader_integer_mix spec:<br>
+#<br>
+#     Selects which vector each returned component comes<br>
+#     from. For a component of a that is false, the<br>
+#     corresponding component of x is returned. For a<br>
+#     component of a that is true, the corresponding<br>
+#     component of y is returned.<br>
+<br>
+[require]<br>
+GLSL >= 1.30<br>
+GL_MESA_shader_integer_mix<br>
+<br>
+[vertex shader]<br>
+#extension GL_MESA_shader_integer_mix: enable<br>
+<br>
+out vec4 color;<br>
+uniform bvec4 a, b;<br>
+uniform bvec4 selector;<br>
+<br>
+void main()<br>
+{<br>
+       gl_Position = gl_Vertex;<br>
+<br>
+       color = vec4(mix(a, b, selector));<br>
+}<br>
+<br>
+[fragment shader]<br>
+in vec4 color;<br>
+<br>
+void main()<br>
+{<br>
+       gl_FragColor = color;<br>
+}<br>
+<br>
+[test]<br>
+uniform ivec4 a 1 1 0 1<br>
+uniform ivec4 b 0 1 1 0<br>
+uniform ivec4 selector 1 1 0 0<br>
+<br>
+draw rect -1 -1 2 2<br>
+probe all rgba 0.0 1.0 0.0 1.0<br>
diff --git a/tests/spec/mesa_shader_integer_mix/execution/vs-mix-ivec4.shader_test b/tests/spec/mesa_shader_integer_mix/execution/vs-mix-ivec4.shader_test<br>
new file mode 100644<br>
index 0000000..c99cb05<br>
--- /dev/null<br>
+++ b/tests/spec/mesa_shader_integer_mix/execution/vs-mix-ivec4.shader_test<br>
@@ -0,0 +1,41 @@<br>
+# From the MESA_shader_integer_mix spec:<br>
+#<br>
+#     Selects which vector each returned component comes<br>
+#     from. For a component of a that is false, the<br>
+#     corresponding component of x is returned. For a<br>
+#     component of a that is true, the corresponding<br>
+#     component of y is returned.<br>
+<br>
+[require]<br>
+GLSL >= 1.30<br>
+GL_MESA_shader_integer_mix<br>
+<br>
+[vertex shader]<br>
+#extension GL_MESA_shader_integer_mix: enable<br>
+<br>
+out vec4 color;<br>
+uniform ivec4 a, b;<br>
+uniform bvec4 selector;<br>
+<br>
+void main()<br>
+{<br>
+       gl_Position = gl_Vertex;<br>
+<br>
+       color = vec4(mix(a, b, selector));<br>
+}<br>
+<br>
+[fragment shader]<br>
+in vec4 color;<br>
+<br>
+void main()<br>
+{<br>
+       gl_FragColor = color;<br>
+}<br>
+<br>
+[test]<br>
+uniform ivec4 a 1 1 0 1<br>
+uniform ivec4 b 0 1 1 0<br>
+uniform ivec4 selector 1 1 0 0<br>
+<br>
+draw rect -1 -1 2 2<br>
+probe all rgba 0.0 1.0 0.0 1.0<br>
diff --git a/tests/spec/mesa_shader_integer_mix/execution/vs-mix-uvec4.shader_test b/tests/spec/mesa_shader_integer_mix/execution/vs-mix-uvec4.shader_test<br>
new file mode 100644<br>
index 0000000..818f8b1<br>
--- /dev/null<br>
+++ b/tests/spec/mesa_shader_integer_mix/execution/vs-mix-uvec4.shader_test<br>
@@ -0,0 +1,41 @@<br>
+# From the MESA_shader_integer_mix spec:<br>
+#<br>
+#     Selects which vector each returned component comes<br>
+#     from. For a component of a that is false, the<br>
+#     corresponding component of x is returned. For a<br>
+#     component of a that is true, the corresponding<br>
+#     component of y is returned.<br>
+<br>
+[require]<br>
+GLSL >= 1.30<br>
+GL_MESA_shader_integer_mix<br>
+<br>
+[vertex shader]<br>
+#extension GL_MESA_shader_integer_mix: enable<br>
+<br>
+out vec4 color;<br>
+uniform uvec4 a, b;<br>
+uniform bvec4 selector;<br>
+<br>
+void main()<br>
+{<br>
+       gl_Position = gl_Vertex;<br>
+<br>
+       color = vec4(mix(a, b, selector));<br>
+}<br>
+<br>
+[fragment shader]<br>
+in vec4 color;<br>
+<br>
+void main()<br>
+{<br>
+       gl_FragColor = color;<br>
+}<br>
+<br>
+[test]<br>
+uniform uvec4 a 1 1 0 1<br>
+uniform uvec4 b 0 1 1 0<br>
+uniform ivec4 selector 1 1 0 0<br>
+<br>
+draw rect -1 -1 2 2<br>
+probe all rgba 0.0 1.0 0.0 1.0<br>
<span class="HOEnZb"><font color="#888888">--<br>
1.8.3.2<br>
<br>
_______________________________________________<br>
Piglit mailing list<br>
<a href="mailto:Piglit@lists.freedesktop.org">Piglit@lists.freedesktop.org</a><br>
<a href="http://lists.freedesktop.org/mailman/listinfo/piglit" target="_blank">http://lists.freedesktop.org/mailman/listinfo/piglit</a><br>
</font></span></blockquote></div><br></div></div>