Module: vkd3d Branch: master Commit: 6b58079cbd728c0744d75293c492ad0a74986f59 URL: https://source.winehq.org/git/vkd3d.git/?a=commit;h=6b58079cbd728c0744d75293...
Author: Francisco Casas fcasas@codeweavers.com Date: Thu Feb 3 23:44:22 2022 +0100
tests: Test initialization using a numeric constructor with implicit truncation.
Signed-off-by: Francisco Casas fcasas@codeweavers.com Signed-off-by: Zebediah Figura zfigura@codeweavers.com Signed-off-by: Giovanni Mascellani gmascellani@codeweavers.com Signed-off-by: Matteo Bruni mbruni@codeweavers.com Signed-off-by: Henri Verbeet hverbeet@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
Makefile.am | 2 ++ ...hlsl-numeric-constructor-truncation.shader_test | 33 ++++++++++++++++++++++ 2 files changed, 35 insertions(+)
diff --git a/Makefile.am b/Makefile.am index 92c49c3..8a32802 100644 --- a/Makefile.am +++ b/Makefile.am @@ -79,6 +79,7 @@ vkd3d_shader_tests = \ tests/hlsl-majority-pragma.shader_test \ tests/hlsl-majority-typedef.shader_test \ tests/hlsl-nested-arrays.shader_test \ + tests/hlsl-numeric-constructor-truncation.shader_test \ tests/hlsl-numeric-types.shader_test \ tests/hlsl-return-implicit-conversion.shader_test \ tests/hlsl-return-void.shader_test \ @@ -316,6 +317,7 @@ XFAIL_TESTS = \ tests/hlsl-majority-pragma.shader_test \ tests/hlsl-majority-typedef.shader_test \ tests/hlsl-nested-arrays.shader_test \ + tests/hlsl-numeric-constructor-truncation.shader_test \ tests/hlsl-numeric-types.shader_test \ tests/hlsl-return-implicit-conversion.shader_test \ tests/hlsl-return-void.shader_test \ diff --git a/tests/hlsl-numeric-constructor-truncation.shader_test b/tests/hlsl-numeric-constructor-truncation.shader_test new file mode 100644 index 0000000..f18b34d --- /dev/null +++ b/tests/hlsl-numeric-constructor-truncation.shader_test @@ -0,0 +1,33 @@ +[pixel shader] +float4 main() : sv_target +{ + float3 x = float4(71, 72, 73, 74); + return float4(x, 75); +} + +[test] +draw quad +probe all rgba (71.0, 72.0, 73.0, 75.0) + + +[pixel shader] +struct stu +{ + float aa; + float2 bb; + float cc; +}; + +float4 main() : sv_target +{ + struct stu foo; + foo.cc = 5; + foo.bb = float3(2, 3, 4); // It shall not overflow to cc; + foo.aa = 1; + + return float4(foo); +} + +[test] +draw quad +probe all rgba (1.0, 2.0, 3.0, 5.0)