[Piglit] [PATCH 2/2] arb_gpu_shader_fp64: Explicit conversion from double to float
Ian Romanick
idr at freedesktop.org
Mon Feb 22 20:23:35 UTC 2016
On 02/20/2016 03:38 AM, Andres Gomez wrote:
> Double and float derived types also need explicit
> conversions.
>
> Signed-off-by: Andres Gomez <agomez at igalia.com>
> ---
> .../gen_constant_array_size_tests_fp64.py | 2 +-
> .../compiler/double-loop-iterator.vert | 4 +--
> .../compiler/implicit-conversion-bad.vert | 30 ----------------------
> .../compiler/implicit-conversion-double-float.vert | 20 +++++++++++++++
> .../compiler/implicit-conversion-dvec2-vec2.vert | 20 +++++++++++++++
> .../compiler/implicit-conversion-dvec3-vec3.vert | 20 +++++++++++++++
> .../compiler/implicit-conversion-dvec4-vec4.vert | 20 +++++++++++++++
I'd like to see "bad" in the names of these tests. It makes it a little
more obvious which result is expected. Either way, this series is
Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
> .../execution/check-explicit-location.c | 2 +-
> 8 files changed, 84 insertions(+), 34 deletions(-)
> delete mode 100644 tests/spec/arb_gpu_shader_fp64/compiler/implicit-conversion-bad.vert
> create mode 100644 tests/spec/arb_gpu_shader_fp64/compiler/implicit-conversion-double-float.vert
> create mode 100644 tests/spec/arb_gpu_shader_fp64/compiler/implicit-conversion-dvec2-vec2.vert
> create mode 100644 tests/spec/arb_gpu_shader_fp64/compiler/implicit-conversion-dvec3-vec3.vert
> create mode 100644 tests/spec/arb_gpu_shader_fp64/compiler/implicit-conversion-dvec4-vec4.vert
>
> diff --git a/generated_tests/gen_constant_array_size_tests_fp64.py b/generated_tests/gen_constant_array_size_tests_fp64.py
> index fb9d801..72407c6 100644
> --- a/generated_tests/gen_constant_array_size_tests_fp64.py
> +++ b/generated_tests/gen_constant_array_size_tests_fp64.py
> @@ -165,7 +165,7 @@ class ParserTest(object):
> shader += ' double[{0} ? 1 : -1] array{1};\n'.format(
> self.make_condition(test_vector), i)
> lengths.append('array{0}.length()'.format(i))
> - shader += ' {0} = dvec4({1});\n'.format(
> + shader += ' {0} = vec4({1});\n'.format(
> self.output_var(), ' + '.join(lengths))
> shader += '}\n'
> return shader
> diff --git a/tests/spec/arb_gpu_shader_fp64/compiler/double-loop-iterator.vert b/tests/spec/arb_gpu_shader_fp64/compiler/double-loop-iterator.vert
> index 7756c8b..9c691f0 100644
> --- a/tests/spec/arb_gpu_shader_fp64/compiler/double-loop-iterator.vert
> +++ b/tests/spec/arb_gpu_shader_fp64/compiler/double-loop-iterator.vert
> @@ -12,11 +12,11 @@
> void test() {
>
> double k;
> - vec4 vertex;
> + dvec4 vertex;
>
> for (k = 0.0lf; k < 1.0lf; k += 0.1lf) {
> vertex.x += k;
> }
>
> - gl_Position = vertex;
> + gl_Position = vec4(vertex);
> }
> diff --git a/tests/spec/arb_gpu_shader_fp64/compiler/implicit-conversion-bad.vert b/tests/spec/arb_gpu_shader_fp64/compiler/implicit-conversion-bad.vert
> deleted file mode 100644
> index 95b85c8..0000000
> --- a/tests/spec/arb_gpu_shader_fp64/compiler/implicit-conversion-bad.vert
> +++ /dev/null
> @@ -1,30 +0,0 @@
> -// [config]
> -// expect_result: fail
> -// glsl_version: 1.50
> -// require_extensions: GL_ARB_gpu_shader_fp64
> -// [end config]
> -//
> -// Test double -> float implicit conversion doesn't happen
> -// this tests a bug in mesa
> -
> -#version 150
> -#extension GL_ARB_gpu_shader_fp64 : enable
> -
> -float _float = 0.0f;
> -vec2 _vec2 = vec2(0.0f);
> -vec3 _vec3 = vec3(0.0f);
> -vec4 _vec4 = vec4(0.0f);
> -
> -double _double = 0.0lf;
> -dvec2 _dvec2 = dvec2(0.0lf);
> -dvec3 _dvec3 = dvec3(0.0lf);
> -dvec4 _dvec4 = dvec4(0.0lf);
> -
> -void test() {
> -
> - /* int can be converted to double (and for vectors of same) */
> - _float = _double;
> - _vec2 = _dvec2;
> - _vec3 = _dvec3;
> - _vec4 = _dvec4;
> -}
> diff --git a/tests/spec/arb_gpu_shader_fp64/compiler/implicit-conversion-double-float.vert b/tests/spec/arb_gpu_shader_fp64/compiler/implicit-conversion-double-float.vert
> new file mode 100644
> index 0000000..3e2b15a
> --- /dev/null
> +++ b/tests/spec/arb_gpu_shader_fp64/compiler/implicit-conversion-double-float.vert
> @@ -0,0 +1,20 @@
> +// [config]
> +// expect_result: fail
> +// glsl_version: 1.50
> +// require_extensions: GL_ARB_gpu_shader_fp64
> +// [end config]
> +//
> +// Test double -> float implicit conversion doesn't happen
> +
> +#version 150
> +#extension GL_ARB_gpu_shader_fp64 : enable
> +
> +float _float = 0.0f;
> +
> +double _double = 0.0lf;
> +
> +void test() {
> +
> + /* double cannot be converted to float (and for vectors of same) */
> + _float = _double;
> +}
> diff --git a/tests/spec/arb_gpu_shader_fp64/compiler/implicit-conversion-dvec2-vec2.vert b/tests/spec/arb_gpu_shader_fp64/compiler/implicit-conversion-dvec2-vec2.vert
> new file mode 100644
> index 0000000..225636d
> --- /dev/null
> +++ b/tests/spec/arb_gpu_shader_fp64/compiler/implicit-conversion-dvec2-vec2.vert
> @@ -0,0 +1,20 @@
> +// [config]
> +// expect_result: fail
> +// glsl_version: 1.50
> +// require_extensions: GL_ARB_gpu_shader_fp64
> +// [end config]
> +//
> +// Test double -> float implicit conversion doesn't happen
> +
> +#version 150
> +#extension GL_ARB_gpu_shader_fp64 : enable
> +
> +vec2 _vec2 = vec2(0.0f);
> +
> +dvec2 _dvec2 = dvec2(0.0lf);
> +
> +void test() {
> +
> + /* double cannot be converted to float (and for vectors of same) */
> + _vec2 = _dvec2;
> +}
> diff --git a/tests/spec/arb_gpu_shader_fp64/compiler/implicit-conversion-dvec3-vec3.vert b/tests/spec/arb_gpu_shader_fp64/compiler/implicit-conversion-dvec3-vec3.vert
> new file mode 100644
> index 0000000..cf8583e
> --- /dev/null
> +++ b/tests/spec/arb_gpu_shader_fp64/compiler/implicit-conversion-dvec3-vec3.vert
> @@ -0,0 +1,20 @@
> +// [config]
> +// expect_result: fail
> +// glsl_version: 1.50
> +// require_extensions: GL_ARB_gpu_shader_fp64
> +// [end config]
> +//
> +// Test double -> float implicit conversion doesn't happen
> +
> +#version 150
> +#extension GL_ARB_gpu_shader_fp64 : enable
> +
> +vec3 _vec3 = vec3(0.0f);
> +
> +dvec3 _dvec3 = dvec3(0.0lf);
> +
> +void test() {
> +
> + /* double cannot be converted to float (and for vectors of same) */
> + _vec3 = _dvec3;
> +}
> diff --git a/tests/spec/arb_gpu_shader_fp64/compiler/implicit-conversion-dvec4-vec4.vert b/tests/spec/arb_gpu_shader_fp64/compiler/implicit-conversion-dvec4-vec4.vert
> new file mode 100644
> index 0000000..dd394e5
> --- /dev/null
> +++ b/tests/spec/arb_gpu_shader_fp64/compiler/implicit-conversion-dvec4-vec4.vert
> @@ -0,0 +1,20 @@
> +// [config]
> +// expect_result: fail
> +// glsl_version: 1.50
> +// require_extensions: GL_ARB_gpu_shader_fp64
> +// [end config]
> +//
> +// Test double -> float implicit conversion doesn't happen
> +
> +#version 150
> +#extension GL_ARB_gpu_shader_fp64 : enable
> +
> +vec4 _vec4 = vec4(0.0f);
> +
> +dvec4 _dvec4 = dvec4(0.0lf);
> +
> +void test() {
> +
> + /* double cannot be converted to float (and for vectors of same) */
> + _vec4 = _dvec4;
> +}
> diff --git a/tests/spec/arb_vertex_attrib_64bit/execution/check-explicit-location.c b/tests/spec/arb_vertex_attrib_64bit/execution/check-explicit-location.c
> index 599ac8a..509f60b 100644
> --- a/tests/spec/arb_vertex_attrib_64bit/execution/check-explicit-location.c
> +++ b/tests/spec/arb_vertex_attrib_64bit/execution/check-explicit-location.c
> @@ -50,7 +50,7 @@ const char *vs_text =
> "flat out dvec4 fscolor;\n"
> "void main()\n"
> "{\n"
> - "gl_Position = vertex;\n"
> + "gl_Position = vec4(vertex);\n"
> "fscolor = vcolor;\n"
> "}\n";
>
>
More information about the Piglit
mailing list