Just additional complex explicit casts tests.
From: Francisco Casas fcasas@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)
From: Francisco Casas fcasas@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; +}
From: Francisco Casas fcasas@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)
This merge request was approved by Zebediah Figura.
This merge request was approved by Giovanni Mascellani.
This merge request was approved by Henri Verbeet.