tests: Test ConstructGSWithSO() parsing.

This commit is contained in:
Francisco Casas 2024-06-25 21:18:14 -04:00 committed by Henri Verbeet
parent 02b249d5e7
commit 3423d1b54b
Notes: Henri Verbeet 2024-09-14 16:53:12 +02:00
Approved-by: Elizabeth Figura (@zfigura)
Approved-by: Henri Verbeet (@hverbeet)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1057
2 changed files with 36 additions and 0 deletions

View File

@ -88,6 +88,7 @@ vkd3d_shader_tests = \
tests/hlsl/compute.shader_test \
tests/hlsl/conditional.shader_test \
tests/hlsl/const.shader_test \
tests/hlsl/constructgswithso.shader_test \
tests/hlsl/coverage.shader_test \
tests/hlsl/cross.shader_test \
tests/hlsl/d3dcolor-to-ubyte4.shader_test \

View File

@ -0,0 +1,35 @@
[pixel shader todo]
float4 main() : sv_target { return 0; }
GeometryShader gs1 = CompileShader(gs_5_0, main());
GeometryShader gs2 = ConstructGSWithSO(gs1, "random_string", "another_string", NULL, NULL, 1);
technique11
{
pass
{
SetGeometryShader(gs2);
}
}
% ConstructGSWithSO for pixel shaders parses with either 2 or 6 arguments, without doing type checking.
[pixel shader fail(sm<6)]
float4 main() : sv_target { return 0; }
GeometryShader gs1 = CompileShader(gs_5_0, main());
GeometryShader gs2 = ConstructGSWithSO(gs1);
[pixel shader todo]
float4 main() : sv_target { return 0; }
GeometryShader gs2 = ConstructGSWithSO("foo", "bar");
[pixel shader fail(sm<6)]
float4 main() : sv_target { return 0; }
GeometryShader gs2 = ConstructGSWithSO(1, 2, 3);
[pixel shader todo]
float4 main() : sv_target { return 0; }
GeometryShader gs2 = ConstructGSWithSO("foo", "bar", float2(42, 42), 3, 4, NULL);
[pixel shader fail(sm<6)]
float4 main() : sv_target { return 0; }
GeometryShader gs2 = ConstructGSWithSO(1, 2, 3, 4, 5, 6, 7);