[Piglit] [PATCH 1/5] Test explicit and implicit bulk assignment of gl_ClipDistance.
Paul Berry
stereotype441 at gmail.com
Fri Sep 23 18:54:15 PDT 2011
These tests verify that gl_ClipDistance works properly under the
following conditions:
- When it appears (undereferenced) on the LHS or RHS of an assignment.
- When it is passed (undereferenced) to a function.
- When the return value of a function is assigned to it (undereferenced).
These cases are important to test because some hardware packs
gl_ClipDistance into an array of 2 vec4's, whereas it appears in GLSL
as an array of 8 floats, so bulk assignment to and from
gl_ClipDistance may require packing and unpacking the array.
Tested using the nVidia proprietary Linux driver.
---
.../vs-clip-distance-bulk-assign.shader_test | 102 +++++++++++++++
.../clipping/vs-clip-distance-in-param.shader_test | 95 ++++++++++++++
.../vs-clip-distance-inout-param.shader_test | 104 ++++++++++++++++
.../vs-clip-distance-out-param.shader_test | 103 ++++++++++++++++
.../clipping/vs-clip-distance-retval.shader_test | 129 ++++++++++++++++++++
5 files changed, 533 insertions(+), 0 deletions(-)
create mode 100644 tests/spec/glsl-1.30/execution/clipping/vs-clip-distance-bulk-assign.shader_test
create mode 100644 tests/spec/glsl-1.30/execution/clipping/vs-clip-distance-in-param.shader_test
create mode 100644 tests/spec/glsl-1.30/execution/clipping/vs-clip-distance-inout-param.shader_test
create mode 100644 tests/spec/glsl-1.30/execution/clipping/vs-clip-distance-out-param.shader_test
create mode 100644 tests/spec/glsl-1.30/execution/clipping/vs-clip-distance-retval.shader_test
diff --git a/tests/spec/glsl-1.30/execution/clipping/vs-clip-distance-bulk-assign.shader_test b/tests/spec/glsl-1.30/execution/clipping/vs-clip-distance-bulk-assign.shader_test
new file mode 100644
index 0000000..621f577
--- /dev/null
+++ b/tests/spec/glsl-1.30/execution/clipping/vs-clip-distance-bulk-assign.shader_test
@@ -0,0 +1,102 @@
+# [description]
+# Verify that gl_ClipDistance works properly under bulk array assignment.
+#
+# This test initializes an array of 8 floats to represent clip
+# distances, then copies the values into gl_ClipDistance using bulk
+# array assignment, then copies the values back to an array of 8
+# floats using bulk array assignment.
+#
+# Then it checks two things:
+# - That no data was corrupted when copying the array
+# - That clipping occurred as expected
+#
+# To check that clipping occurred as expected, the 8 gl_ClipDistance
+# values are used to clip a rectangle to an octagon shape.
+#
+# The octagon is centered at (0.5, 0.5), and has a small radius
+# (distance from center to perpendicular edge) of 0.4.
+
+[require]
+GLSL >= 1.30
+
+[vertex shader]
+#version 130
+
+out float gl_ClipDistance[8];
+
+void main(void)
+{
+ gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
+
+ // Compute 2D cordinates relative to a center point of (0.5,
+ // 0.5).
+ vec2 coord = gl_Vertex.xy - vec2(0.5, 0.5);
+
+ float pre_copy[8];
+
+ for (int i = 0; i < 8; ++i) {
+ // Compute a unit vector in the direction i*45deg from
+ // the x axis.
+ float angle = i*(3.141592653589793/4);
+ vec2 u = vec2(cos(angle), sin(angle));
+
+ // Reject points whose 2D coordinate, projected onto
+ // that unit vector, is greater than 0.4.
+ pre_copy[i] = 0.4 - dot(u, coord);
+ }
+
+ gl_ClipDistance = pre_copy;
+
+ float post_copy[8];
+ post_copy = gl_ClipDistance;
+
+ for (int i = 0; i < 8; ++i) {
+ if (pre_copy[i] != gl_ClipDistance[i]) {
+ gl_FrontColor = vec4(1.0, 0.0, 0.0, 1.0);
+ return;
+ } else if (post_copy[i] != gl_ClipDistance[i]) {
+ gl_FrontColor = vec4(1.0, 0.0, 0.0, 1.0);
+ return;
+ }
+ }
+ gl_FrontColor = vec4(0.0, 1.0, 0.0, 1.0);
+}
+
+[fragment shader]
+#version 130
+void main(void)
+{
+ gl_FragColor = gl_Color;
+}
+
+[test]
+ortho 0 1 0 1
+enable GL_CLIP_PLANE0
+enable GL_CLIP_PLANE1
+enable GL_CLIP_PLANE2
+enable GL_CLIP_PLANE3
+enable GL_CLIP_PLANE4
+enable GL_CLIP_PLANE5
+enable GL_CLIP_PLANE6
+enable GL_CLIP_PLANE7
+draw rect 0.0 0.0 1.0 1.0
+
+# Test points inside each octagon edge
+relative probe rgba (0.850, 0.500) (0.0, 1.0, 0.0, 1.0)
+relative probe rgba (0.747, 0.747) (0.0, 1.0, 0.0, 1.0)
+relative probe rgba (0.500, 0.850) (0.0, 1.0, 0.0, 1.0)
+relative probe rgba (0.253, 0.747) (0.0, 1.0, 0.0, 1.0)
+relative probe rgba (0.150, 0.500) (0.0, 1.0, 0.0, 1.0)
+relative probe rgba (0.253, 0.253) (0.0, 1.0, 0.0, 1.0)
+relative probe rgba (0.500, 0.150) (0.0, 1.0, 0.0, 1.0)
+relative probe rgba (0.747, 0.253) (0.0, 1.0, 0.0, 1.0)
+
+# Test points outside each octagon edge
+relative probe rgba (0.950, 0.500) (0.0, 0.0, 0.0, 0.0)
+relative probe rgba (0.818, 0.818) (0.0, 0.0, 0.0, 0.0)
+relative probe rgba (0.500, 0.950) (0.0, 0.0, 0.0, 0.0)
+relative probe rgba (0.182, 0.818) (0.0, 0.0, 0.0, 0.0)
+relative probe rgba (0.050, 0.500) (0.0, 0.0, 0.0, 0.0)
+relative probe rgba (0.182, 0.182) (0.0, 0.0, 0.0, 0.0)
+relative probe rgba (0.500, 0.050) (0.0, 0.0, 0.0, 0.0)
+relative probe rgba (0.818, 0.182) (0.0, 0.0, 0.0, 0.0)
diff --git a/tests/spec/glsl-1.30/execution/clipping/vs-clip-distance-in-param.shader_test b/tests/spec/glsl-1.30/execution/clipping/vs-clip-distance-in-param.shader_test
new file mode 100644
index 0000000..070e971
--- /dev/null
+++ b/tests/spec/glsl-1.30/execution/clipping/vs-clip-distance-in-param.shader_test
@@ -0,0 +1,95 @@
+# [description]
+# Verify that gl_ClipDistance works properly when used as a function
+# "in" parameter.
+#
+# This test sets up gl_ClipDistance to do some clipping. Then it
+# passes gl_ClipDistance as an in parameter to a function.
+#
+# Then it checks two things:
+# - That no data was corrupted when passing the array into the function
+# - That clipping occurred as expected
+#
+# To check that clipping occurred as expected, the 8 gl_ClipDistance
+# values are used to clip a rectangle to an octagon shape.
+#
+# The octagon is centered at (0.5, 0.5), and has a small radius
+# (distance from center to perpendicular edge) of 0.4.
+
+[require]
+GLSL >= 1.30
+
+[vertex shader]
+#version 130
+
+out float gl_ClipDistance[8];
+
+vec4 foo(in float clip_distance_copy[8])
+{
+ for (int i = 0; i < 8; ++i) {
+ if (clip_distance_copy[i] != gl_ClipDistance[i]) {
+ return vec4(1.0, 0.0, 0.0, 1.0);
+ }
+ }
+ return vec4(0.0, 1.0, 0.0, 1.0);
+}
+
+void main(void)
+{
+ gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
+
+ // Compute 2D cordinates relative to a center point of (0.5,
+ // 0.5).
+ vec2 coord = gl_Vertex.xy - vec2(0.5, 0.5);
+
+ for (int i = 0; i < 8; ++i) {
+ // Compute a unit vector in the direction i*45deg from
+ // the x axis.
+ float angle = i*(3.141592653589793/4);
+ vec2 u = vec2(cos(angle), sin(angle));
+
+ // Reject points whose 2D coordinate, projected onto
+ // that unit vector, is greater than 0.4.
+ gl_ClipDistance[i] = 0.4 - dot(u, coord);
+ }
+
+ gl_FrontColor = foo(gl_ClipDistance);
+}
+
+[fragment shader]
+#version 130
+void main(void)
+{
+ gl_FragColor = gl_Color;
+}
+
+[test]
+ortho 0 1 0 1
+enable GL_CLIP_PLANE0
+enable GL_CLIP_PLANE1
+enable GL_CLIP_PLANE2
+enable GL_CLIP_PLANE3
+enable GL_CLIP_PLANE4
+enable GL_CLIP_PLANE5
+enable GL_CLIP_PLANE6
+enable GL_CLIP_PLANE7
+draw rect 0.0 0.0 1.0 1.0
+
+# Test points inside each octagon edge
+relative probe rgba (0.850, 0.500) (0.0, 1.0, 0.0, 1.0)
+relative probe rgba (0.747, 0.747) (0.0, 1.0, 0.0, 1.0)
+relative probe rgba (0.500, 0.850) (0.0, 1.0, 0.0, 1.0)
+relative probe rgba (0.253, 0.747) (0.0, 1.0, 0.0, 1.0)
+relative probe rgba (0.150, 0.500) (0.0, 1.0, 0.0, 1.0)
+relative probe rgba (0.253, 0.253) (0.0, 1.0, 0.0, 1.0)
+relative probe rgba (0.500, 0.150) (0.0, 1.0, 0.0, 1.0)
+relative probe rgba (0.747, 0.253) (0.0, 1.0, 0.0, 1.0)
+
+# Test points outside each octagon edge
+relative probe rgba (0.950, 0.500) (0.0, 0.0, 0.0, 0.0)
+relative probe rgba (0.818, 0.818) (0.0, 0.0, 0.0, 0.0)
+relative probe rgba (0.500, 0.950) (0.0, 0.0, 0.0, 0.0)
+relative probe rgba (0.182, 0.818) (0.0, 0.0, 0.0, 0.0)
+relative probe rgba (0.050, 0.500) (0.0, 0.0, 0.0, 0.0)
+relative probe rgba (0.182, 0.182) (0.0, 0.0, 0.0, 0.0)
+relative probe rgba (0.500, 0.050) (0.0, 0.0, 0.0, 0.0)
+relative probe rgba (0.818, 0.182) (0.0, 0.0, 0.0, 0.0)
diff --git a/tests/spec/glsl-1.30/execution/clipping/vs-clip-distance-inout-param.shader_test b/tests/spec/glsl-1.30/execution/clipping/vs-clip-distance-inout-param.shader_test
new file mode 100644
index 0000000..dd62b06
--- /dev/null
+++ b/tests/spec/glsl-1.30/execution/clipping/vs-clip-distance-inout-param.shader_test
@@ -0,0 +1,104 @@
+# [description]
+# Verify that gl_ClipDistance works properly when used as a function
+# "inout" parameter.
+#
+# This test initializes gl_ClipDistance with the negative of the
+# desired clipping values, then calls a function which negates each
+# element of the array.
+#
+# Then it checks two things:
+# - That the desired values wound up in gl_ClipDistance
+# - That clipping occurred as expected
+#
+# To check that clipping occurred as expected, the 8 gl_ClipDistance
+# values are used to clip a rectangle to an octagon shape.
+#
+# The octagon is centered at (0.5, 0.5), and has a small radius
+# (distance from center to perpendicular edge) of 0.4.
+
+[require]
+GLSL >= 1.30
+
+[vertex shader]
+#version 130
+
+out float gl_ClipDistance[8];
+
+void foo(inout float clip_distance[8])
+{
+ for (int i = 0; i < 8; ++i) {
+ clip_distance[i] = -clip_distance[i];
+ }
+}
+
+void main(void)
+{
+ gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
+
+ // Compute 2D cordinates relative to a center point of (0.5,
+ // 0.5).
+ vec2 coord = gl_Vertex.xy - vec2(0.5, 0.5);
+
+ float desired_values[8];
+
+ for (int i = 0; i < 8; ++i) {
+ // Compute a unit vector in the direction i*45deg from
+ // the x axis.
+ float angle = i*(3.141592653589793/4);
+ vec2 u = vec2(cos(angle), sin(angle));
+
+ // Reject points whose 2D coordinate, projected onto
+ // that unit vector, is greater than 0.4.
+ desired_values[i] = 0.4 - dot(u, coord);
+ gl_ClipDistance[i] = -desired_values[i];
+ }
+
+ foo(gl_ClipDistance);
+
+ for (int i = 0; i < 8; ++i) {
+ if (desired_values[i] != gl_ClipDistance[i]) {
+ gl_FrontColor = vec4(1.0, 0.0, 0.0, 1.0);
+ return;
+ }
+ }
+ gl_FrontColor = vec4(0.0, 1.0, 0.0, 1.0);
+}
+
+[fragment shader]
+#version 130
+void main(void)
+{
+ gl_FragColor = gl_Color;
+}
+
+[test]
+ortho 0 1 0 1
+enable GL_CLIP_PLANE0
+enable GL_CLIP_PLANE1
+enable GL_CLIP_PLANE2
+enable GL_CLIP_PLANE3
+enable GL_CLIP_PLANE4
+enable GL_CLIP_PLANE5
+enable GL_CLIP_PLANE6
+enable GL_CLIP_PLANE7
+draw rect 0.0 0.0 1.0 1.0
+
+# Test points inside each octagon edge
+relative probe rgba (0.850, 0.500) (0.0, 1.0, 0.0, 1.0)
+relative probe rgba (0.747, 0.747) (0.0, 1.0, 0.0, 1.0)
+relative probe rgba (0.500, 0.850) (0.0, 1.0, 0.0, 1.0)
+relative probe rgba (0.253, 0.747) (0.0, 1.0, 0.0, 1.0)
+relative probe rgba (0.150, 0.500) (0.0, 1.0, 0.0, 1.0)
+relative probe rgba (0.253, 0.253) (0.0, 1.0, 0.0, 1.0)
+relative probe rgba (0.500, 0.150) (0.0, 1.0, 0.0, 1.0)
+relative probe rgba (0.747, 0.253) (0.0, 1.0, 0.0, 1.0)
+
+# Test points outside each octagon edge
+relative probe rgba (0.950, 0.500) (0.0, 0.0, 0.0, 0.0)
+relative probe rgba (0.818, 0.818) (0.0, 0.0, 0.0, 0.0)
+relative probe rgba (0.500, 0.950) (0.0, 0.0, 0.0, 0.0)
+relative probe rgba (0.182, 0.818) (0.0, 0.0, 0.0, 0.0)
+relative probe rgba (0.050, 0.500) (0.0, 0.0, 0.0, 0.0)
+relative probe rgba (0.182, 0.182) (0.0, 0.0, 0.0, 0.0)
+relative probe rgba (0.500, 0.050) (0.0, 0.0, 0.0, 0.0)
+relative probe rgba (0.818, 0.182) (0.0, 0.0, 0.0, 0.0)
diff --git a/tests/spec/glsl-1.30/execution/clipping/vs-clip-distance-out-param.shader_test b/tests/spec/glsl-1.30/execution/clipping/vs-clip-distance-out-param.shader_test
new file mode 100644
index 0000000..050b374
--- /dev/null
+++ b/tests/spec/glsl-1.30/execution/clipping/vs-clip-distance-out-param.shader_test
@@ -0,0 +1,103 @@
+# [description]
+# Verify that gl_ClipDistance works properly when used as a function
+# "out" parameter.
+#
+# This test initializes an array of 8 floats to represent clip
+# distances, then passes them to a function which copies the values
+# into gl_ClipDistance.
+#
+# Then it checks two things:
+# - That no data was corrupted when copying the array
+# - That clipping occurred as expected
+#
+# To check that clipping occurred as expected, the 8 gl_ClipDistance
+# values are used to clip a rectangle to an octagon shape.
+#
+# The octagon is centered at (0.5, 0.5), and has a small radius
+# (distance from center to perpendicular edge) of 0.4.
+
+[require]
+GLSL >= 1.30
+
+[vertex shader]
+#version 130
+
+out float gl_ClipDistance[8];
+
+void foo(in float clip_distance_pre_copy[8], out float clip_distance[8])
+{
+ for (int i = 0; i < 8; ++i) {
+ clip_distance[i] = clip_distance_pre_copy[i];
+ }
+}
+
+void main(void)
+{
+ gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
+
+ // Compute 2D cordinates relative to a center point of (0.5,
+ // 0.5).
+ vec2 coord = gl_Vertex.xy - vec2(0.5, 0.5);
+
+ float pre_copy[8];
+
+ for (int i = 0; i < 8; ++i) {
+ // Compute a unit vector in the direction i*45deg from
+ // the x axis.
+ float angle = i*(3.141592653589793/4);
+ vec2 u = vec2(cos(angle), sin(angle));
+
+ // Reject points whose 2D coordinate, projected onto
+ // that unit vector, is greater than 0.4.
+ pre_copy[i] = 0.4 - dot(u, coord);
+ }
+
+ foo(pre_copy, gl_ClipDistance);
+
+ for (int i = 0; i < 8; ++i) {
+ if (pre_copy[i] != gl_ClipDistance[i]) {
+ gl_FrontColor = vec4(1.0, 0.0, 0.0, 1.0);
+ return;
+ }
+ }
+ gl_FrontColor = vec4(0.0, 1.0, 0.0, 1.0);
+}
+
+[fragment shader]
+#version 130
+void main(void)
+{
+ gl_FragColor = gl_Color;
+}
+
+[test]
+ortho 0 1 0 1
+enable GL_CLIP_PLANE0
+enable GL_CLIP_PLANE1
+enable GL_CLIP_PLANE2
+enable GL_CLIP_PLANE3
+enable GL_CLIP_PLANE4
+enable GL_CLIP_PLANE5
+enable GL_CLIP_PLANE6
+enable GL_CLIP_PLANE7
+draw rect 0.0 0.0 1.0 1.0
+
+# Test points inside each octagon edge
+relative probe rgba (0.850, 0.500) (0.0, 1.0, 0.0, 1.0)
+relative probe rgba (0.747, 0.747) (0.0, 1.0, 0.0, 1.0)
+relative probe rgba (0.500, 0.850) (0.0, 1.0, 0.0, 1.0)
+relative probe rgba (0.253, 0.747) (0.0, 1.0, 0.0, 1.0)
+relative probe rgba (0.150, 0.500) (0.0, 1.0, 0.0, 1.0)
+relative probe rgba (0.253, 0.253) (0.0, 1.0, 0.0, 1.0)
+relative probe rgba (0.500, 0.150) (0.0, 1.0, 0.0, 1.0)
+relative probe rgba (0.747, 0.253) (0.0, 1.0, 0.0, 1.0)
+
+# Test points outside each octagon edge
+relative probe rgba (0.950, 0.500) (0.0, 0.0, 0.0, 0.0)
+relative probe rgba (0.818, 0.818) (0.0, 0.0, 0.0, 0.0)
+relative probe rgba (0.500, 0.950) (0.0, 0.0, 0.0, 0.0)
+relative probe rgba (0.182, 0.818) (0.0, 0.0, 0.0, 0.0)
+relative probe rgba (0.050, 0.500) (0.0, 0.0, 0.0, 0.0)
+relative probe rgba (0.182, 0.182) (0.0, 0.0, 0.0, 0.0)
+relative probe rgba (0.500, 0.050) (0.0, 0.0, 0.0, 0.0)
+relative probe rgba (0.818, 0.182) (0.0, 0.0, 0.0, 0.0)
diff --git a/tests/spec/glsl-1.30/execution/clipping/vs-clip-distance-retval.shader_test b/tests/spec/glsl-1.30/execution/clipping/vs-clip-distance-retval.shader_test
new file mode 100644
index 0000000..ee34854
--- /dev/null
+++ b/tests/spec/glsl-1.30/execution/clipping/vs-clip-distance-retval.shader_test
@@ -0,0 +1,129 @@
+# [description]
+# Verify that gl_ClipDistance works properly when used as a function
+# return value.
+#
+# This test initializes an array of 8 floats to represent clip
+# distances, then returns them from a function to main, which assigns
+# the return value to gl_ClipDistance.
+#
+# Then it checks three things:
+# - That no data was corrupted when copying the array
+# - That clipping occurred as expected
+# - That the function was called exactly once
+#
+# The reason for checking that the function was called exactly once is
+# that Mesa unrolls assignments of the form
+#
+# gl_ClipDistance = foo;
+#
+# Into a sequence of componentwise assignments:
+#
+# gl_ClipDistance[0] = foo[0];
+# gl_ClipDistance[1] = foo[1];
+# ...and so on.
+#
+# We need to make sure that this unrolling doesn't cause the function
+# to be called multiple times.
+#
+# To check that clipping occurred as expected, the 8 gl_ClipDistance
+# values are used to clip a rectangle to an octagon shape.
+#
+# The octagon is centered at (0.5, 0.5), and has a small radius
+# (distance from center to perpendicular edge) of 0.4.
+
+[require]
+GLSL >= 1.30
+
+[vertex shader]
+#version 130
+
+out float gl_ClipDistance[8];
+int foo_call_count;
+
+float[8] foo(in float clip_distance_pre_copy[8])
+{
+ ++foo_call_count;
+
+ float tmp[8];
+ for (int i = 0; i < 8; ++i) {
+ tmp[i] = clip_distance_pre_copy[i];
+ }
+ return tmp;
+}
+
+void main(void)
+{
+ gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
+
+ // Compute 2D cordinates relative to a center point of (0.5,
+ // 0.5).
+ vec2 coord = gl_Vertex.xy - vec2(0.5, 0.5);
+
+ float pre_copy[8];
+
+ for (int i = 0; i < 8; ++i) {
+ // Compute a unit vector in the direction i*45deg from
+ // the x axis.
+ float angle = i*(3.141592653589793/4);
+ vec2 u = vec2(cos(angle), sin(angle));
+
+ // Reject points whose 2D coordinate, projected onto
+ // that unit vector, is greater than 0.4.
+ pre_copy[i] = 0.4 - dot(u, coord);
+ }
+
+ foo_call_count = 0;
+ gl_ClipDistance = foo(pre_copy);
+
+ if (foo_call_count != 1) {
+ gl_FrontColor = vec4(1.0, 0.0, 0.0, 1.0);
+ return;
+ }
+
+ for (int i = 0; i < 8; ++i) {
+ if (pre_copy[i] != gl_ClipDistance[i]) {
+ gl_FrontColor = vec4(1.0, 0.0, 0.0, 1.0);
+ return;
+ }
+ }
+ gl_FrontColor = vec4(0.0, 1.0, 0.0, 1.0);
+}
+
+[fragment shader]
+#version 130
+void main(void)
+{
+ gl_FragColor = gl_Color;
+}
+
+[test]
+ortho 0 1 0 1
+enable GL_CLIP_PLANE0
+enable GL_CLIP_PLANE1
+enable GL_CLIP_PLANE2
+enable GL_CLIP_PLANE3
+enable GL_CLIP_PLANE4
+enable GL_CLIP_PLANE5
+enable GL_CLIP_PLANE6
+enable GL_CLIP_PLANE7
+draw rect 0.0 0.0 1.0 1.0
+
+# Test points inside each octagon edge
+relative probe rgba (0.850, 0.500) (0.0, 1.0, 0.0, 1.0)
+relative probe rgba (0.747, 0.747) (0.0, 1.0, 0.0, 1.0)
+relative probe rgba (0.500, 0.850) (0.0, 1.0, 0.0, 1.0)
+relative probe rgba (0.253, 0.747) (0.0, 1.0, 0.0, 1.0)
+relative probe rgba (0.150, 0.500) (0.0, 1.0, 0.0, 1.0)
+relative probe rgba (0.253, 0.253) (0.0, 1.0, 0.0, 1.0)
+relative probe rgba (0.500, 0.150) (0.0, 1.0, 0.0, 1.0)
+relative probe rgba (0.747, 0.253) (0.0, 1.0, 0.0, 1.0)
+
+# Test points outside each octagon edge
+relative probe rgba (0.950, 0.500) (0.0, 0.0, 0.0, 0.0)
+relative probe rgba (0.818, 0.818) (0.0, 0.0, 0.0, 0.0)
+relative probe rgba (0.500, 0.950) (0.0, 0.0, 0.0, 0.0)
+relative probe rgba (0.182, 0.818) (0.0, 0.0, 0.0, 0.0)
+relative probe rgba (0.050, 0.500) (0.0, 0.0, 0.0, 0.0)
+relative probe rgba (0.182, 0.182) (0.0, 0.0, 0.0, 0.0)
+relative probe rgba (0.500, 0.050) (0.0, 0.0, 0.0, 0.0)
+relative probe rgba (0.818, 0.182) (0.0, 0.0, 0.0, 0.0)
--
1.7.6.2
More information about the Piglit
mailing list