<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On 9 September 2013 11:42, Matt Turner <span dir="ltr"><<a href="mailto:mattst88@gmail.com" target="_blank">mattst88@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Reviewed-by: Paul Berry <<a href="mailto:stereotype441@gmail.com">stereotype441@gmail.com</a>><br>
<div><div class="h5">---<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>
</div></div>index 0000000..7d7d553<br>
<div><div class="h5">--- /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>
</div></div>+       gl_FragColor = vec4(mix(a, b, selector) / 4.0f);<br>
<div class="im">+}<br>
+<br>
+[test]<br>
+uniform ivec4 a 1 2 0 4<br>
+uniform ivec4 b 0 3 1 0<br>
+uniform ivec4 selector 1 1 0 0<br>
+<br>
+draw rect -1 -1 2 2<br>
</div>+probe all rgba 0.0 0.75 0.0 1.0<br>
<div class="im">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>
</div>index 0000000..3063627<br>
<div><div class="h5">--- /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>
</div></div>+       gl_FragColor = vec4(mix(a, b, selector) / 4.0f);<br>
+}<br>
+<br>
+[test]<br>
<div class="im">+uniform uvec4 a 1 2 0 4<br>
+uniform uvec4 b 0 3 1 0<br>
+uniform ivec4 selector 1 1 0 0<br>
+<br>
+draw rect -1 -1 2 2<br>
</div>+probe all rgba 0.0 0.75 0.0 1.0<br>
<div><div class="h5">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>
</div></div>index 0000000..6100388<br>
<div><div class="h5">--- /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>
</div></div>+       color = vec4(mix(a, b, selector) / 4.0f);<br>
<div class="im">+}<br>
+<br>
+[fragment shader]<br>
+in vec4 color;<br>
+<br>
+void main()<br>
+{<br>
+       gl_FragColor = color;<br>
+}<br>
+<br>
+[test]<br>
</div><div class="im">+uniform ivec4 a 1 2 0 4<br>
+uniform ivec4 b 0 3 1 0<br>
+uniform ivec4 selector 1 1 0 0<br>
+<br>
+draw rect -1 -1 2 2<br>
</div>+probe all rgba 0.0 0.75 0.0 1.0<br>
<div class="im">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>
</div>index 0000000..bcd17ed<br>
<div><div class="h5">--- /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>
</div></div>+       color = vec4(mix(a, b, selector) / 4.0f);<br>
<div class="im">+}<br>
+<br>
+[fragment shader]<br>
+in vec4 color;<br>
+<br>
+void main()<br>
+{<br>
+       gl_FragColor = color;<br>
+}<br>
+<br>
+[test]<br>
</div><div class="im">+uniform uvec4 a 1 2 0 4<br>
+uniform uvec4 b 0 3 1 0<br>
+uniform ivec4 selector 1 1 0 0<br>
+<br>
+draw rect -1 -1 2 2<br>
</div>+probe all rgba 0.0 0.75 0.0 1.0<br>
<span class="HOEnZb"><font color="#888888">--<br>
1.8.3.2<br>
<br>
</font></span></blockquote></div><br><br></div><div class="gmail_extra">Looks good, thanks.<br></div></div>