[Piglit] [PATCH 2/6] glsl-1.20 / glsl-1.30: Add tests for uniforms with initializers from a constant
Ian Romanick
idr at freedesktop.org
Wed May 16 14:23:44 PDT 2012
From: Ian Romanick <ian.d.romanick at intel.com>
These tests are similar to the previous tests except the uniforms are
initialized using a variable declared as const. Since any
compile-time constant expression can be used to initialize a uniform,
this should also work.
Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>
---
generated_tests/CMakeLists.txt | 2 +
generated_tests/gen_uniform_initializer_tests.py | 1 +
.../fs-initializer-from-const.template | 42 ++++++++++++++++++++
.../vs-initializer-from-const.template | 42 ++++++++++++++++++++
4 files changed, 87 insertions(+), 0 deletions(-)
create mode 100644 generated_tests/uniform-initializer-templates/fs-initializer-from-const.template
create mode 100644 generated_tests/uniform-initializer-templates/vs-initializer-from-const.template
diff --git a/generated_tests/CMakeLists.txt b/generated_tests/CMakeLists.txt
index 84d648b..33be413 100644
--- a/generated_tests/CMakeLists.txt
+++ b/generated_tests/CMakeLists.txt
@@ -38,6 +38,8 @@ piglit_make_generated_tests(
gen_uniform_initializer_tests.py
uniform-initializer-templates/fs-initializer.template
uniform-initializer-templates/vs-initializer.template
+ uniform-initializer-templates/fs-initializer-from-const.template
+ uniform-initializer-templates/vs-initializer-from-const.template
)
# Add a "gen-tests" target that can be used to generate all the
diff --git a/generated_tests/gen_uniform_initializer_tests.py b/generated_tests/gen_uniform_initializer_tests.py
index 87d7068..81f41bd 100644
--- a/generated_tests/gen_uniform_initializer_tests.py
+++ b/generated_tests/gen_uniform_initializer_tests.py
@@ -169,6 +169,7 @@ random_numbers = (0.78685, 0.89828, 0.36590, 0.92504, 0.48998, 0.27989,
0.72414, 0.88036, 0.54498, 0.32668, 0.02967, 0.12643)
all_templates = ("",
+ "-from-const",
)
bool_types = [("bool", 1), ("bvec2", 2), ("bvec3", 3), ("bvec4", 4)]
diff --git a/generated_tests/uniform-initializer-templates/fs-initializer-from-const.template b/generated_tests/uniform-initializer-templates/fs-initializer-from-const.template
new file mode 100644
index 0000000..dc2a63e
--- /dev/null
+++ b/generated_tests/uniform-initializer-templates/fs-initializer-from-const.template
@@ -0,0 +1,42 @@
+<%!
+def name(type, base):
+ return "{}{}{}".format(base, type[0], type[-1])
+
+%>[require]
+GLSL >= ${"{}.{}".format(major, minor)}
+
+[vertex shader]
+#version ${"{}{}".format(major, minor)}
+
+void main()
+{
+ gl_Position = gl_Vertex;
+}
+
+[fragment shader]
+#version ${"{}{}".format(major, minor)}
+
+% for (type, name, value) in type_list:
+const ${type} ${"".join(["c", name])} = ${value};
+% endfor
+
+% for (type, name, value) in type_list:
+uniform ${type} ${name} = ${"".join(["c", name])};
+% endfor
+
+void main()
+{
+ if ((${type_list[0][1]} == ${type_list[0][2]})
+% for (type, name, value) in type_list[1:-1]:
+ && (${name} == ${value})
+% endfor
+ && (${type_list[-1][1]} == ${type_list[-1][2]})) {
+ gl_FragColor = vec4(0, 1, 0, 1);
+ } else {
+ gl_FragColor = vec4(1, 0, 0, 1);
+ }
+}
+
+[test]
+draw rect -1 -1 2 2
+probe all rgb 0 1 0
diff --git a/generated_tests/uniform-initializer-templates/vs-initializer-from-const.template b/generated_tests/uniform-initializer-templates/vs-initializer-from-const.template
new file mode 100644
index 0000000..4c32edb
--- /dev/null
+++ b/generated_tests/uniform-initializer-templates/vs-initializer-from-const.template
@@ -0,0 +1,42 @@
+[require]
+GLSL >= ${"{}.{}".format(major, minor)}
+
+[vertex shader]
+#version ${"{}{}".format(major, minor)}
+varying vec4 color;
+
+% for (type, name, value) in type_list:
+const ${type} ${"".join(["c", name])} = ${value};
+% endfor
+
+% for (type, name, value) in type_list:
+uniform ${type} ${name} = ${"".join(["c", name])};
+% endfor
+
+void main()
+{
+ if ((${type_list[0][1]} == ${type_list[0][2]})
+% for (type, name, value) in type_list[1:-1]:
+ && (${name} == ${value})
+% endfor
+ && (${type_list[-1][1]} == ${type_list[-1][2]})) {
+ color = vec4(0, 1, 0, 1);
+ } else {
+ color = vec4(1, 0, 0, 1);
+ }
+
+ gl_Position = gl_Vertex;
+}
+
+[fragment shader]
+#version ${"{}{}".format(major, minor)}
+varying vec4 color;
+
+void main()
+{
+ gl_FragColor = color;
+}
+
+[test]
+draw rect -1 -1 2 2
+probe all rgb 0 1 0
--
1.7.6.5
More information about the Piglit
mailing list