On 02/20/2016 03:38 AM, Andres Gomez wrote: > Double and float derived types also need explicit > conversions. > > Signed-off-by: Andres Gomez <[email protected]> > --- > .../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 <[email protected]> > .../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"; > > _______________________________________________ Piglit mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/piglit
