mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2025-12-15 08:03:30 -08:00
tests/hlsl: Test which shader models allow FOG and PSIZE.
This commit is contained in:
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
@@ -69,6 +69,7 @@ vkd3d_shader_tests = \
|
|||||||
tests/hlsl/asint.shader_test \
|
tests/hlsl/asint.shader_test \
|
||||||
tests/hlsl/asuint.shader_test \
|
tests/hlsl/asuint.shader_test \
|
||||||
tests/hlsl/attributes.shader_test \
|
tests/hlsl/attributes.shader_test \
|
||||||
|
tests/hlsl/attrout-semantics.shader_test \
|
||||||
tests/hlsl/barriers.shader_test \
|
tests/hlsl/barriers.shader_test \
|
||||||
tests/hlsl/bitwise-assignment.shader_test \
|
tests/hlsl/bitwise-assignment.shader_test \
|
||||||
tests/hlsl/bitwise.shader_test \
|
tests/hlsl/bitwise.shader_test \
|
||||||
|
|||||||
75
tests/hlsl/attrout-semantics.shader_test
Normal file
75
tests/hlsl/attrout-semantics.shader_test
Normal 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)
|
||||||
Reference in New Issue
Block a user