<div dir="ltr"><div>Reviewed-by: Marek Olšák <<a href="mailto:marek.olsak@amd.com">marek.olsak@amd.com</a>></div><div><br></div><div>Marek<br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, May 21, 2018 at 8:59 PM, Timothy Arceri <span dir="ltr"><<a href="mailto:tarceri@itsqueeze.com" target="_blank">tarceri@itsqueeze.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">This tests both setting gl_TexCoord[] in the geometry shader and<br>
using the gs to passthrough the gl_TexCoord[] values from the<br>
vertex shader.<br>
---<br>
 .../gs-texcoord-array-2.<wbr>shader_test           | 57 ++++++++++++++++<br>
 .../gs-texcoord-array.shader_<wbr>test             | 51 ++++++++++++++<br>
 .../vs-gs-texcoord-array-2.<wbr>shader_test        | 65 ++++++++++++++++++<br>
 .../vs-gs-texcoord-array.<wbr>shader_test          | 66 +++++++++++++++++++<br>
 4 files changed, 239 insertions(+)<br>
 create mode 100644 tests/spec/glsl-1.50/<wbr>execution/compatibility/gs-<wbr>texcoord-array-2.shader_test<br>
 create mode 100644 tests/spec/glsl-1.50/<wbr>execution/compatibility/gs-<wbr>texcoord-array.shader_test<br>
 create mode 100644 tests/spec/glsl-1.50/<wbr>execution/compatibility/vs-gs-<wbr>texcoord-array-2.shader_test<br>
 create mode 100644 tests/spec/glsl-1.50/<wbr>execution/compatibility/vs-gs-<wbr>texcoord-array.shader_test<br>
