Module: vkd3d Branch: master Commit: 9df54851c958819cb82f92506a9d37e7d7ab87e2 URL: https://gitlab.winehq.org/wine/vkd3d/-/commit/9df54851c958819cb82f92506a9d37...
Author: Francisco Casas fcasas@codeweavers.com Date: Thu Jan 26 11:40:02 2023 -0300
tests: Test array parameters on functions.
---
Makefile.am | 1 + tests/array-parameters.shader_test | 161 +++++++++++++++++++++++++++++++++++++ 2 files changed, 162 insertions(+)
diff --git a/Makefile.am b/Makefile.am index 1f892ef9..5eadfc29 100644 --- a/Makefile.am +++ b/Makefile.am @@ -49,6 +49,7 @@ vkd3d_shader_tests = \ tests/arithmetic-int.shader_test \ tests/arithmetic-int-uniform.shader_test \ tests/arithmetic-uint.shader_test \ + tests/array-parameters.shader_test \ tests/bitwise.shader_test \ tests/cast-broadcast.shader_test \ tests/cast-componentwise-equal.shader_test \ diff --git a/tests/array-parameters.shader_test b/tests/array-parameters.shader_test new file mode 100644 index 00000000..615aa3f4 --- /dev/null +++ b/tests/array-parameters.shader_test @@ -0,0 +1,161 @@ +[pixel shader todo] +float fun(float a[2]) +{ + return 10 * a[0] + a[1]; +} + +float4 main() : sv_target +{ + float f[2] = {2, 5}; + + return fun(f); +} + +[test] +todo draw quad +todo probe all rgba (25.0, 25.0, 25.0, 25.0) + + +[pixel shader fail] +float fun(float a[2]) +{ + return 0; +} + +float4 main() : sv_target +{ + int f[2] = {2, 5}; + + return fun(f); +} + + +[pixel shader fail] +float fun(float a[1]) +{ + return 0; +} + +float4 main() : sv_target +{ + float f = 4; + + return fun(f); +} + + +[pixel shader fail] +float fun(int a[2]) +{ + return 0; +} + +float4 main() : sv_target +{ + float f[2] = {1, 2}; + + return fun(f); +} + + +[pixel shader todo] +float4 fun(float a[2][4]) +{ + float4 res; + + res.x = 10 * a[0][0] + a[1][0]; + res.y = 10 * a[0][1] + a[1][1]; + res.z = 10 * a[0][2] + a[1][2]; + res.w = 10 * a[0][3] + a[1][3]; + return res; +} + +float4 main() : sv_target +{ + float f[2][4] = {1, 2, 3, 4, 5, 6, 7, 8}; + + return fun(f); +} + +[test] +todo draw quad +todo probe all rgba (15.0, 26.0, 37.0, 48.0) + + +[pixel shader fail] +float fun(float a[2]) +{ + return 0; +} + +float4 main() : sv_target +{ + float f[3] = {1, 2, 3}; + + return fun(f); +} + + +% Implicit size arrays are not allowed. +[pixel shader fail] +float fun(float a[]) +{ + return 0; +} + +float4 main() : sv_target +{ + float f[2] = {1, 2}; + + return fun(f); +} + +[pixel shader fail] +float4 fun(float a[4]) +{ + return 0; +} + +float4 main() : sv_target +{ + float4 v = {1, 2, 3, 4}; + + return fun(v); +} + + +% Arrays with the same number of components are allowed. +[pixel shader todo] +float fun(float a[2][3]) +{ + return 100*a[0][0] + 10*a[0][2] + a[1][2]; +} + +float4 main() : sv_target +{ + float f[3][2] = {1, 2, 3, 4, 5, 6}; + + return fun(f); +} + +[test] +todo draw quad +todo probe all rgba (136.0, 136.0, 136.0, 136.0) + + +[pixel shader todo] +float fun(float a[2][3]) +{ + return 100*a[0][0] + 10*a[1][0] + a[1][2]; +} + +float4 main() : sv_target +{ + float f[6] = {7, 8, 9, 0, 1, 2}; + + return fun(f); +} + +[test] +todo draw quad +todo probe all rgba (702.0, 702.0, 702.0, 702.0)