From 4a8eabf5175fd4872817095fdfb393f55386b0b5 Mon Sep 17 00:00:00 2001 From: "Anna (navi) Figueiredo Gomes" Date: Sat, 24 May 2025 00:15:05 +0200 Subject: [PATCH] tests/hlsl: Add const scalar array dimension tests. --- tests/hlsl/array-dimension.shader_test | 91 +++++++++++++++++++++++++- 1 file changed, 89 insertions(+), 2 deletions(-) diff --git a/tests/hlsl/array-dimension.shader_test b/tests/hlsl/array-dimension.shader_test index 672f035a1..9977227cd 100644 --- a/tests/hlsl/array-dimension.shader_test +++ b/tests/hlsl/array-dimension.shader_test @@ -19,8 +19,7 @@ float4 main() : sv_target [test] todo(sm<6) draw quad -probe (0, 0) rgba (0.1, 0.1, 0.2, 0.4) - +probe (0, 0) f32(0.1, 0.1, 0.2, 0.4) [pixel shader fail] float4 fun() { return 0; }; @@ -28,3 +27,91 @@ float4 fun() { return 0; }; float a[CompileShader(ps_2_0, main())]; float4 main() : sv_target { return 0; } + +[pixel shader todo] +float4 main() : sv_target +{ + const uint cap = 4; + const float array[cap] = { 1.0, 2.0, 3.0, 4.0 }; + return float4(array[0], array[1], array[2], array[3]); +} + +[test] +todo(sm<6) draw quad +probe (0, 0) f32(1, 2, 3, 4) + +[pixel shader fail] +float4 main() : sv_target +{ + uint cap = 4; + const float array[cap] = { 1.0, 2.0, 3.0, 4.0 }; + return float4(array[0], array[1], array[2], array[3]); +} + +[pixel shader todo(sm<6) fail(sm>=6)] +float4 main() : sv_target +{ + const uint4 cap = uint4(2, 4, 1, 0); + const float array[cap.y] = { 1.0, 2.0, 3.0, 4.0 }; + return float4(array[0], array[1], array[2], array[3]); +} + +[test] +todo(sm<6) draw quad +probe (0, 0) f32(1, 2, 3, 4) + +[pixel shader todo(sm<6) fail(sm>=6)] +struct nya +{ + float a, b; +}; + +float4 main() : sv_target +{ + const nya cap = { 5, 4 }; + const float array[cap.b] = { 1.0, 2.0, 3.0, 4.0 }; + return float4(array[0], array[1], array[2], array[3]); +} + +[test] +todo(sm<6) draw quad +probe (0, 0) f32(1, 2, 3, 4) + +[pixel shader todo(sm<6) fail(sm>=6)] +float4 main() : sv_target +{ + const float cap = 4; + const float array[cap] = { 1.0, 2.0, 3.0, 4.0 }; + return float4(array[0], array[1], array[2], array[3]); +} + +[test] +todo(sm<6) draw quad +probe (0, 0) f32(1, 2, 3, 4) + +[pixel shader fail] +float foo() { return 4; } +float4 main() : sv_target +{ + const float cap = foo(); + const float array[cap] = { 1.0, 2.0, 3.0, 4.0 }; + return float4(array[0], array[1], array[2], array[3]); +} + +[pixel shader fail] +struct nya +{ + float a, b; +}; + +float foo() +{ + return 5; +} + +float4 main() : sv_target +{ + const nya cap = { foo(), 4 }; + const float array[cap.b] = { 1.0, 2.0, 3.0, 4.0 }; + return float4(array[0], array[1], array[2], array[3]); +}