[Piglit] [PATCH] Add basic execution tests for GL_AMD_shader_trinary_minmax.

Petri Latvala petri.latvala at intel.com
Wed Apr 30 02:28:02 PDT 2014


Signed-off-by: Petri Latvala <petri.latvala at intel.com>
---

These three tests are very simple tests for
GL_AMD_shader_trinary_minmax functions that I used for
regression-testing Mesa optimizations when constants are involved in
the calls.

Tested on Mesa/Haswell, the tests pass.

I will need someone to push this if it's accepted.


 tests/all.py                                       |  3 ++
 .../execution/max3-basic.shader_test               | 50 ++++++++++++++++++++++
 .../execution/mid3-basic.shader_test               | 50 ++++++++++++++++++++++
 .../execution/min3-basic.shader_test               | 50 ++++++++++++++++++++++
 4 files changed, 153 insertions(+)
 create mode 100644 tests/spec/amd_shader_trinary_minmax/execution/max3-basic.shader_test
 create mode 100644 tests/spec/amd_shader_trinary_minmax/execution/mid3-basic.shader_test
 create mode 100644 tests/spec/amd_shader_trinary_minmax/execution/min3-basic.shader_test

diff --git a/tests/all.py b/tests/all.py
index 553ae76..a67e725 100644
--- a/tests/all.py
+++ b/tests/all.py
@@ -1434,6 +1434,9 @@ spec['AMD_shader_trinary_minmax'] = {}
 import_glsl_parser_tests(spec['AMD_shader_trinary_minmax'],
 			 os.path.join(testsDir, 'spec', 'amd_shader_trinary_minmax'),
 			 [''])
+add_shader_test_dir(spec['AMD_shader_trinary_minmax'],
+                    os.path.join(testsDir, 'spec', 'amd_shader_trinary_minmax'),
+                    recursive=True)
 
 # Group ARB_point_sprite
 arb_point_sprite = {}
diff --git a/tests/spec/amd_shader_trinary_minmax/execution/max3-basic.shader_test b/tests/spec/amd_shader_trinary_minmax/execution/max3-basic.shader_test
new file mode 100644
index 0000000..be28d7b
--- /dev/null
+++ b/tests/spec/amd_shader_trinary_minmax/execution/max3-basic.shader_test
@@ -0,0 +1,50 @@
+[require]
+GLSL >= 1.10
+GL_AMD_shader_trinary_minmax
+
+[vertex shader passthrough]
+
+[fragment shader]
+
+#extension GL_AMD_shader_trinary_minmax : require
+
+uniform float zero;
+uniform float one;
+uniform float middle;
+
+float test_all_constants()
+{
+	return max3(0.0, 1.0, 0.5);
+}
+
+float test_two_constants()
+{
+	return max3(0.5, one, 0.0);
+}
+
+float test_one_constant()
+{
+	return max3(one, zero, 0.5);
+}
+
+float test_no_constants()
+{
+	return max3(middle, one, zero);
+}
+
+void main()
+{
+	float r = test_all_constants();
+	float g = test_two_constants();
+	float b = test_one_constant();
+	float a = test_no_constants();
+
+	gl_FragColor = vec4(r, g, b, a);
+}
+
+[test]
+uniform float zero 0.0
+uniform float one 1.0
+uniform float middle 0.5
+draw rect -1 -1 2 2
+probe all rgba 1.0 1.0 1.0 1.0
diff --git a/tests/spec/amd_shader_trinary_minmax/execution/mid3-basic.shader_test b/tests/spec/amd_shader_trinary_minmax/execution/mid3-basic.shader_test
new file mode 100644
index 0000000..719f138
--- /dev/null
+++ b/tests/spec/amd_shader_trinary_minmax/execution/mid3-basic.shader_test
@@ -0,0 +1,50 @@
+[require]
+GLSL >= 1.10
+GL_AMD_shader_trinary_minmax
+
+[vertex shader passthrough]
+
+[fragment shader]
+
+#extension GL_AMD_shader_trinary_minmax : require
+
+uniform float zero;
+uniform float one;
+uniform float middle;
+
+float test_all_constants()
+{
+	return mid3(0.0, 1.0, 0.5);
+}
+
+float test_two_constants()
+{
+	return mid3(0.5, one, 0.0);
+}
+
+float test_one_constant()
+{
+	return mid3(one, zero, 0.5);
+}
+
+float test_no_constants()
+{
+	return mid3(middle, one, zero);
+}
+
+void main()
+{
+	float r = test_all_constants();
+	float g = test_two_constants();
+	float b = test_one_constant();
+	float a = test_no_constants();
+
+	gl_FragColor = vec4(r, g, b, a);
+}
+
+[test]
+uniform float zero 0.0
+uniform float one 1.0
+uniform float middle 0.5
+draw rect -1 -1 2 2
+probe all rgba 0.5 0.5 0.5 0.5
diff --git a/tests/spec/amd_shader_trinary_minmax/execution/min3-basic.shader_test b/tests/spec/amd_shader_trinary_minmax/execution/min3-basic.shader_test
new file mode 100644
index 0000000..3589b8e
--- /dev/null
+++ b/tests/spec/amd_shader_trinary_minmax/execution/min3-basic.shader_test
@@ -0,0 +1,50 @@
+[require]
+GLSL >= 1.10
+GL_AMD_shader_trinary_minmax
+
+[vertex shader passthrough]
+
+[fragment shader]
+
+#extension GL_AMD_shader_trinary_minmax : require
+
+uniform float zero;
+uniform float one;
+uniform float middle;
+
+float test_all_constants()
+{
+	return min3(0.0, 1.0, 0.5);
+}
+
+float test_two_constants()
+{
+	return min3(0.5, one, 0.0);
+}
+
+float test_one_constant()
+{
+	return min3(one, zero, 0.5);
+}
+
+float test_no_constants()
+{
+	return min3(middle, one, zero);
+}
+
+void main()
+{
+	float r = test_all_constants();
+	float g = test_two_constants();
+	float b = test_one_constant();
+	float a = test_no_constants();
+
+	gl_FragColor = vec4(r, g, b, a);
+}
+
+[test]
+uniform float zero 0.0
+uniform float one 1.0
+uniform float middle 0.5
+draw rect -1 -1 2 2
+probe all rgba 0.0 0.0 0.0 0.0
-- 
1.9.0



More information about the Piglit mailing list