tests/hlsl: Add effect CompileShader() tests.

This commit is contained in:
Anna (navi) Figueiredo Gomes
2025-10-17 21:45:52 +02:00
committed by Henri Verbeet
parent b17923b5ba
commit b986bfa2fe
Notes: Henri Verbeet 2025-12-09 17:21:49 +01:00
Approved-by: Francisco Casas (@fcasas)
Approved-by: Nikolay Sivov (@nsivov)
Approved-by: Elizabeth Figura (@zfigura)
Approved-by: Henri Verbeet (@hverbeet)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1340
4 changed files with 127 additions and 0 deletions

View File

@@ -120,6 +120,8 @@ vkd3d_shader_tests = \
tests/hlsl/effect-annotations-fx_4.shader_test \ tests/hlsl/effect-annotations-fx_4.shader_test \
tests/hlsl/effect-assignments-fx_5.shader_test \ tests/hlsl/effect-assignments-fx_5.shader_test \
tests/hlsl/effect-compile.shader_test \ tests/hlsl/effect-compile.shader_test \
tests/hlsl/effect-constructgswithso-4.shader_test \
tests/hlsl/effect-constructgswithso-5.shader_test \
tests/hlsl/effect-initial-values-fx_2.shader_test \ tests/hlsl/effect-initial-values-fx_2.shader_test \
tests/hlsl/effect-initial-values-fx_4.shader_test \ tests/hlsl/effect-initial-values-fx_4.shader_test \
tests/hlsl/effect-pass-states-fx_4.shader_test \ tests/hlsl/effect-pass-states-fx_4.shader_test \

View File

@@ -284,3 +284,62 @@ technique10 T0
PixelShader = compile ps_4_0 fun(4); PixelShader = compile ps_4_0 fun(4);
} }
} }
[effect todo]
float4 vs( float4 Pos : POSITION ) : SV_POSITION { return Pos; }
float4 ps( float4 Pos : SV_POSITION ) : SV_Target { return float4( 1.0f, 1.0f, 0.0f, 1.0f ); }
PixelShader p = CompileShader( ps_4_0, ps() );
VertexShader v = CompileShader( vs_4_0, vs() ) ;
VertexShader v0 = NULL;
technique10 t0
{
pass p0
{
PixelShader = p;
VertexShader = v;
}
pass p1
{
PixelShader = p;
VertexShader = v0;
}
pass p2
{
PixelShader = CompileShader( ps_4_0, ps() );
VertexShader = CompileShader( vs_4_0, vs() ) ;
}
pass p3
{
PixelShader = NULL;
VertexShader = NULL;
}
}
[effect todo]
float4 vs( float4 pos : POSITION ) : SV_POSITION { return pos; }
float4 vs2( float4 pos : POSITION ) : SV_POSITION { return pos + pos; }
float4 ps( float4 pos : SV_POSITION ) : SV_Target { return float4( 1.0f, 1.0f, 0.0f, 1.0f ); }
VertexShader v[2] = { CompileShader( vs_4_0, vs() ), CompileShader( vs_4_0, vs2() ) };
PixelShader p = CompileShader( ps_4_0, ps() );
technique10 t0
{
pass p0
{
SetPixelShader(p);
SetVertexShader(v[0]);
}
pass p1
{
SetPixelShader(p);
SetVertexShader(v[1]);
}
}

View File

@@ -0,0 +1,40 @@
[require]
shader model >= 4.0
shader model < 6.0
[effect todo]
float4 main() : sv_position { return 0; }
VertexShader vs = CompileShader(vs_4_0, main());
GeometryShader gs = ConstructGSWithSO(vs, "foo");
technique11
{
pass p1
{
SetGeometryShader(gs);
}
pass p2
{
SetGeometryShader(ConstructGSWithSO(gs, "mew"));
}
}
[effect todo]
float4 main() : sv_position { return 0; }
GeometryShader chain = ConstructGSWithSO(CompileShader(vs_4_0, main()), "foo");
GeometryShader chained = ConstructGSWithSO(ConstructGSWithSO(chain, "nya"), "mew");
technique11
{
pass p1
{
SetGeometryShader(chain);
}
pass p2
{
SetGeometryShader(chained);
}
}

View File

@@ -0,0 +1,26 @@
[require]
shader model >= 5.0
shader model < 6.0
[effect todo]
float4 main() : sv_position { return 0; }
VertexShader vs = CompileShader(vs_4_0, main());
GeometryShader gs = ConstructGSWithSO(vs, "foo", "nya", "mew", "boop", 1);
technique11
{
pass p1
{
SetGeometryShader(gs);
}
pass p2
{
SetGeometryShader(ConstructGSWithSO(CompileShader(vs_4_0, main()), "foo", NULL, NULL, NULL, 5));
}
}
[effect todo]
float4 main() : sv_position { return 0; }
GeometryShader gs = ConstructGSWithSO(CompileShader(vs_4_0, main()), "foo", NULL, NULL, NULL, 3 + 4 - 2);