[Piglit] [PATCH] sso: add test for linking gs without explicit locations

Ilia Mirkin imirkin at alum.mit.edu
Thu Jan 21 05:45:20 PST 2016


Mesa treats each GS input as taking up 3 locations instead of 1, because
it doesn't de-array the vars. This causes it to take col3 from VS
instead of col1.

Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu>
---
 .../execution/vs-gs-linking.shader_test            | 57 ++++++++++++++++++++++
 1 file changed, 57 insertions(+)
 create mode 100644 tests/spec/arb_separate_shader_objects/execution/vs-gs-linking.shader_test

diff --git a/tests/spec/arb_separate_shader_objects/execution/vs-gs-linking.shader_test b/tests/spec/arb_separate_shader_objects/execution/vs-gs-linking.shader_test
new file mode 100644
index 0000000..938df13
--- /dev/null
+++ b/tests/spec/arb_separate_shader_objects/execution/vs-gs-linking.shader_test
@@ -0,0 +1,57 @@
+[require]
+GLSL >= 1.50
+SSO ENABLED
+
+[vertex shader]
+#version 150
+
+in vec4 piglit_vertex;
+out vec4 col0;
+out vec4 col1;
+out vec4 col2;
+out vec4 col3;
+out vec4 col4;
+out vec4 col5;
+
+void main() {
+  gl_Position = piglit_vertex;
+  col1 = vec4(0, 1, 0, 1);
+  col0 = col2 = col3 = col4 = col5 = vec4(1, 0, 0, 1);
+}
+
+[geometry shader]
+#version 150
+
+layout (triangles) in;
+layout (triangle_strip, max_vertices=3) out;
+
+in vec4 color0[];
+in vec4 color1[];
+
+out vec4 color;
+
+void main() {
+  int i;
+  for (i = 0; i < 3; i++) {
+    gl_Position = gl_in[i].gl_Position;
+    color = color1[i];
+    EmitVertex();
+  }
+}
+
+[fragment shader]
+#version 150
+
+in vec4 color;
+out vec4 col;
+
+void main() {
+  col = color;
+}
+
+[test]
+clear color 0.2 0.2 0.2 0.2
+clear
+
+draw rect -1 -1 2 2
+probe all rgba 0 1 0 1
-- 
2.4.10



More information about the Piglit mailing list