Modifies existing early return tests to test both
code paths (with and without an early return).

Adds an additional test where the early return ends
up being the final instruction.

Per feedback on this mesa patch:
https://lists.freedesktop.org/archives/mesa-dev/2016-April/114706.html

Signed-off-by: Lars Hamre <[email protected]>

---

CC: Timothy Arceri <[email protected]>

NOTE: someone with access will need to commit this
      after the review process

 .../vs-float-main-return-at-end.shader_test        | 31 ++++++++++++++++++++++
 .../execution/vs-float-main-return.shader_test     |  3 +++
 .../execution/vs-vec2-main-return.shader_test      |  3 +++
 .../execution/vs-vec3-main-return.shader_test      |  3 +++
 .../execution/vs-vec4-main-return.shader_test      |  3 +++
 5 files changed, 43 insertions(+)
 create mode 100644 
tests/spec/glsl-1.10/execution/vs-float-main-return-at-end.shader_test

diff --git 
a/tests/spec/glsl-1.10/execution/vs-float-main-return-at-end.shader_test 
b/tests/spec/glsl-1.10/execution/vs-float-main-return-at-end.shader_test
new file mode 100644
index 0000000..a83fa7f
--- /dev/null
+++ b/tests/spec/glsl-1.10/execution/vs-float-main-return-at-end.shader_test
@@ -0,0 +1,31 @@
+[require]
+GLSL >= 1.10
+
+[vertex shader]
+uniform int early_return;
+varying float foo1;
+void main()
+{
+       gl_Position = gl_Vertex;
+       foo1 = 0.5;
+       if (early_return != 0) {
+               foo1 = 0.2;
+               return;
+       }
+}
+
+[fragment shader]
+varying float foo1;
+void main()
+{
+       gl_FragColor = vec4(foo1);
+}
+
+[test]
+
+uniform int early_return 1
+draw rect -1 -1 2 2
+probe all rgba 0.2 0.2 0.2 0.2
+uniform int early_return 0
+draw rect -1 -1 2 2
+probe all rgba 0.5 0.5 0.5 0.5
diff --git a/tests/spec/glsl-1.10/execution/vs-float-main-return.shader_test 
b/tests/spec/glsl-1.10/execution/vs-float-main-return.shader_test
index e15e12b..d385571 100644
--- a/tests/spec/glsl-1.10/execution/vs-float-main-return.shader_test
+++ b/tests/spec/glsl-1.10/execution/vs-float-main-return.shader_test
@@ -25,3 +25,6 @@ void main()
 uniform int early_return 1
 draw rect -1 -1 2 2
 probe all rgba 0.5 0.5 0.5 0.5
+uniform int early_return 0
+draw rect -1 -1 2 2
+probe all rgba 0.2 0.2 0.2 0.2
diff --git a/tests/spec/glsl-1.10/execution/vs-vec2-main-return.shader_test 
b/tests/spec/glsl-1.10/execution/vs-vec2-main-return.shader_test
index ada67ef..df74500 100644
--- a/tests/spec/glsl-1.10/execution/vs-vec2-main-return.shader_test
+++ b/tests/spec/glsl-1.10/execution/vs-vec2-main-return.shader_test
@@ -26,4 +26,7 @@ void main()
 uniform int early_return 1
 draw rect -1 -1 2 2
 probe all rgba 0.5 0.5 0.5 0.5
+uniform int early_return 0
+draw rect -1 -1 2 2
+probe all rgba 0.2 0.2 0.2 0.2

diff --git a/tests/spec/glsl-1.10/execution/vs-vec3-main-return.shader_test 
b/tests/spec/glsl-1.10/execution/vs-vec3-main-return.shader_test
index a688934..28c3faa 100644
--- a/tests/spec/glsl-1.10/execution/vs-vec3-main-return.shader_test
+++ b/tests/spec/glsl-1.10/execution/vs-vec3-main-return.shader_test
@@ -25,4 +25,7 @@ void main()
 uniform int early_return 1
 draw rect -1 -1 2 2
 probe all rgba 0.5 0.5 0.5 0.5
+uniform int early_return 0
+draw rect -1 -1 2 2
+probe all rgba 0.2 0.2 0.2 0.2

diff --git a/tests/spec/glsl-1.10/execution/vs-vec4-main-return.shader_test 
b/tests/spec/glsl-1.10/execution/vs-vec4-main-return.shader_test
index b5b02dc..fc22c4b 100644
--- a/tests/spec/glsl-1.10/execution/vs-vec4-main-return.shader_test
+++ b/tests/spec/glsl-1.10/execution/vs-vec4-main-return.shader_test
@@ -25,4 +25,7 @@ void main()
 uniform int early_return 1
 draw rect -1 -1 2 2
 probe all rgba 0.5 0.5 0.5 0.5
+uniform int early_return 0
+draw rect -1 -1 2 2
+probe all rgba 0.2 0.2 0.2 0.2

--
2.5.5

_______________________________________________
Piglit mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/piglit

Reply via email to