From 8ca50a2f7e832674b30a2da070eeca8ef0745af6 Mon Sep 17 00:00:00 2001 From: Elizabeth Figura Date: Tue, 13 May 2025 12:36:01 -0500 Subject: [PATCH] tests/hlsl: Add more tests for struct syntax. --- Makefile.am | 1 + tests/hlsl/invalid.shader_test | 15 ------- tests/hlsl/struct-syntax.shader_test | 64 ++++++++++++++++++++++++++++ 3 files changed, 65 insertions(+), 15 deletions(-) create mode 100644 tests/hlsl/struct-syntax.shader_test diff --git a/Makefile.am b/Makefile.am index 86fe85dc5..99bf25217 100644 --- a/Makefile.am +++ b/Makefile.am @@ -264,6 +264,7 @@ vkd3d_shader_tests = \ tests/hlsl/struct-assignment.shader_test \ tests/hlsl/struct-inheritance.shader_test \ tests/hlsl/struct-semantics.shader_test \ + tests/hlsl/struct-syntax.shader_test \ tests/hlsl/switch.shader_test \ tests/hlsl/swizzle-constant-prop.shader_test \ tests/hlsl/swizzle-matrix.shader_test \ diff --git a/tests/hlsl/invalid.shader_test b/tests/hlsl/invalid.shader_test index ee30966ac..35b64a334 100644 --- a/tests/hlsl/invalid.shader_test +++ b/tests/hlsl/invalid.shader_test @@ -33,13 +33,6 @@ float4 main() : sv_target return x; } -[pixel shader fail] -float4 main() : sv_target -{ - struct {} x = {}; - return x; -} - [pixel shader fail] float4 main(float2 pos : TEXCOORD0) : sv_target { @@ -118,14 +111,6 @@ float4 main(float4 i) : sv_target return 0; } -[pixel shader fail] -struct {float4 a;}; - -float4 main() : sv_target -{ - return 0; -} - [pixel shader fail(sm<6)] float4 main() : sv_target { diff --git a/tests/hlsl/struct-syntax.shader_test b/tests/hlsl/struct-syntax.shader_test new file mode 100644 index 000000000..4262a86d3 --- /dev/null +++ b/tests/hlsl/struct-syntax.shader_test @@ -0,0 +1,64 @@ +[pixel shader] + struct apple + { + float4 f; + } a; + struct apple b; + apple c; + struct + { + float4 f; + } d; + + float4 main() : sv_target + { + return a.f + b.f + c.f + d.f; + } + +[pixel shader fail] + float4 main() : sv_target + { + struct {} x = {}; + return x; + } + +[pixel shader fail] + struct + { + float4 a; + }; + + float4 main() : sv_target + { + return 0; + } + +[pixel shader fail todo(sm<6)] + struct apple + { + float4 f; + }; + typedef struct apple myapple; + struct myapple a; + + float4 main() : sv_target + { + return 0; + } + +[pixel shader fail] + struct float4 a; + + float4 main() : sv_target + { + return 0; + } + +[pixel shader fail] + typedef float myfloat; + struct myfloat a; + + float4 main() : sv_target + { + return 0; + }