From: Ian Romanick <[email protected]> In these tests the uniforms are initialized with one set of values in the shader source, but the values are changed using the GL API. The shaders expect the values set by the GL API.
Signed-off-by: Ian Romanick <[email protected]> --- generated_tests/CMakeLists.txt | 2 + generated_tests/gen_uniform_initializer_tests.py | 1 + .../fs-initializer-set-by-API.template | 41 ++++++++++++++++++ .../vs-initializer-set-by-API.template | 45 ++++++++++++++++++++ 4 files changed, 89 insertions(+), 0 deletions(-) create mode 100644 generated_tests/uniform-initializer-templates/fs-initializer-set-by-API.template create mode 100644 generated_tests/uniform-initializer-templates/vs-initializer-set-by-API.template diff --git a/generated_tests/CMakeLists.txt b/generated_tests/CMakeLists.txt index f9e07a1..7b9e99a 100644 --- a/generated_tests/CMakeLists.txt +++ b/generated_tests/CMakeLists.txt @@ -40,6 +40,8 @@ piglit_make_generated_tests( uniform-initializer-templates/vs-initializer.template uniform-initializer-templates/fs-initializer-from-const.template uniform-initializer-templates/vs-initializer-from-const.template + uniform-initializer-templates/fs-initializer-set-by-other-API.template + uniform-initializer-templates/vs-initializer-set-by-other-API.template uniform-initializer-templates/fs-initializer-set-by-other-stage.template uniform-initializer-templates/vs-initializer-set-by-other-stage.template ) diff --git a/generated_tests/gen_uniform_initializer_tests.py b/generated_tests/gen_uniform_initializer_tests.py index d9fedd2..9bfb7c5 100644 --- a/generated_tests/gen_uniform_initializer_tests.py +++ b/generated_tests/gen_uniform_initializer_tests.py @@ -170,6 +170,7 @@ random_numbers = (0.78685, 0.89828, 0.36590, 0.92504, 0.48998, 0.27989, all_templates = ("", "-from-const", + "-set-by-other-API", "-set-by-other-stage", ) diff --git a/generated_tests/uniform-initializer-templates/fs-initializer-set-by-API.template b/generated_tests/uniform-initializer-templates/fs-initializer-set-by-API.template new file mode 100644 index 0000000..2754e36 --- /dev/null +++ b/generated_tests/uniform-initializer-templates/fs-initializer-set-by-API.template @@ -0,0 +1,41 @@ +<%! +def constructor(type, values): + return "{}({})".format(type, ", ".join(values)) + +%>[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: +uniform ${type} ${name} = ${value}; +% endfor + +void main() +{ + if ((${type_list[0][1]} == ${constructor(type_list[0][0], api_types[0][2])}) +% for i in range(1, len(type_list) -1): + && (${type_list[i][1]} == ${constructor(type_list[i][0], api_types[i][2])}) +% endfor + && (${type_list[-1][1]} == ${constructor(type_list[-1][0], api_types[-1][2])})) { + gl_FragColor = vec4(0, 1, 0, 1); + } else { + gl_FragColor = vec4(1, 0, 0, 1); + } +} + +[test] +% for (api_type, name, values) in api_types: +uniform ${api_type} ${name} ${" ".join(values)} +% endfor +draw rect -1 -1 2 2 +probe all rgb 0 1 0 diff --git a/generated_tests/uniform-initializer-templates/vs-initializer-set-by-API.template b/generated_tests/uniform-initializer-templates/vs-initializer-set-by-API.template new file mode 100644 index 0000000..16ad937 --- /dev/null +++ b/generated_tests/uniform-initializer-templates/vs-initializer-set-by-API.template @@ -0,0 +1,45 @@ +<%! +def constructor(type, values): + return "{}({})".format(type, ", ".join(values)) + +%>[require] +GLSL >= ${"{}.{}".format(major, minor)} + +[vertex shader] +#version ${"{}{}".format(major, minor)} +varying vec4 color; + +% for (type, name, value) in type_list: +uniform ${type} ${name} = ${value}; +% endfor + +void main() +{ + if ((${type_list[0][1]} == ${constructor(type_list[0][0], api_types[0][2])}) +% for i in range(1, len(type_list) -1): + && (${type_list[i][1]} == ${constructor(type_list[i][0], api_types[i][2])}) +% endfor + && (${type_list[-1][1]} == ${constructor(type_list[-1][0], api_types[-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] +% for (api_type, name, values) in api_types: +uniform ${api_type} ${name} ${" ".join(values)} +% endfor +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
