tests/hlsl: Test which shader models allow FOG and PSIZE.

This commit is contained in:
Francisco Casas
2025-11-06 15:00:16 -03:00
committed by Henri Verbeet
parent 58d02da892
commit 5dc96ab8d6
Notes: Henri Verbeet 2025-11-10 16:27:32 +01:00
Approved-by: Henri Verbeet (@hverbeet)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1818
2 changed files with 76 additions and 0 deletions

View File

@@ -69,6 +69,7 @@ vkd3d_shader_tests = \
tests/hlsl/asint.shader_test \
tests/hlsl/asuint.shader_test \
tests/hlsl/attributes.shader_test \
tests/hlsl/attrout-semantics.shader_test \
tests/hlsl/barriers.shader_test \
tests/hlsl/bitwise-assignment.shader_test \
tests/hlsl/bitwise.shader_test \

View File

@@ -0,0 +1,75 @@
[require]
compile shader model 2.0
compile shader model 3.0
% This compiles since FOG is not referenced.
[pixel shader]
float4 main(float fog : FOG) : sv_target
{
return 0;
}
% This compiles since PSIZE is not referenced
[pixel shader]
float4 main(float psize : PSIZE) : sv_target
{
return 0;
}
[vertex shader]
void main(float4 pos : position, out float fog : fog, out float4 out_pos : sv_position)
{
fog = 1.0;
out_pos = pos;
}
[pixel shader]
float4 main() : sv_target
{
return 1.0;
}
[test]
draw quad
probe (0, 0) f32(1, 1, 1, 1)
% FOG can be used as a pixel shader input in ps_3_0, but not ps_2_0.
% On ps_4_0 and above, it behaves as a regular semantic, without sysval.
[pixel shader fail(sm<3) todo(sm<3)]
float4 main(float fog : FOG) : sv_target
{
return fog;
}
[test]
draw quad
probe (0, 0) f32(1, 1, 1, 1)
[vertex shader]
void main(float4 pos : position, out float psize : psize, out float4 out_pos : sv_position)
{
psize = 1.0;
out_pos = pos;
}
[pixel shader]
float4 main() : sv_target
{
return 1.0;
}
[test]
draw quad
probe (0, 0) f32(1, 1, 1, 1)
% PSIZE cannot be used as a pixel shader input in ps_2_0 nor ps_3_0.
% On ps_4_0 and above, it behaves as a regular semantic, without sysval.
[pixel shader fail(sm<4) todo(sm<4)]
float4 main(float psize : PSIZE) : sv_target
{
return psize;
}
[test]
draw quad
probe (0, 0) f32(1, 1, 1, 1)