aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Anholt <eric@anholt.net>2012-08-06 14:24:18 -0700
committerEric Anholt <eric@anholt.net>2012-08-23 13:15:53 -0700
commit060d3587db7da69cbb5cf8d635a62fd3d3555edd (patch)
treebe24221aac05c177b78ba2a2d9836df70d59fbdb
parent590ab8f6c424e17db2f2bf3d3abf9227ea108ece (diff)
downloadpiglit-060d3587db7da69cbb5cf8d635a62fd3d3555edd.tar.gz
glsl-1.10: Add tests for a bunch of i965 code generation bugs.
It turns out that everywhere I looked, there were bugs related to saturate handling with math.
-rw-r--r--tests/spec/glsl-1.10/execution/fs-saturate-exp2.shader_test19
-rw-r--r--tests/spec/glsl-1.10/execution/fs-saturate-pow.shader_test21
-rw-r--r--tests/spec/glsl-1.10/execution/fs-saturate-sqrt.shader_test19
-rw-r--r--tests/spec/glsl-1.10/execution/vs-saturate-exp2.shader_test23
-rw-r--r--tests/spec/glsl-1.10/execution/vs-saturate-pow.shader_test25
-rw-r--r--tests/spec/glsl-1.10/execution/vs-saturate-sqrt.shader_test23
6 files changed, 130 insertions, 0 deletions
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 00000000..fd5a26f3
--- /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 00000000..78e2d5db
--- /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 00000000..013e007d
--- /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 00000000..de253279
--- /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 00000000..72decdca
--- /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 00000000..13fd7ae5
--- /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