Module: vkd3d Branch: master Commit: 76ae871f5bdddddea98a006ba58111f270d9b259 URL: https://gitlab.winehq.org/wine/vkd3d/-/commit/76ae871f5bdddddea98a006ba58111...
Author: Victor Chiletto vchiletto@codeweavers.com Date: Fri May 17 18:35:50 2024 -0300
tests/hlsl: Test loop unrolling edge cases.
---
Makefile.am | 1 + tests/hlsl/unroll.shader_test | 65 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 66 insertions(+)
diff --git a/Makefile.am b/Makefile.am index 1d418845..2b655fa4 100644 --- a/Makefile.am +++ b/Makefile.am @@ -241,6 +241,7 @@ vkd3d_shader_tests = \ tests/hlsl/unsigned.shader_test \ tests/hlsl/uniform-parameters.shader_test \ tests/hlsl/uniform-semantics.shader_test \ + tests/hlsl/unroll.shader_test \ tests/hlsl/vector-indexing-uniform.shader_test \ tests/hlsl/vector-indexing.shader_test \ tests/hlsl/vertex-shader-ops.shader_test \ diff --git a/tests/hlsl/unroll.shader_test b/tests/hlsl/unroll.shader_test new file mode 100644 index 00000000..36bee0f8 --- /dev/null +++ b/tests/hlsl/unroll.shader_test @@ -0,0 +1,65 @@ +% Unrolling edge cases. + +[pixel shader todo(sm<4)] +float a : register(c0); + +float4 main() : sv_target +{ + int i; + if (a > 0) + { + [unroll] + for (i = 0; i < 10; ++i); + + return float4(i, a, 2.0, 3.0); + } + + return float4(0.0, a, 3.0, 4.0); +} + +[test] +uniform 0 float 1 +todo(glsl|sm<4) draw quad +probe (0,0) rgba(10.0, 1.0, 2.0, 3.0) + +[pixel shader] +float4 main() : sv_target +{ + int i; + [unroll(4)] + for (i = 0; i < 8; ++i); + + return float4(i, 0, 0, 0); +} + +[test] +todo(glsl) draw quad +probe (0,0) rgba(4.0, 0.0, 0.0, 0.0) + +[pixel shader fail(sm<6)] +float4 main() : sv_target +{ + int i; + [unroll] + for (i = 0; i < 1024; ++i); + + return float4(i, 0, 0, 0); +} + +[test] +todo(glsl) draw quad +probe (0,0) rgba(1024.0, 0, 0, 0) + +[pixel shader] +float4 main() : sv_target +{ + int i; + [unroll(1337)] + for (i = 0; i < 1337; ++i); + + return float4(i, 0, 0, 0); +} + +[test] +todo(glsl) draw quad +probe (0,0) rgba(1337.0, 0, 0, 0)