<div dir="ltr">On 17 September 2013 14:03, Nicholas Mack <span dir="ltr"><<a href="mailto:nichmack@gmail.com" target="_blank">nichmack@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">v2: Modify test to also test for correct interpolation of data being passed<br>
---<br>
 .../gs-also-uses-smooth-flat-noperspective.geom    | 25 ++++++<br>
 ...also-uses-smooth-flat-noperspective.shader_test | 95 ++++++++++++++++++++++<br>
 2 files changed, 120 insertions(+)<br>
<div><div class="h5"> create mode 100644 tests/spec/glsl-1.50/compiler/gs-also-uses-smooth-flat-noperspective.geom<br>
 create mode 100644 tests/spec/glsl-1.50/execution/gs-also-uses-smooth-flat-noperspective.shader_test<br></div></div></blockquote><div><br></div><div>Thanks!<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"><div><div class="h5">
<br>
diff --git a/tests/spec/glsl-1.50/compiler/gs-also-uses-smooth-flat-noperspective.geom b/tests/spec/glsl-1.50/compiler/gs-also-uses-smooth-flat-noperspective.geom<br>
new file mode 100644<br>
index 0000000..f1ab41e<br>
--- /dev/null<br>
+++ b/tests/spec/glsl-1.50/compiler/gs-also-uses-smooth-flat-noperspective.geom<br>
@@ -0,0 +1,25 @@<br>
+// [config]<br>
+// expect_result: pass<br>
+// glsl_version: 1.50<br>
+// check_link: true<br>
+// [end config]<br>
+<br>
+#version 150<br>
+<br>
+layout(points) in;<br>
+layout(points, max_vertices = 1) out;<br>
+<br>
+flat in int a[];<br>
+noperspective in int b[];<br>
+smooth in int c[];<br>
+<br>
+flat out int aa;<br>
+noperspective out int bb;<br>
+smooth out int cc;<br>
+<br>
+void main()<br>
+{<br>
+       aa = a[0];<br>
+       bb = b[0];<br>
+       cc = c[0];<br>
+}<br>
diff --git a/tests/spec/glsl-1.50/execution/gs-also-uses-smooth-flat-noperspective.shader_test b/tests/spec/glsl-1.50/execution/gs-also-uses-smooth-flat-noperspective.shader_test<br>
new file mode 100644<br>
</div></div>index 0000000..fcc1081<br>
--- /dev/null<br>
+++ b/tests/spec/glsl-1.50/execution/gs-also-uses-smooth-flat-noperspective.shader_test<br>
@@ -0,0 +1,95 @@<br>
<div class="im">+# Test that the qualifiers 'smooth', 'flat', and 'noperspective' can appear on<br>
+#  geometry shader ins and outs.<br>
+#<br>
+# From the GLSL 1.50 specification, section 4.3 ("Storage Qualifiers"):<br>
+#<br>
+# "Outputs from shader (out) and inputs to a shader (in) can be further<br>
+#  qualified with one of these interpolation qualifiers:<br>
+#      smooth<br>
+#      flat<br>
+#      noperspective"<br>
+<br>
+[require]<br>
+GL >= 3.2<br>
+GLSL >= 1.50<br>
+<br>
+[vertex shader]<br>
+<br>
</div>+uniform mat4 mvp;<br>
+<br>
+in vec4 vertex;<br>
+in vec3 input_data;<br>
<div class="im">+<br>
+out vec4 pos;<br>
+flat out float a;<br>
</div>+smooth out float b;<br>
+noperspective out float c;<br>
+<br>
+void main()<br>
+{<br>
+       gl_Position = vertex * mvp;<br>
+       pos = vertex * mvp;<br>
+       a = input_data.r;<br>
+       b = input_data.g;<br>
+       c = input_data.b;<br>
<div class="im">+}<br>
+<br>
+[geometry shader]<br>
+<br>
</div><div class="im">+layout(triangles) in;<br>
+layout(triangle_strip, max_vertices = 3) out;<br>
+<br>
+in vec4 pos[];<br>
+flat in float a[];<br>
</div>+smooth in float b[];<br>
+noperspective in float c[];<br>
<div class="im">+<br>
+flat out float aa;<br>
</div>+smooth out float bb;<br>
+noperspective out float cc;<br>
<div class="im">+<br>
+void main()<br>
+{<br>
+       for(int i = 0; i < 3; i++) {<br>
+               gl_Position = pos[i];<br>
+               aa = a[i];<br>
</div><div class="im">+               bb = b[i];<br>
</div><div class="im">+               cc = c[i];<br>
</div><div class="im">+               EmitVertex();<br>
+       }<br>
+}<br>
+<br>
+[fragment shader]<br>
+<br>
</div>+flat in float aa;<br>
+smooth in float bb;<br>
+noperspective in float cc;<br>
<div class="im">+<br>
+out vec4 color;<br>
+<br>
+void main()<br>
+{<br>
</div>+       color = vec4(aa, bb, cc, 1.0);<br>
<div class="im">+}<br>
+<br>
+[vertex data]<br>
</div>+vertex/float/3  input_data/float/3<br>
+ 0.0  6.0 -2.0  0.25 1.0 0.0<br>
+-3.0 -3.0 -1.0  0.50 0.0 0.0<br>
+ 9.0 -9.0 -3.0  0.75 0.0 1.0<br>
+<br>
+[test]<br>
+uniform mat4 mvp 1 0 0 0 0 1 0 0 0 0 -2 -1 0 0 -3 0<br>
+clear color 0.0 0.0 0.0 0.0<br>
+clear<br>
+draw arrays GL_TRIANGLE_FAN 0 3<br>
+relative probe rgba (0.444444444444, 0.222222222222) (0.75, 0.166666666667, 0.333333333333, 1.0)<br>
+relative probe rgba (0.636363636364, 0.181818181818) (0.75, 0.166666666667, 0.545454545455, 1.0)<br>
+relative probe rgba (0.769230769231, 0.153846153846) (0.75, 0.166666666667, 0.692307692308, 1.0)<br>
+relative probe rgba (0.866666666667, 0.133333333333) (0.75, 0.166666666667, 0.8,            1.0)<br>
+relative probe rgba (0.5,            0.4           ) (0.75, 0.333333333333, 0.3,            1.0)<br>
+relative probe rgba (0.666666666667, 0.333333333333) (0.75, 0.333333333333, 0.5,            1.0)<br>
+relative probe rgba (0.785714285714, 0.285714285714) (0.75, 0.333333333333, 0.642857142857, 1.0)<br>
+relative probe rgba (0.545454545455, 0.545454545455) (0.75, 0.5,            0.272727272727, 1.0)<br>
+relative probe rgba (0.692307692308, 0.461538461538) (0.75, 0.5,            0.461538461538, 1.0)<br>
+relative probe rgba (0.583333333333, 0.666666666667) (0.75, 0.666666666667, 0.25,           1.0)<br>
<div class="HOEnZb"><div class="h5">--<br>
1.8.3.1<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>
</div></div></blockquote></div><br></div></div>