<br>
diff --git a/tests/spec/glsl-1.50/<wbr>execution/compatibility/gs-<wbr>texcoord-array-2.shader_test b/tests/spec/glsl-1.50/<wbr>execution/compatibility/gs-<wbr>texcoord-array-2.shader_test<br>
new file mode 100644<br>
index 000000000..852bc10c0<br>
--- /dev/null<br>
+++ b/tests/spec/glsl-1.50/<wbr>execution/compatibility/gs-<wbr>texcoord-array-2.shader_test<br>
@@ -0,0 +1,57 @@<br>
<span class="">+[require]<br>
+GL COMPAT >= 3.2<br>
+GLSL >= 1.50<br>
+<br>
+[vertex shader]<br>
+#version 150 compatibility<br>
+<br>
+out gl_PerVertex {<br>
+       vec4 gl_Position;<br>
+       vec4 gl_TexCoord[5];<br>
+};<br>
+<br>
+void main()<br>
+{<br>
</span><span class="">+       gl_Position = gl_Vertex;<br>
+}<br>
+<br>
+[geometry shader]<br>
+#version 150 compatibility<br>
+<br>
+layout(triangles) in;<br>
+layout(triangle_strip, max_vertices = 3) out;<br>
+<br>
</span><span class="">+out vec4 gl_TexCoord[5];<br>
+<br>
+void main()<br>
+{<br>
+       for (int i = 0; i < 3; i++) {<br>
+               gl_Position = gl_in[i].gl_Position;<br>
+<br>
</span><span class="">+               /* 0.05, 0.05, 0.10, 0.15, 0.20 */<br>
</span><span class="">+               for (int j = 0; j < 5; j++) {<br>
</span>+                       gl_TexCoord[j] = vec4(float(j) * 0.05);<br>
<span class="">+               }<br>
+<br>
+               EmitVertex();<br>
+       }<br>
+}<br>
+<br>
+[fragment shader]<br>
+#version 110<br>
+<br>
+varying vec4 gl_TexCoord[5];<br>
+void main()<br>
+{<br>
+       vec4 result = vec4(0.0);<br>
+<br>
+       for (int i = 0; i < 4; i++)<br>
+               result += gl_TexCoord[i];<br>
+<br>
+       /* 0.00 + 0.05 + 0.10 + 0.15 = 0.30 */<br>
+       gl_FragColor = result;<br>
+}<br>
+<br>
+[test]<br>
+draw rect -1 -1 2 2<br>
+probe rgba 1 1 0.3 0.3 0.3 0.3<br>
</span>diff --git a/tests/spec/glsl-1.50/<wbr>execution/compatibility/gs-<wbr>texcoord-array.shader_test b/tests/spec/glsl-1.50/<wbr>execution/compatibility/gs-<wbr>texcoord-array.shader_test<br>
new file mode 100644<br>
index 000000000..0ee316ef1<br>
--- /dev/null<br>
+++ b/tests/spec/glsl-1.50/<wbr>execution/compatibility/gs-<wbr>texcoord-array.shader_test<br>
@@ -0,0 +1,51 @@<br>
<span class="">+[require]<br>
+GL COMPAT >= 3.2<br>
+GLSL >= 1.50<br>
+<br>
+[vertex shader]<br>
+#version 150 compatibility<br>
+<br>
</span>+void main()<br>
<span class="">+{<br>
+       gl_Position = gl_Vertex;<br>
+}<br>
+<br>
+[geometry shader]<br>
+#version 150 compatibility<br>
+<br>
+layout(triangles) in;<br>
+layout(triangle_strip, max_vertices = 3) out;<br>
+<br>
+uniform int n;<br>
+<br>
</span><span class="">+out vec4 gl_TexCoord[5];<br>
+<br>
+void main()<br>
+{<br>
+       for (int i = 0; i < 3; i++) {<br>
+               gl_Position = gl_in[i].gl_Position;<br>
+<br>
+               for (int j = 0; j < n; j++) {<br>
</span>+                       gl_TexCoord[j] = vec4(0.5, 0.5, 0.5, 0.5) * float(j);<br>
<span class="">+               }<br>
+<br>
+               EmitVertex();<br>
+       }<br>
+}<br>
+<br>
+[fragment shader]<br>
+#version 150 compatibility<br>
+<br>
+uniform int index;<br>
+in vec4 gl_TexCoord[5];<br>
+<br>
+void main()<br>
+{<br>
+       gl_FragColor = gl_TexCoord[index];<br>
+}<br>
+<br>
+[test]<br>
+uniform int index 1<br>
+uniform int n 4<br>
+draw rect -1 -1 2 2<br>
+probe rgba 1 1 0.5 0.5 0.5 0.5<br>
</span>diff --git a/tests/spec/glsl-1.50/<wbr>execution/compatibility/vs-gs-<wbr>texcoord-array-2.shader_test b/tests/spec/glsl-1.50/<wbr>execution/compatibility/vs-gs-<wbr>texcoord-array-2.shader_test<br>
<span class="">new file mode 100644<br>
index 000000000..ec910524c<br>
--- /dev/null<br>
</span>+++ b/tests/spec/glsl-1.50/<wbr>execution/compatibility/vs-gs-<wbr>texcoord-array-2.shader_test<br>
<div><div class="h5">@@ -0,0 +1,65 @@<br>
+[require]<br>
+GL COMPAT >= 3.2<br>
+GLSL >= 1.50<br>
+<br>
+[vertex shader]<br>
+#version 150 compatibility<br>
+<br>
+out gl_PerVertex {<br>
+       vec4 gl_Position;<br>
+       vec4 gl_TexCoord[5];<br>
+};<br>
+<br>
+void main()<br>
+{<br>
+       /* 0.05, 0.05, 0.10, 0.15, 0.20 */<br>
+       for (int i = 0; i < 5; i++)<br>
+               gl_TexCoord[i] = vec4(float(i) * 0.05);<br>
+<br>
+       gl_Position = gl_Vertex;<br>
+}<br>
+<br>
+[geometry shader]<br>
+#version 150 compatibility<br>
+<br>
+layout(triangles) in;<br>
+layout(triangle_strip, max_vertices = 3) out;<br>
+<br>
+in gl_PerVertex {<br>
+       vec4 gl_Position;<br>
+       vec4 gl_TexCoord[5];<br>
+} gl_in[];<br>
+<br>
+out vec4 gl_TexCoord[5];<br>
+<br>
+void main()<br>
+{<br>
+       for (int i = 0; i < 3; i++) {<br>
+               gl_Position = gl_in[i].gl_Position;<br>
+<br>
+               for (int j = 0; j < 5; j++) {<br>
+                       gl_TexCoord[j] = gl_in[i].gl_TexCoord[j];<br>
+               }<br>
+<br>
+               EmitVertex();<br>
+       }<br>
+}<br>
+<br>
+[fragment shader]<br>
+#version 110<br>
+<br>
+varying vec4 gl_TexCoord[5];<br>
+void main()<br>
+{<br>
+       vec4 result = vec4(0.0);<br>
+<br>
+       for (int i = 0; i < 4; i++)<br>
+               result += gl_TexCoord[i];<br>
+<br>
+       /* 0.00 + 0.05 + 0.10 + 0.15 = 0.30 */<br>
+       gl_FragColor = result;<br>
+}<br>
+<br>
+[test]<br>
+draw rect -1 -1 2 2<br>
+probe rgba 1 1 0.3 0.3 0.3 0.3<br>
</div></div>diff --git a/tests/spec/glsl-1.50/<wbr>execution/compatibility/vs-gs-<wbr>texcoord-array.shader_test b/tests/spec/glsl-1.50/<wbr>execution/compatibility/vs-gs-<wbr>texcoord-array.shader_test<br>
<span class="">new file mode 100644<br>
index 000000000..fae6cff63<br>
--- /dev/null<br>
</span>+++ b/tests/spec/glsl-1.50/<wbr>execution/compatibility/vs-gs-<wbr>texcoord-array.shader_test<br>
<div class="HOEnZb"><div class="h5">@@ -0,0 +1,66 @@<br>
+[require]<br>
+GL COMPAT >= 3.2<br>
+GLSL >= 1.50<br>
+<br>
+[vertex shader]<br>
+#version 150 compatibility<br>
+<br>
+uniform int n;<br>
+<br>
+out gl_PerVertex {<br>
+       vec4 gl_Position;<br>
+       vec4 gl_TexCoord[5];<br>
+};<br>
+<br>
+void main()<br>
+{<br>
+       for (int i = 0; i < n; i++) {<br>
+               gl_TexCoord[i] = vec4(0.5, 0.5, 0.5, 0.5) * float(i);<br>
+       }<br>
+       gl_Position = gl_Vertex;<br>
+}<br>
+<br>
+[geometry shader]<br>
+#version 150 compatibility<br>
+<br>
+layout(triangles) in;<br>
+layout(triangle_strip, max_vertices = 3) out;<br>
+<br>
+uniform int n;<br>
+<br>
+in gl_PerVertex {<br>
+       vec4 gl_Position;<br>
+       vec4 gl_TexCoord[5];<br>
+} gl_in[];<br>
+<br>
+out vec4 gl_TexCoord[5];<br>
+<br>
+void main()<br>
+{<br>
+       for (int i = 0; i < 3; i++) {<br>
+               gl_Position = gl_in[i].gl_Position;<br>
+<br>
+               for (int j = 0; j < n; j++) {<br>
+                       gl_TexCoord[j] = gl_in[i].gl_TexCoord[j];<br>
+               }<br>
+<br>
+               EmitVertex();<br>
+       }<br>
+}<br>
+<br>
+[fragment shader]<br>
+#version 150 compatibility<br>
+<br>
+uniform int index;<br>
+in vec4 gl_TexCoord[5];<br>
+<br>
+void main()<br>
+{<br>
+       gl_FragColor = gl_TexCoord[index];<br>
+}<br>
+<br>
+[test]<br>
+uniform int index 1<br>
+uniform int n 4<br>
+draw rect -1 -1 2 2<br>
+probe rgba 1 1 0.5 0.5 0.5 0.5<br>
-- <br>
2.17.0<br>
<br>
______________________________<wbr>_________________<br>
Piglit mailing list<br>
<a href="mailto:Piglit@lists.freedesktop.org">Piglit@lists.freedesktop.org</a><br>
<a href="https://lists.freedesktop.org/mailman/listinfo/piglit" rel="noreferrer" target="_blank">https://lists.freedesktop.org/<wbr>mailman/listinfo/piglit</a><br>
</div></div></blockquote></div><br></div>