[Piglit] [PATCH] glsl-1.10: Add tests for a bunch of i965 code generation bugs.

Eric Anholt eric at anholt.net
Wed Aug 8 16:38:10 PDT 2012


It turns out that everywhere I looked, there were bugs related to
saturate handling with math.
---
 .../execution/fs-saturate-exp2.shader_test         |   19 +++++++++++++++
 .../execution/fs-saturate-pow.shader_test          |   21 ++++++++++++++++
 .../execution/fs-saturate-sqrt.shader_test         |   19 +++++++++++++++
 .../execution/vs-saturate-exp2.shader_test         |   23 ++++++++++++++++++
 .../execution/vs-saturate-pow.shader_test          |   25 ++++++++++++++++++++
 .../execution/vs-saturate-sqrt.shader_test         |   23 ++++++++++++++++++
 6 files changed, 130 insertions(+)
 create mode 100644 tests/spec/glsl-1.10/execution/fs-saturate-exp2.shader_test
 create mode 100644 tests/spec/glsl-1.10/execution/fs-saturate-pow.shader_test
 create mode 100644 tests/spec/glsl-1.10/execution/fs-saturate-sqrt.shader_test
 create mode 100644 tests/spec/glsl-1.10/execution/vs-saturate-exp2.shader_test
 create mode 100644 tests/spec/glsl-1.10/execution/vs-saturate-pow.shader_test
 create mode 100644 tests/spec/glsl-1.10/execution/vs-saturate-sqrt.shader_test

diff --git a/tests/spec/glsl-1.10/execution/fs-saturate-exp2.shader_test b/tests/spec/glsl-1.10/execution/fs-saturate-exp2.shader_test
new file mode 100644
index 0000000..fd5a26f
--- /dev/null
+++ b/tests/spec/glsl-1.10/execution/fs-saturate-exp2.shader_test
@@ -0,0 +1,19 @@
+[vertex shader]
+void main()
+{
+	gl_Position = gl_Vertex;
+}
+
+[fragment shader]
+uniform vec4 v;
+
+void main()
+{
+	gl_FragColor = 0.25 + clamp(exp2(v), 0.0, 1.0) * 0.5;
+}
+
+[test]
+uniform vec4 v -2 -1 1 2
+
+draw rect -1 -1 2 2
+probe all rgba 0.375 0.5 0.75 0.75
diff --git a/tests/spec/glsl-1.10/execution/fs-saturate-pow.shader_test b/tests/spec/glsl-1.10/execution/fs-saturate-pow.shader_test
new file mode 100644
index 0000000..78e2d5d
--- /dev/null
+++ b/tests/spec/glsl-1.10/execution/fs-saturate-pow.shader_test
@@ -0,0 +1,21 @@
+[vertex shader]
+void main()
+{
+	gl_Position = gl_Vertex;
+}
+
+[fragment shader]
+uniform vec4 x;
+uniform vec4 y;
+
+void main()
+{
+	gl_FragColor = 0.25 + clamp(pow(x, y), 0.0, 1.0) * 0.5;
+}
+
+[test]
+uniform vec4 x 0.5 2.0 0.5 1.0
+uniform vec4 y 2.0 0.5 -1.0 1.0
+
+draw rect -1 -1 2 2
+probe all rgba 0.375 0.75 0.75 0.75
diff --git a/tests/spec/glsl-1.10/execution/fs-saturate-sqrt.shader_test b/tests/spec/glsl-1.10/execution/fs-saturate-sqrt.shader_test
new file mode 100644
index 0000000..013e007
--- /dev/null
+++ b/tests/spec/glsl-1.10/execution/fs-saturate-sqrt.shader_test
@@ -0,0 +1,19 @@
+[vertex shader]
+void main()
+{
+	gl_Position = gl_Vertex;
+}
+
+[fragment shader]
+uniform vec4 v;
+
+void main()
+{
+	gl_FragColor = 0.25 + clamp(sqrt(v), 0.0, 1.0) * 0.5;
+}
+
+[test]
+uniform vec4 v 0.25 1.0 2.0 0.25
+
+draw rect -1 -1 2 2
+probe all rgba 0.5 0.75 0.75 0.5
diff --git a/tests/spec/glsl-1.10/execution/vs-saturate-exp2.shader_test b/tests/spec/glsl-1.10/execution/vs-saturate-exp2.shader_test
new file mode 100644
index 0000000..de25327
--- /dev/null
+++ b/tests/spec/glsl-1.10/execution/vs-saturate-exp2.shader_test
@@ -0,0 +1,23 @@
+[vertex shader]
+uniform vec4 v;
+varying vec4 color;
+
+void main()
+{
+	gl_Position = gl_Vertex;
+	color = 0.25 + clamp(exp2(v), 0.0, 1.0) * 0.5;
+}
+
+[fragment shader]
+varying vec4 color;
+
+void main()
+{
+	gl_FragColor = color;
+}
+
+[test]
+uniform vec4 v -2 -1 1 2
+
+draw rect -1 -1 2 2
+probe all rgba 0.375 0.5 0.75 0.75
diff --git a/tests/spec/glsl-1.10/execution/vs-saturate-pow.shader_test b/tests/spec/glsl-1.10/execution/vs-saturate-pow.shader_test
new file mode 100644
index 0000000..72decdc
--- /dev/null
+++ b/tests/spec/glsl-1.10/execution/vs-saturate-pow.shader_test
@@ -0,0 +1,25 @@
+[vertex shader]
+uniform vec4 x;
+uniform vec4 y;
+varying vec4 color;
+
+void main()
+{
+	gl_Position = gl_Vertex;
+	color = 0.25 + clamp(pow(x, y), 0.0, 1.0) * 0.5;
+}
+
+[fragment shader]
+varying vec4 color;
+
+void main()
+{
+	gl_FragColor = color;
+}
+
+[test]
+uniform vec4 x 0.5 2.0 0.5 1.0
+uniform vec4 y 2.0 0.5 -1.0 1.0
+
+draw rect -1 -1 2 2
+probe all rgba 0.375 0.75 0.75 0.75
diff --git a/tests/spec/glsl-1.10/execution/vs-saturate-sqrt.shader_test b/tests/spec/glsl-1.10/execution/vs-saturate-sqrt.shader_test
new file mode 100644
index 0000000..13fd7ae
--- /dev/null
+++ b/tests/spec/glsl-1.10/execution/vs-saturate-sqrt.shader_test
@@ -0,0 +1,23 @@
+[vertex shader]
+uniform vec4 v;
+varying vec4 color;
+
+void main()
+{
+	gl_Position = gl_Vertex;
+	color = 0.25 + clamp(sqrt(v), 0.0, 1.0) * 0.5;
+}
+
+[fragment shader]
+varying vec4 color;
+
+void main()
+{
+	gl_FragColor = color;
+}
+
+[test]
+uniform vec4 v 0.25 1.0 2.0 0.25
+
+draw rect -1 -1 2 2
+probe all rgba 0.5 0.75 0.75 0.5
-- 
1.7.10.4



More information about the Piglit mailing list