[PATCH 0/3] MR40: vkd3d-shader/hlsl: Support complex implicit casts, complex explicit casts and complex broadcasts. (PART 3/3)
Just additional complex explicit casts tests. -- https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/40
From: Francisco Casas <fcasas(a)codeweavers.com> --- .../cast-componentwise-compatible.shader_test | 55 +++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/tests/cast-componentwise-compatible.shader_test b/tests/cast-componentwise-compatible.shader_test index 4b342efb..f8b990d0 100644 --- a/tests/cast-componentwise-compatible.shader_test +++ b/tests/cast-componentwise-compatible.shader_test @@ -183,3 +183,58 @@ float4 main() : sv_target [test] draw quad probe all rgba (10.0, 10.0, 11.4, 12.4) + + +[pixel shader] +float4 main() : sv_target +{ + float f[5] = {11, 12, 13, 14, 15}; + int4 i; + + i = (int4) f; + return i; +} + + +[test] +draw quad +probe all rgba (11.0, 12.0, 13.0, 14.0) + + +[pixel shader] +struct apple +{ + int2 aa; + float bb[2]; + float cc; +}; + +float4 main() : sv_target +{ + struct apple a = {21, 22, 23.4, 24.4, 25.0}; + int4 i; + + i = (int4) a; + return i; +} + + +[test] +draw quad +probe all rgba (21.0, 22.0, 23.0, 24.0) + + +[pixel shader] +float4 main() : sv_target +{ + float4 f = {31.4, 32.4, 33.4, 34.4}; + int3 i; + + i = (int3) f; + return float4(i.x, i.y, i.z, i.z); +} + + +[test] +draw quad +probe all rgba (31.0, 32.0, 33.0, 33.0) -- GitLab https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/40
From: Francisco Casas <fcasas(a)codeweavers.com> --- .../cast-componentwise-compatible.shader_test | 141 ++++++++++++++++++ 1 file changed, 141 insertions(+) diff --git a/tests/cast-componentwise-compatible.shader_test b/tests/cast-componentwise-compatible.shader_test index f8b990d0..95378d66 100644 --- a/tests/cast-componentwise-compatible.shader_test +++ b/tests/cast-componentwise-compatible.shader_test @@ -238,3 +238,144 @@ float4 main() : sv_target [test] draw quad probe all rgba (31.0, 32.0, 33.0, 33.0) + + +[pixel shader] +struct apple +{ + int2 aa; + float2 bb; +}; + +float4 main() : sv_target +{ + struct apple a = {41, 42, 43, 44}; + float2x2 mat; + + mat = (float2x2) a; + return float4(mat); +} + + +[test] +draw quad +probe all rgba (41.0, 42.0, 43.0, 44.0) + + +[pixel shader fail] +struct apple +{ + float2 aa; + float3 bb; +}; + +float4 main() : sv_target +{ + struct apple a = {1, 2, 3, 4, 5}; + float2x2 mat; + + mat = (float2x2) a; + return float4(mat); +} + + +[pixel shader] +struct apple +{ + float3 aa; + int bb; +}; + +float4 main() : sv_target +{ + float2x2 mat = {55, 56, 57, 58}; + struct apple a; + + a = (struct apple) mat; + return float4(a.aa, a.bb); +} + + +[test] +draw quad +probe all rgba (55.0, 56.0, 57.0, 58.0) + + +[pixel shader fail] +struct apple +{ + float2 aa; + float2 bb; +}; + +float4 main() : sv_target +{ + float3x2 mat = {1, 2, 3, 4, 5, 6}; + struct apple a; + + a = (struct apple) mat; + return float4(a.aa, a.bb); +} + + +[pixel shader] +float4 main() : sv_target +{ + float arr[4] = {61, 62, 63, 64}; + int2x2 mat; + + mat = (int2x2) arr; + return float4(mat); +} + +[test] +draw quad +probe all rgba (61.0, 62.0, 63.0, 64.0) + + +[pixel shader fail] +float4 main() : sv_target +{ + float arr[5] = {1, 2, 3, 4, 5}; + float2x2 mat; + + mat = (float2x2) arr; + return float4(mat); +} + + +[pixel shader] +float4 main() : sv_target +{ + float2x2 mat = {71, 72, 73, 74}; + int arr[4]; + + arr = (int[4]) mat; + return float4(arr); +} + +[test] +draw quad +probe all rgba (71.0, 72.0, 73.0, 74.0) + + +[pixel shader fail] +float4 main() : sv_target +{ + float2x2 mat = {1, 2, 3, 4}; + int arr[3]; + + arr = (int[3]) mat; + return 0; +} + + +[pixel shader fail] +float4 main() : sv_target +{ + float2x2 mat = {1, 2, 3, 4}; + float3 vec; + + vec = (float3) mat; + return 0; +} -- GitLab https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/40
From: Francisco Casas <fcasas(a)codeweavers.com> --- .../cast-componentwise-compatible.shader_test | 203 ++++++++++++++++++ 1 file changed, 203 insertions(+) diff --git a/tests/cast-componentwise-compatible.shader_test b/tests/cast-componentwise-compatible.shader_test index 95378d66..da55628b 100644 --- a/tests/cast-componentwise-compatible.shader_test +++ b/tests/cast-componentwise-compatible.shader_test @@ -379,3 +379,206 @@ float4 main() : sv_target vec = (float3) mat; return 0; } + + +[pixel shader fail] +float4 main() : sv_target +{ + float arr[5] = {1, 2, 3, 4, 5}; + float4x1 mat; + + mat = (float4x1) arr; + return 0; +} + + +[pixel shader] +float4 main() : sv_target +{ + float arr[5] = {81, 82, 83, 84, 85}; + int1x4 mat; + + mat = (int1x4) arr; + return float4(mat); +} + + +[test] +draw quad +probe all rgba (81.0, 82.0, 83.0, 84.0) + + +[pixel shader] +float4 main() : sv_target +{ + float4x1 mat = {91, 92, 93, 94}; + int arr[3]; + + arr = (int[3]) mat; + return float4(arr, 0); +} + + +[test] +draw quad +probe all rgba (91.0, 92.0, 93.0, 0.0) + + +[pixel shader] +float4 main() : sv_target +{ + float1x4 mat = {11, 12, 13, 14}; + int arr[3]; + + arr = (int[3]) mat; + return float4(arr, 0); +} + + +[test] +draw quad +probe all rgba (11.0, 12.0, 13.0, 0.0) + + +[pixel shader fail] +struct apple +{ + float3 aa; + float2 bb; +}; + + +float4 main() : sv_target +{ + struct apple a = {1, 2, 3, 4, 5}; + float4x1 mat; + + mat = (float4x1) a; + return 0; +} + + +[pixel shader] +struct apple +{ + float3 aa; + float2 bb; +}; + + +float4 main() : sv_target +{ + struct apple a = {21, 22, 23, 24, 25}; + float1x4 mat; + + mat = (float1x4) a; + return float4(mat); +} + + +[test] +draw quad +probe all rgba (21.0, 22.0, 23.0, 24.0) + + +[pixel shader] +struct apple +{ + int aa; + float2 bb; +}; + +float4 main() : sv_target +{ + float4x1 mat = {31, 32, 33, 34}; + struct apple a; + + a = (struct apple) mat; + return float4(a.aa, a.bb, 0); +} + + +[test] +draw quad +probe all rgba (31.0, 32.0, 33.0, 0.0) + + +[pixel shader] +struct apple +{ + int aa; + float2 bb; +}; + +float4 main() : sv_target +{ + float1x4 mat = {41, 42, 43, 44}; + struct apple a; + + a = (struct apple) mat; + return float4(a.aa, a.bb, 0); +} + + +[test] +draw quad +probe all rgba (41.0, 42.0, 43.0, 0.0) + + +[pixel shader] +float4 main() : sv_target +{ + float4 vec = {51, 52, 53, 54}; + int1x3 mat; + + mat = (int1x3) vec; + return float4(mat, 0); +} + + +[test] +draw quad +probe all rgba (51.0, 52.0, 53.0, 0.0) + + +[pixel shader fail] +float4 main() : sv_target +{ + float4 vec = {1, 2, 3, 4}; + float3x1 mat; + + mat = (float3x1) vec; + return 0; +} + + +[pixel shader] +float4 main() : sv_target +{ + float1x4 mat = {61, 62, 63, 64}; + int3 vec; + + vec = (int1x3) mat; + return float4(vec, 0); +} + + +[test] +draw quad +probe all rgba (61.0, 62.0, 63.0, 0.0) + + +[pixel shader] +float4 main() : sv_target +{ + float4x1 mat = {71, 72, 73, 74}; + int3 vec; + + vec = (int3) mat; + return float4(vec, 0); +} + + +[test] +draw quad +probe all rgba (71.0, 72.0, 73.0, 0.0) -- GitLab https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/40
This merge request was approved by Zebediah Figura. -- https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/40
This merge request was approved by Giovanni Mascellani. -- https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/40
This merge request was approved by Henri Verbeet. -- https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/40
participants (5)
-
Francisco Casas -
Francisco Casas (@fcasas) -
Giovanni Mascellani (@giomasce) -
Henri Verbeet (@hverbeet) -
Zebediah Figura (@zfigura)