[Piglit] [PATCH] arb_enhanced_layouts: add more component layout execution tests

Timothy Arceri timothy.arceri at collabora.com
Wed Jun 15 06:17:51 UTC 2016


---
 .../component-layout/vs-fs-doubles.shader_test     |  60 ++++++++
 .../execution/component-layout/vs-fs.shader_test   |  49 +++++++
 .../component-layout/vs-gs-fs-double.shader_test   |  90 ++++++++++++
 .../component-layout/vs-gs-fs.shader_test          |  86 +++++++++++
 .../vs-tcs-load-output-indirect.shader_test        | 128 +++++++++++++++++
 .../vs-tcs-load-output.shader_test                 | 128 +++++++++++++++++
 .../vs-tcs-tes-fs-double.shader_test               | 157 +++++++++++++++++++++
 7 files changed, 698 insertions(+)
 create mode 100644 tests/spec/arb_enhanced_layouts/execution/component-layout/vs-fs-doubles.shader_test
 create mode 100644 tests/spec/arb_enhanced_layouts/execution/component-layout/vs-fs.shader_test
 create mode 100644 tests/spec/arb_enhanced_layouts/execution/component-layout/vs-gs-fs-double.shader_test
 create mode 100644 tests/spec/arb_enhanced_layouts/execution/component-layout/vs-gs-fs.shader_test
 create mode 100644 tests/spec/arb_enhanced_layouts/execution/component-layout/vs-tcs-load-output-indirect.shader_test
 create mode 100644 tests/spec/arb_enhanced_layouts/execution/component-layout/vs-tcs-load-output.shader_test
 create mode 100644 tests/spec/arb_enhanced_layouts/execution/component-layout/vs-tcs-tes-fs-double.shader_test

