[Piglit] [PATCH] glsl-1.10/execution: Extend tests for early returns

Lars Hamre chemecse at gmail.com
Wed Apr 27 03:00:27 UTC 2016


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 <chemecse at gmail.com>

---

CC: Timothy Arceri <timothy.arceri at collabora.com>

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



More information about the Piglit mailing list