From: Giovanni Mascellani Subject: Re: [PATCH vkd3d v2 6/8] tests: Test initialization using a numeric constructor with implicit truncation. Message-Id: Date: Fri, 21 Jan 2022 11:25:17 +0100 In-Reply-To: <20220120141016.67283-6-fcasas@codeweavers.com> References: <20220120141016.67283-6-fcasas@codeweavers.com> Signed-off-by: Giovanni Mascellani Il 20/01/22 15:10, Francisco Casas ha scritto: > Signed-off-by: Francisco Casas > --- > Makefile.am | 2 ++ > ...numeric-constructor-truncation.shader_test | 32 +++++++++++++++++++ > 2 files changed, 34 insertions(+) > create mode 100644 tests/hlsl-numeric-constructor-truncation.shader_test > > diff --git a/Makefile.am b/Makefile.am > index 2a6d54e4..1da56869 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 \ > @@ -309,6 +310,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 00000000..f54ce44d > --- /dev/null > +++ b/tests/hlsl-numeric-constructor-truncation.shader_test > @@ -0,0 +1,32 @@ > +[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)