From: Ian Romanick <[email protected]> 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 <[email protected]> --- 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 _______________________________________________ Piglit mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/piglit
