summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Romanick <ian.d.romanick@intel.com>2010-08-27 12:23:42 -0700
committerIan Romanick <ian.d.romanick@intel.com>2010-08-27 12:23:42 -0700
commitaf2054470a7f7ed4e45a96bcc2df3dda4a81efe5 (patch)
treed55a40282adc2990bb00e7ef2ac4070a85396002
parent3c955b0a018b0a9693f5a768b3ca03dfba0409ef (diff)
Add GLSL tests for loops with multiple induction variables
In particular, we want to test loops that have multiple induction variables that are used to determine when the loop terminate.
-rw-r--r--tests/all.tests4
-rw-r--r--tests/shaders/glsl-fs-loop-two-counter-01.shader_test30
-rw-r--r--tests/shaders/glsl-fs-loop-two-counter-02.shader_test30
-rw-r--r--tests/shaders/glsl-fs-loop-two-counter-03.shader_test30
-rw-r--r--tests/shaders/glsl-fs-loop-two-counter-04.shader_test30
5 files changed, 124 insertions, 0 deletions
diff --git a/tests/all.tests b/tests/all.tests
index cd4aac17..c865a5b8 100644
--- a/tests/all.tests
+++ b/tests/all.tests
@@ -285,6 +285,10 @@ add_shader_generic(shaders, 'glsl-fs-loop-gt')
add_shader_generic(shaders, 'glsl-fs-loop-le')
add_shader_generic(shaders, 'glsl-fs-loop-lt')
add_plain_test(shaders, 'glsl-fs-loop-nested')
+add_shader_generic(shaders, 'glsl-fs-loop-two-counter-01')
+add_shader_generic(shaders, 'glsl-fs-loop-two-counter-02')
+add_shader_generic(shaders, 'glsl-fs-loop-two-counter-03')
+add_shader_generic(shaders, 'glsl-fs-loop-two-counter-04')
add_shader_generic(shaders, 'glsl-fs-loop-zero-iter')
add_shader_generic(shaders, 'glsl-fs-max')
add_shader_generic(shaders, 'glsl-fs-min')
diff --git a/tests/shaders/glsl-fs-loop-two-counter-01.shader_test b/tests/shaders/glsl-fs-loop-two-counter-01.shader_test
new file mode 100644
index 00000000..f27f4eca
--- /dev/null
+++ b/tests/shaders/glsl-fs-loop-two-counter-01.shader_test
@@ -0,0 +1,30 @@
+[require]
+GL >= 2.0
+GLSL >= 1.10
+
+[vertex shader file]
+glsl-mvp.vert
+
+[fragment shader]
+void main()
+{
+ int j = 0;
+ float g = 0.0;
+
+ for (int i = 0; i < 10; i++) {
+ if (j > 2)
+ break;
+
+ g += 0.2;
+ j++;
+ }
+
+ gl_FragColor = (j != 3) ? vec4(1.0, 0.0, 0.0, 0.0) : vec4(0.0, g, 0.0, 0.0);
+}
+
+[test]
+clear color 0.3 0.3 0.3 0.0
+clear
+ortho
+draw rect 10 10 10 10
+probe rgb 15 15 0.0 0.6 0.0
diff --git a/tests/shaders/glsl-fs-loop-two-counter-02.shader_test b/tests/shaders/glsl-fs-loop-two-counter-02.shader_test
new file mode 100644
index 00000000..61c3bb7c
--- /dev/null
+++ b/tests/shaders/glsl-fs-loop-two-counter-02.shader_test
@@ -0,0 +1,30 @@
+[require]
+GL >= 2.0
+GLSL >= 1.10
+
+[vertex shader file]
+glsl-mvp.vert
+
+[fragment shader]
+void main()
+{
+ int j = 0;
+ float g = 0.0;
+
+ for (int i = 0; i < 10; i++) {
+ g += 0.2;
+ j++;
+
+ if (j > 2)
+ break;
+ }
+
+ gl_FragColor = (j != 3) ? vec4(1.0, 0.0, 0.0, 0.0) : vec4(0.0, g, 0.0, 0.0);
+}
+
+[test]
+clear color 0.3 0.3 0.3 0.0
+clear
+ortho
+draw rect 10 10 10 10
+probe rgb 15 15 0.0 0.6 0.0
diff --git a/tests/shaders/glsl-fs-loop-two-counter-03.shader_test b/tests/shaders/glsl-fs-loop-two-counter-03.shader_test
new file mode 100644
index 00000000..b4cd18fb
--- /dev/null
+++ b/tests/shaders/glsl-fs-loop-two-counter-03.shader_test
@@ -0,0 +1,30 @@
+[require]
+GL >= 2.0
+GLSL >= 1.10
+
+[vertex shader file]
+glsl-mvp.vert
+
+[fragment shader]
+void main()
+{
+ int j = 0;
+ float g = 0.0;
+
+ for (int i = 0; i < 3; i++) {
+ if (j > 9)
+ break;
+
+ g += 0.2;
+ j++;
+ }
+
+ gl_FragColor = (j != 3) ? vec4(1.0, 0.0, 0.0, 0.0) : vec4(0.0, g, 0.0, 0.0);
+}
+
+[test]
+clear color 0.3 0.3 0.3 0.0
+clear
+ortho
+draw rect 10 10 10 10
+probe rgb 15 15 0.0 0.6 0.0
diff --git a/tests/shaders/glsl-fs-loop-two-counter-04.shader_test b/tests/shaders/glsl-fs-loop-two-counter-04.shader_test
new file mode 100644
index 00000000..c015a1ad
--- /dev/null
+++ b/tests/shaders/glsl-fs-loop-two-counter-04.shader_test
@@ -0,0 +1,30 @@
+[require]
+GL >= 2.0
+GLSL >= 1.10
+
+[vertex shader file]
+glsl-mvp.vert
+
+[fragment shader]
+void main()
+{
+ int j = 0;
+ float g = 0.0;
+
+ for (int i = 0; i < 3; i++) {
+ g += 0.2;
+ j++;
+
+ if (j > 9)
+ break;
+ }
+
+ gl_FragColor = (j != 3) ? vec4(1.0, 0.0, 0.0, 0.0) : vec4(0.0, g, 0.0, 0.0);
+}
+
+[test]
+clear color 0.3 0.3 0.3 0.0
+clear
+ortho
+draw rect 10 10 10 10
+probe rgb 15 15 0.0 0.6 0.0