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 +++++++++++++++
 .../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";
 
-- 
2.1.0

_______________________________________________
Piglit mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/piglit

Reply via email to