diff --git a/tests/spec/arb_enhanced_layouts/execution/component-layout/vs-fs-doubles.shader_test b/tests/spec/arb_enhanced_layouts/execution/component-layout/vs-fs-doubles.shader_test
new file mode 100644
index 0000000..de33459
--- /dev/null
+++ b/tests/spec/arb_enhanced_layouts/execution/component-layout/vs-fs-doubles.shader_test
@@ -0,0 +1,60 @@
+# pass a basic double component layout through vs->fs.
+
+[require]
+GLSL >= 1.40
+GL_ARB_enhanced_layouts
+GL_ARB_separate_shader_objects
+GL_ARB_gpu_shader_fp64
+
+[vertex shader]
+#version 420
+#extension GL_ARB_enhanced_layouts: require
+#extension GL_ARB_separate_shader_objects: require
+#extension GL_ARB_gpu_shader_fp64: require
+
+layout(location = 0) flat out dvec3 d1;
+layout(location = 1, component = 2) flat out double d2;
+layout(location = 2, component = 0) flat out double d3;
+layout(location = 2, component = 2) flat out double d4;
+
+in vec4 piglit_vertex;
+
+void main()
+{
+  gl_Position = piglit_vertex;
+
+  d1 = dvec3(1.0, 0.0, 1.0);
+  d2 = 0.25LF;
+  d3 = 0.50LF;
+  d4 = 0.75LF;
+}
+
+[fragment shader]
+#version 420
+#extension GL_ARB_enhanced_layouts: require
+#extension GL_ARB_separate_shader_objects: require
+#extension GL_ARB_gpu_shader_fp64: require
+
+layout(location = 0) flat in dvec3 d1;
+layout(location = 1, component = 2) flat in double d2;
+layout(location = 2, component = 0) flat in double d3;
+layout(location = 2, component = 2) flat in double d4;
+
+out vec4 color;
+
+void main()
+{
+  color = vec4(1.0, 0.0, 1.0, 1.0);
+
+  if (dvec3(1.0, 0.0, 1.0) != d1 || 0.25LF != d2 ||
+      0.50LF != d3 || 0.75LF != d4)
+  {
+    color = vec4(0.0, 1.0, 1.0, 1.0);
+  }
+}
+
+[test]
+clear color 0.1 0.1 0.1 0.1
+clear
+draw rect -1 -1 2 2
+probe all rgba 1.0 0.0 1.0 1.0
diff --git a/tests/spec/arb_enhanced_layouts/execution/component-layout/vs-fs.shader_test b/tests/spec/arb_enhanced_layouts/execution/component-layout/vs-fs.shader_test
new file mode 100644
index 0000000..9edf972
--- /dev/null
+++ b/tests/spec/arb_enhanced_layouts/execution/component-layout/vs-fs.shader_test
@@ -0,0 +1,49 @@
+# pass an basic component layout through vs->fs.
+
+[require]
+GLSL >= 1.40
+GL_ARB_enhanced_layouts
+GL_ARB_separate_shader_objects
+
+[vertex shader]
+#extension GL_ARB_enhanced_layouts: require
+#extension GL_ARB_separate_shader_objects: require
+
+in vec4 piglit_vertex;
+
+// consumes X component
+layout(location = 0) out float b;
+
+// consume Y/Z/W components
+layout(location = 0, component = 1) out vec3 a;
+
+void main()
+{
+	gl_Position = piglit_vertex;
+
+	a = vec3(0.0, 0.75, 1.0);
+	b = 0.5;
+}
+
+[fragment shader]
+#extension GL_ARB_enhanced_layouts: require
+#extension GL_ARB_separate_shader_objects: require
+
+out vec4 color;
+
+// consume Y/Z/W components
+layout(location = 0, component = 1) in vec3 a_vs;
+
+// consumes X component
+layout(location = 0) in float b_vs;
+
+void main()
+{
+	color = vec4(b_vs, a_vs);
+}
+
+[test]
+clear color 0.1 0.1 0.1 0.1
+clear
+draw rect -1 -1 2 2
+probe all rgba 0.5 0.0 0.75 1.0
diff --git a/tests/spec/arb_enhanced_layouts/execution/component-layout/vs-gs-fs-double.shader_test b/tests/spec/arb_enhanced_layouts/execution/component-layout/vs-gs-fs-double.shader_test
new file mode 100644
index 0000000..bf5d6e8
--- /dev/null
+++ b/tests/spec/arb_enhanced_layouts/execution/component-layout/vs-gs-fs-double.shader_test
@@ -0,0 +1,90 @@
+# Test layout component qualifier on a double between multiple shader stages.
+
+[require]
+GLSL >= 1.50
+GL_ARB_enhanced_layouts
+GL_ARB_separate_shader_objects
+GL_ARB_gpu_shader_fp64
+
+[vertex shader]
+#version 150
+#extension GL_ARB_enhanced_layouts: require
+#extension GL_ARB_separate_shader_objects: require
+#extension GL_ARB_gpu_shader_fp64: require
+
+// consume X/Y/Z components
+layout(location = 0) flat out dvec3 a;
+
+// consumes W component
+layout(location = 1, component = 2) flat out double b;
+
+out vec4 vertex_to_gs;
+
+in vec4 piglit_vertex;
+
+void main()
+{
+  a = dvec3(0.0, 0.75, 1.0);
+  b = 0.5LF;
+
+  vertex_to_gs = piglit_vertex;
+}
+
+[geometry shader]
+#version 150
+#extension GL_ARB_enhanced_layouts: require
+#extension GL_ARB_separate_shader_objects: require
+#extension GL_ARB_gpu_shader_fp64: require
+
+layout(triangles) in;
+layout(triangle_strip, max_vertices = 3) out;
+
+// consume X/Y/Z components
+layout(location = 0) flat in dvec3 a[3];
+
+// consumes W component
+layout(location = 1, component = 2) flat in double b[3];
+
+in vec4 vertex_to_gs[3];
+
+// consume X/Y/Z components
+layout(location = 0) flat out dvec3 a_to_fs;
+
+// consumes W component
+layout(location = 1, component = 2) flat out double b_to_fs;
+
+void main()
+{
+  for (int i = 0; i < 3; i++) {
+    gl_Position = vertex_to_gs[i];
+    a_to_fs = a[i];
+    b_to_fs = b[i];
+    EmitVertex();
+  }
+}
+
+[fragment shader]
+#version 150
+#extension GL_ARB_enhanced_layouts: require
+#extension GL_ARB_separate_shader_objects: require
+#extension GL_ARB_gpu_shader_fp64: require
+
+out vec4 color;
+
+// consume X/Y/Z components
+layout(location = 0) flat in dvec3 a_to_fs;
+
+// consumes W component
+layout(location = 1, component = 2) flat in double b_to_fs;
+
+void main()
+{
+  color = vec4(b_to_fs, a_to_fs);
+}
+
+[test]
+clear color 0.1 0.1 0.1 0.1
+clear
+
+draw rect -1 -1 2 2
+probe all rgb 0.5 0 0.75
diff --git a/tests/spec/arb_enhanced_layouts/execution/component-layout/vs-gs-fs.shader_test b/tests/spec/arb_enhanced_layouts/execution/component-layout/vs-gs-fs.shader_test
new file mode 100644
index 0000000..a7442dd
--- /dev/null
+++ b/tests/spec/arb_enhanced_layouts/execution/component-layout/vs-gs-fs.shader_test
@@ -0,0 +1,86 @@
+# Test layout component qualifier between multiple shader stages.
+
+[require]
+GLSL >= 1.50
+GL_ARB_enhanced_layouts
+GL_ARB_separate_shader_objects
+
+[vertex shader]
+#version 150
+#extension GL_ARB_enhanced_layouts: require
+#extension GL_ARB_separate_shader_objects: require
+
+// consume X/Y/Z components
+layout(location = 0) out vec3 a;
+
+// consumes W component
+layout(location = 0, component = 3) out float b;
+
+out vec4 vertex_to_gs;
+
+in vec4 piglit_vertex;
+
+void main()
+{
+  a = vec3(0.0, 0.75, 1.0);
+  b = 0.5;
+
+  vertex_to_gs = piglit_vertex;
+}
+
+[geometry shader]
+#version 150
+#extension GL_ARB_enhanced_layouts: require
+#extension GL_ARB_separate_shader_objects: require
+
+layout(triangles) in;
+layout(triangle_strip, max_vertices = 3) out;
+
+// consume X/Y/Z components
+layout(location = 0) in vec3 a[3];
+
+// consumes W component
+layout(location = 0, component = 3) in float b[3];
+
+in vec4 vertex_to_gs[3];
+
+// consume X/Y/Z components
+layout(location = 0) out vec3 a_to_fs;
+
+// consumes W component
+layout(location = 0, component = 3) out float b_to_fs;
+
+void main()
+{
+  for (int i = 0; i < 3; i++) {
+    gl_Position = vertex_to_gs[i];
+    a_to_fs = a[i];
+    b_to_fs = b[i];
+    EmitVertex();
+  }
+}
+
+[fragment shader]
+#version 150
+#extension GL_ARB_enhanced_layouts: require
+#extension GL_ARB_separate_shader_objects: require
+
+out vec4 color;
+
+// consume X/Y/Z components
+layout(location = 0) in vec3 a_to_fs;
+
+// consumes W component
+layout(location = 0, component = 3) in float b_to_fs;
+
+void main()
+{
+  color = vec4(b_to_fs, a_to_fs);
+}
+
+[test]
+clear color 0.1 0.1 0.1 0.1
+clear
+
+draw rect -1 -1 2 2
+probe all rgb 0.5 0 0.75
diff --git a/tests/spec/arb_enhanced_layouts/execution/component-layout/vs-tcs-load-output-indirect.shader_test b/tests/spec/arb_enhanced_layouts/execution/component-layout/vs-tcs-load-output-indirect.shader_test
new file mode 100644
index 0000000..38c11f0
--- /dev/null
+++ b/tests/spec/arb_enhanced_layouts/execution/component-layout/vs-tcs-load-output-indirect.shader_test
@@ -0,0 +1,128 @@
+# The i965 backend has special code to handle TCS output reads. This is a
+# simple test to make sure we handle component packing correctly in that case.
+
+[require]
+GLSL >= 1.50
+GL_ARB_arrays_of_arrays
+GL_ARB_enhanced_layouts
+GL_ARB_tessellation_shader
+GL_ARB_separate_shader_objects
+
+[vertex shader]
+#extension GL_ARB_enhanced_layouts: require
+#extension GL_ARB_separate_shader_objects: require
+
+in vec4 vertex;
+
+// consume Y/Z/W components
+layout(location = 0, component = 1) out vec3 a;
+
+// consumes X component
+layout(location = 0) out float b;
+
+void main()
+{
+	gl_Position = vertex;
+
+	a = vec3(0.0, 0.75, 1.0);
+	b = 0.25;
+}
+
+
+[tessellation control shader]
+#extension GL_ARB_arrays_of_arrays: require
+#extension GL_ARB_enhanced_layouts: require
+#extension GL_ARB_tessellation_shader: require
+#extension GL_ARB_separate_shader_objects: require
+
+layout(vertices = 3) out;
+
+// consume Y/Z/W components
+layout(location = 0, component = 1) in vec3 a[];
+
+// consumes X component
+layout(location = 0) in float b[];
+
+// consume Y/Z/W components
+layout(location = 0, component = 1) out vec3 a_tcs[];
+
+// consumes X component
+layout(location = 0) out float b_tcs[];
+
+void main() {
+        float tmpf[2];
+
+	gl_out[gl_InvocationID].gl_Position = gl_in[gl_InvocationID].gl_Position;
+	gl_TessLevelOuter = float[4](1.0, 1.0, 1.0, 0.0);
+	gl_TessLevelInner = float[2](0.0, 0.0);
+	a_tcs[gl_InvocationID] = a[gl_InvocationID];
+	b_tcs[gl_InvocationID] = b[gl_InvocationID];
+
+	// swap output
+	tmpf[0] = a_tcs[gl_InvocationID].y;
+	tmpf[1] = b_tcs[gl_InvocationID];
+	a_tcs[gl_InvocationID].y = tmpf[1];
+	b_tcs[gl_InvocationID] = tmpf[0];
+}
+
+
+[tessellation evaluation shader]
+#extension GL_ARB_arrays_of_arrays: require
+#extension GL_ARB_enhanced_layouts: require
+#extension GL_ARB_tessellation_shader: require
+#extension GL_ARB_separate_shader_objects: require
+
+layout(triangles) in;
+
+// consume Y/Z/W components
+layout(location = 0, component = 1) in vec3 a_tcs[];
+
+// consumes X component
+layout(location = 0) in float b_tcs[];
+
+// consume Y/Z/W components
+layout(location = 0, component = 1) out vec3 a_tes;
+
+// consumes X component
+layout(location = 0) out float b_tes;
+
+void main() {
+	gl_Position = gl_in[0].gl_Position * gl_TessCoord[0]
+	            + gl_in[1].gl_Position * gl_TessCoord[1]
+	            + gl_in[2].gl_Position * gl_TessCoord[2];
+
+	a_tes = a_tcs[0];
+	b_tes = b_tcs[0];
+}
+
+
+[fragment shader]
+#extension GL_ARB_enhanced_layouts: require
+#extension GL_ARB_separate_shader_objects: require
+
+// consume Y/Z/W components
+layout(location = 0, component = 1) in vec3 a_tes;
+
+// consumes X component
+layout(location = 0) in float b_tes;
+
+void main()
+{
+	gl_FragColor = vec4(b_tes, a_tes);
+}
+
+[vertex data]
+vertex/float/2
+-1.0 -1.0
+ 1.0 -1.0
+-1.0  1.0
+-1.0  1.0
+ 1.0 -1.0
+ 1.0  1.0
+
+[test]
+clear color 0.1 0.1 0.1 0.1
+clear
+patch parameter vertices 3
+draw arrays GL_PATCHES 0 6
+probe all rgba 0.75 0.0 0.25 1.0
diff --git a/tests/spec/arb_enhanced_layouts/execution/component-layout/vs-tcs-load-output.shader_test b/tests/spec/arb_enhanced_layouts/execution/component-layout/vs-tcs-load-output.shader_test
new file mode 100644
index 0000000..3d75fe1
--- /dev/null
+++ b/tests/spec/arb_enhanced_layouts/execution/component-layout/vs-tcs-load-output.shader_test
@@ -0,0 +1,128 @@
+# The i965 backend has special code to handle TCS output reads. This is a
+# simple test to make sure we handle component packing correctly in that case.
+
+[require]
+GLSL >= 1.50
+GL_ARB_arrays_of_arrays
+GL_ARB_enhanced_layouts
+GL_ARB_tessellation_shader
+GL_ARB_separate_shader_objects
+
+[vertex shader]
+#extension GL_ARB_enhanced_layouts: require
+#extension GL_ARB_separate_shader_objects: require
+
+in vec4 vertex;
+
+// consume Y/Z/W components
+layout(location = 0, component = 1) out vec3 a;
+
+// consumes X component
+layout(location = 0) out float b;
+
+void main()
+{
+	gl_Position = vertex;
+
+	a = vec3(0.0, 0.75, 1.0);
+	b = 0.25;
+}
+
+
+[tessellation control shader]
+#extension GL_ARB_arrays_of_arrays: require
+#extension GL_ARB_enhanced_layouts: require
+#extension GL_ARB_tessellation_shader: require
+#extension GL_ARB_separate_shader_objects: require
+
+layout(vertices = 3) out;
+
+// consume Y/Z/W components
+layout(location = 0, component = 1) in vec3 a[];
+
+// consumes X component
+layout(location = 0) in float b[];
+
+// consume Y/Z/W components
+layout(location = 0, component = 1) patch out vec3 a_tcs[2];
+
+// consumes X component
+layout(location = 0) patch out float b_tcs[2];
+
+void main() {
+        float tmpf[2];
+
+	gl_out[gl_InvocationID].gl_Position = gl_in[gl_InvocationID].gl_Position;
+	gl_TessLevelOuter = float[4](1.0, 1.0, 1.0, 0.0);
+	gl_TessLevelInner = float[2](0.0, 0.0);
+	a_tcs[1] = a[gl_InvocationID];
+	b_tcs[1] = b[gl_InvocationID];
+
+	// swap output
+	tmpf[0] = a_tcs[1].y;
+	tmpf[1] = b_tcs[1];
+	a_tcs[1].y = tmpf[1];
+	b_tcs[1] = tmpf[0];
+}
+
+
+[tessellation evaluation shader]
+#extension GL_ARB_arrays_of_arrays: require
+#extension GL_ARB_enhanced_layouts: require
+#extension GL_ARB_tessellation_shader: require
+#extension GL_ARB_separate_shader_objects: require
+
+layout(triangles) in;
+
+// consume Y/Z/W components
+layout(location = 0, component = 1) patch in vec3 a_tcs[2];
+
+// consumes X component
+layout(location = 0) patch in float b_tcs[2];
+
+// consume Y/Z/W components
+layout(location = 0, component = 1) out vec3 a_tes;
+
+// consumes X component
+layout(location = 0) out float b_tes;
+
+void main() {
+	gl_Position = gl_in[0].gl_Position * gl_TessCoord[0]
+	            + gl_in[1].gl_Position * gl_TessCoord[1]
+	            + gl_in[2].gl_Position * gl_TessCoord[2];
+
+	a_tes = a_tcs[1];
+	b_tes = b_tcs[1];
+}
+
+
+[fragment shader]
+#extension GL_ARB_enhanced_layouts: require
+#extension GL_ARB_separate_shader_objects: require
+
+// consume Y/Z/W components
+layout(location = 0, component = 1) in vec3 a_tes;
+
+// consumes X component
+layout(location = 0) in float b_tes;
+
+void main()
+{
+	gl_FragColor = vec4(b_tes, a_tes);
+}
+
+[vertex data]
+vertex/float/2
+-1.0 -1.0
+ 1.0 -1.0
+-1.0  1.0
+-1.0  1.0
+ 1.0 -1.0
+ 1.0  1.0
+
+[test]
+clear color 0.1 0.1 0.1 0.1
+clear
+patch parameter vertices 3
+draw arrays GL_PATCHES 0 6
+probe all rgba 0.75 0.0 0.25 1.0
diff --git a/tests/spec/arb_enhanced_layouts/execution/component-layout/vs-tcs-tes-fs-double.shader_test b/tests/spec/arb_enhanced_layouts/execution/component-layout/vs-tcs-tes-fs-double.shader_test
new file mode 100644
index 0000000..938d270
--- /dev/null
+++ b/tests/spec/arb_enhanced_layouts/execution/component-layout/vs-tcs-tes-fs-double.shader_test
@@ -0,0 +1,157 @@
+# pass an basic component layout through vs->tcs->tes->fs.
+
+[require]
+GLSL >= 1.50
+GL_ARB_arrays_of_arrays
+GL_ARB_enhanced_layouts
+GL_ARB_tessellation_shader
+GL_ARB_separate_shader_objects
+GL_ARB_gpu_shader_fp64
+
+[vertex shader]
+#extension GL_ARB_enhanced_layouts: require
+#extension GL_ARB_separate_shader_objects: require
+#extension GL_ARB_gpu_shader_fp64: require
+
+in vec4 vertex;
+
+// consume Y/Z/W components
+layout(location = 0) flat out dvec3 a;
+
+// consumes X component
+layout(location = 1, component = 2) flat out double b;
+
+layout(location = 2, component = 0) flat out double c;
+layout(location = 2, component = 2) flat out double d;
+
+void main()
+{
+	gl_Position = vertex;
+
+	a = dvec3(1.0, 0.0, 1.0);
+	b = 0.25LF;
+	c = 0.5LF;
+	d = 0.75LF;
+}
+
+
+[tessellation control shader]
+#extension GL_ARB_arrays_of_arrays: require
+#extension GL_ARB_enhanced_layouts: require
+#extension GL_ARB_tessellation_shader: require
+#extension GL_ARB_separate_shader_objects: require
+#extension GL_ARB_gpu_shader_fp64: require
+
+layout(vertices = 3) out;
+
+// consume Y/Z/W components
+layout(location = 0) flat in dvec3 a[];
+
+// consumes X component
+layout(location = 1, component = 2) flat in double b[];
+
+layout(location = 2, component = 0) flat in double c[];
+layout(location = 2, component = 2) flat in double d[];
+
+// consume Y/Z/W components
+layout(location = 0) flat out dvec3 a_tcs[];
+
+// consumes X component
+layout(location = 1, component = 2) flat out double b_tcs[];
+
+layout(location = 2, component = 0) flat out double c_tcs[];
+layout(location = 2, component = 2) flat out double d_tcs[];
+
+void main() {
+	gl_out[gl_InvocationID].gl_Position = gl_in[gl_InvocationID].gl_Position;
+	gl_TessLevelOuter = float[4](1.0, 1.0, 1.0, 0.0);
+	gl_TessLevelInner = float[2](0.0, 0.0);
+	a_tcs[gl_InvocationID] = a[gl_InvocationID];
+	b_tcs[gl_InvocationID] = b[gl_InvocationID];
+	c_tcs[gl_InvocationID] = c[gl_InvocationID];
+	d_tcs[gl_InvocationID] = d[gl_InvocationID];
+}
+
+
+[tessellation evaluation shader]
+#extension GL_ARB_arrays_of_arrays: require
+#extension GL_ARB_enhanced_layouts: require
+#extension GL_ARB_tessellation_shader: require
+#extension GL_ARB_separate_shader_objects: require
+#extension GL_ARB_gpu_shader_fp64: require
+
+layout(triangles) in;
+
+// consume Y/Z/W components
+layout(location = 0) flat in dvec3 a_tcs[];
+
+// consumes X component
+layout(location = 1, component = 2) flat in double b_tcs[];
+
+layout(location = 2, component = 0) flat in double c_tcs[];
+layout(location = 2, component = 2) flat in double d_tcs[];
+
+// consume Y/Z/W components
+layout(location = 0) flat out dvec3 a_tes;
+
+// consumes X component
+layout(location = 1, component = 2) flat out double b_tes;
+
+layout(location = 2, component = 0) flat out double c_tes;
+layout(location = 2, component = 2) flat out double d_tes;
+
+void main() {
+	gl_Position = gl_in[0].gl_Position * gl_TessCoord[0]
+	            + gl_in[1].gl_Position * gl_TessCoord[1]
+	            + gl_in[2].gl_Position * gl_TessCoord[2];
+
+	a_tes = a_tcs[0];
+	b_tes = b_tcs[0];
+	c_tes = c_tcs[1];
+	d_tes = d_tcs[1];
+}
+
+
+[fragment shader]
+#extension GL_ARB_enhanced_layouts: require
+#extension GL_ARB_separate_shader_objects: require
+#extension GL_ARB_gpu_shader_fp64: require
+
+out vec4 color;
+
+// consume Y/Z/W components
+layout(location = 0) flat in dvec3 a_tes;
+
+// consumes X component
+layout(location = 1, component = 2) flat in double b_tes;
+
+layout(location = 2, component = 0) flat in double c_tes;
+layout(location = 2, component = 2) flat in double d_tes;
+
+void main()
+{
+  color = vec4(1.0, 0.0, 1.0, 1.0);
+
+  if (dvec3(1.0, 0.0, 1.0) != a_tes || 0.25LF != b_tes ||
+      0.50LF != c_tes || 0.75LF != d_tes)
+  {
+    //color = vec4(0.0, 1.0, 1.0, 1.0);
+    color = vec4(b_tes, c_tes, d_tes, 1.0);
+  }
+}
+
+[vertex data]
+vertex/float/2
+-1.0 -1.0
+ 1.0 -1.0
+-1.0  1.0
+-1.0  1.0
+ 1.0 -1.0
+ 1.0  1.0
+
+[test]
+clear color 0.1 0.1 0.1 0.1
+clear
+patch parameter vertices 3
+draw arrays GL_PATCHES 0 6
+probe all rgba 1.0 0.0 1.0 1.0
-- 
2.5.5



More information about the Piglit mailing list