Zebediah Figura : tests: Add some tests for casting output arguments to functions.

Alexandre Julliard julliard at winehq.org
Thu Feb 24 15:28:55 CST 2022


Module: vkd3d
Branch: master
Commit: 8b2bd02a53a93812aab7b0b785b057a4280c15a3
URL:    https://source.winehq.org/git/vkd3d.git/?a=commit;h=8b2bd02a53a93812aab7b0b785b057a4280c15a3

Author: Zebediah Figura <zfigura at codeweavers.com>
Date:   Thu Feb 24 15:06:14 2022 +0100

tests: Add some tests for casting output arguments to functions.

Signed-off-by: Zebediah Figura <zfigura at codeweavers.com>
Signed-off-by: Giovanni Mascellani <gmascellani at codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni at codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 Makefile.am                          |  2 +
 tests/hlsl-function-cast.shader_test | 87 ++++++++++++++++++++++++++++++++++++
 2 files changed, 89 insertions(+)

diff --git a/Makefile.am b/Makefile.am
index 57cf578..e4f92bb 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -66,6 +66,7 @@ vkd3d_shader_tests = \
 	tests/hlsl-duplicate-modifiers.shader_test \
 	tests/hlsl-for.shader_test \
 	tests/hlsl-function.shader_test \
+	tests/hlsl-function-cast.shader_test \
 	tests/hlsl-function-overload.shader_test \
 	tests/hlsl-gather-offset.shader_test \
 	tests/hlsl-gather.shader_test \
@@ -318,6 +319,7 @@ XFAIL_TESTS = \
 	tests/hlsl-duplicate-modifiers.shader_test \
 	tests/hlsl-for.shader_test \
 	tests/hlsl-function.shader_test \
+	tests/hlsl-function-cast.shader_test \
 	tests/hlsl-function-overload.shader_test \
 	tests/hlsl-gather.shader_test \
 	tests/hlsl-intrinsic-override.shader_test \
diff --git a/tests/hlsl-function-cast.shader_test b/tests/hlsl-function-cast.shader_test
new file mode 100644
index 0000000..4f80ac5
--- /dev/null
+++ b/tests/hlsl-function-cast.shader_test
@@ -0,0 +1,87 @@
+% Test implicit and explicit casts on function output parameters.
+
+[pixel shader]
+
+uniform float4 f;
+
+void func(out float4 o)
+{
+    o = f;
+}
+
+float4 main() : sv_target
+{
+    int4 x;
+    func(x);
+    return x;
+}
+
+[test]
+uniform 0 float4 -1.9 -1.0 2.9 4.0
+draw quad
+probe all rgba (-1.0, -1.0, 2.0, 4.0)
+
+% As above, but cast "x" to float4 first.
+
+[pixel shader]
+
+uniform float4 f;
+
+void func(out float4 o)
+{
+    o = f;
+}
+
+float4 main() : sv_target
+{
+    int4 x;
+    func((float4)x);
+    return x;
+}
+
+[test]
+uniform 0 float4 -1.9 -1.0 2.9 4.0
+draw quad
+probe all rgba (-1.0, -1.0, 2.0, 4.0)
+
+% As above, but declare "x" as float4 and cast it to int4.
+
+[pixel shader]
+
+uniform float4 f;
+
+void func(out float4 o)
+{
+    o = f;
+}
+
+float4 main() : sv_target
+{
+    float4 x;
+    func((int4)x);
+    return x;
+}
+
+[test]
+uniform 0 float4 -1.9 -1.0 2.9 4.0
+draw quad
+probe all rgba (-1.0, -1.0, 2.0, 4.0)
+
+[pixel shader]
+
+void func(inout float4 a)
+{
+    a += 0.1;
+}
+
+float4 main(uniform int4 i) : sv_target
+{
+    int4 x = i;
+    func(x);
+    return x;
+}
+
+[test]
+uniform 0 int4 -2 0 1 -3000000
+draw quad
+probe all rgba (-1.0, 0.0, 1.0, -3000000.0)




More information about the wine-cvs mailing list