Module: vkd3d Branch: master Commit: b8047fd650edade927f0d95fade06c2aa8924417 URL: https://gitlab.winehq.org/wine/vkd3d/-/commit/b8047fd650edade927f0d95fade06c...
Author: Nikolay Sivov nsivov@codeweavers.com Date: Sat Oct 28 20:52:46 2023 +0200
tests: Add some tests for loop attributes.
Signed-off-by: Nikolay Sivov nsivov@codeweavers.com
---
tests/hlsl/loop.shader_test | 143 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 143 insertions(+)
diff --git a/tests/hlsl/loop.shader_test b/tests/hlsl/loop.shader_test index 4fbf14d8..3d515c9d 100644 --- a/tests/hlsl/loop.shader_test +++ b/tests/hlsl/loop.shader_test @@ -100,3 +100,146 @@ float4 main() : sv_target uniform 0 float 4.0 todo(sm>=6) draw quad probe all rgba (410.1, 410.1, 410.1, 410.1) + +% loop attribute by itself +[pixel shader todo] +float4 main() : sv_target +{ + float ret = 0.0; + + [loop] for (int i = 0; i < 10; ++i) + { + ret += 1.0; + } + + return ret; +} + +[test] +todo draw quad +probe all rgba (10.0, 10.0, 10.0, 10.0) + +[pixel shader todo] +float4 main() : sv_target +{ + float ret = 0.0; + int i = 0; + + [loop] while (i < 10) + { + ret += 1.0; + i++; + } + + return ret; +} + +[test] +todo draw quad +probe all rgba (10.0, 10.0, 10.0, 10.0) + +[pixel shader todo] +float4 main() : sv_target +{ + float ret = 0.0; + int i = 0; + + [loop] do + { + i++; + ret += 1.0; + } while (i < 10); + + return ret; +} + +[test] +todo draw quad +probe all rgba (10.0, 10.0, 10.0, 10.0) + +% unroll can't be used with fastopt or loop +[pixel shader fail todo] +float4 main() : sv_target +{ + float ret = 0.0; + + [loop] [unroll(1)] for (int i = 0; i < 10; ++i) + { + ret += 1.0; + } + + return ret; +} + +[pixel shader fail todo] +float4 main() : sv_target +{ + float ret = 0.0; + + [fastopt] [unroll(1)] for (int i = 0; i < 10; ++i) + { + ret += 1.0; + } + + return ret; +} + +[pixel shader fail todo] +float4 main() : sv_target +{ + float ret = 0.0; + int i = 0; + + [loop] [unroll(1)] while (i < 10) + { + ret += 1.0; + i++; + } + + return ret; +} + +[pixel shader fail todo] +float4 main() : sv_target +{ + float ret = 0.0; + int i = 0; + + [fastopt] [unroll(1)] while (i < 10) + { + ret += 1.0; + i++; + } + + return ret; +} + +[pixel shader fail] +float4 main() : sv_target +{ + float ret = 0.0; + int i = 0; + + [loop] [unroll(1)] do + { + ret += 1.0; + i++; + } while (i < 10) + + return ret; +} + +[pixel shader fail] +float4 main() : sv_target +{ + float ret = 0.0; + int i = 0; + + [fastopt] [unroll(1)] do + { + ret += 1.0; + i++; + } while (i < 10) + + return ret; +}