diff --git a/Makefile.am b/Makefile.am index 0d5f9f13..6e4d73b6 100644 --- a/Makefile.am +++ b/Makefile.am @@ -224,6 +224,7 @@ vkd3d_shader_tests = \ tests/hlsl/sampler-state.shader_test \ tests/hlsl/sampler.shader_test \ tests/hlsl/saturate.shader_test \ + tests/hlsl/scope.shader_test \ tests/hlsl/shade-mode.shader_test \ tests/hlsl/shader-interstage-interface.shader_test \ tests/hlsl/shader-point-size.shader_test \ diff --git a/tests/hlsl/scope.shader_test b/tests/hlsl/scope.shader_test new file mode 100644 index 00000000..2b9217f9 --- /dev/null +++ b/tests/hlsl/scope.shader_test @@ -0,0 +1,136 @@ +[pixel shader fail] + float4 main() : sv_target + { + float4 x, x; + + return 0; + } + +[pixel shader fail] + float4 main() : sv_target + { + float4 x; + float4 x; + + return 0; + } + +[pixel shader fail] + float4 x; + float4 x; + + float4 main() : sv_target + { + return 0; + } + +[pixel shader] + float4 x; + + float4 main() : sv_target + { + float4 x; + + return 0; + } + +[pixel shader] + float4 x; + + float4 main(float4 x : TEXCOORD) : sv_target + { + return x; + } + +[pixel shader fail] + float4 main(float4 x : TEXCOORD) : sv_target + { + float4 x; + return 0; + } + +[pixel shader fail] + float4 main(float4 x : TEXCOORD, float4 x : TEXCOORD) : sv_target + { + return 0; + } + +[pixel shader] + float4 main() : sv_target + { + float4 x = 1; + { + return x; + } + } + +[pixel shader] + float4 main(float4 x : TEXCOORD) : sv_target + { + { + float4 x = 1; + return x; + } + } + +[pixel shader fail] + float4 main() : sv_target + { + { + float4 x = 1; + } + return x; + } + +[pixel shader] + float4 main() : sv_target + { + float4 x = 1; + if (1) + { + return x; + } + } + +[pixel shader] + float4 main(float4 x : TEXCOORD) : sv_target + { + if (1) + { + float4 x = 1; + return x; + } + } + +[pixel shader fail] + float4 main() : sv_target + { + if (1) + { + float4 x = 1; + } + return x; + } + +[pixel shader fail] + { + float4 x = 1; + } + float4 main() : sv_target + { + return 0; + } + +[pixel shader fail] + float4 main() : sv_target + { + return x; + float4 x = 1; + } + +[pixel shader fail] + float4 main() : sv_target + { + return x; + } + float4 x;