vkd3d/tests/hlsl/fog.shader_test
Elizabeth Figura f86d1e72a4 vkd3d-shader/ir: Allow controlling fog through parameters.
Fog requires several parameters to even implement the most basic of
functionality correctly, so this commit is relatively large.
2024-12-02 17:12:06 +01:00

73 lines
1.3 KiB
Plaintext

[require]
shader model < 3.0
[vertex shader fail]
void main(float4 pos : position, out float2 fog : fog, out float4 out_pos : sv_position)
{
fog = 0.5;
out_pos = pos;
}
[require]
shader model >= 3.0
[vertex shader]
void main(float4 pos : position, out float2 fog : fog, out float4 out_pos : sv_position)
{
fog = float2(0.1, 0.2);
out_pos = pos;
}
[pixel shader]
float4 main(float2 fog : fog) : sv_target
{
return float4(fog, 0, 1);
}
[test]
todo(msl) draw quad
probe (0, 0) rgba (0.1, 0.2, 0, 1)
[require]
fog
[input layout]
0 r32g32b32a32-float position
[vb 0]
-1.0 -1.0 0.2 1.0
-1.0 1.0 0.2 1.0
1.0 -1.0 0.6 1.0
1.0 1.0 0.6 1.0
[vertex shader]
float4 main(float4 pos : position, out float fog : fog) : sv_position
{
fog = 0.2;
return pos;
}
[pixel shader]
float4 main() : sv_target
{
return float4(0, 0, 1, 1);
}
[test]
fog-colour 0.0 1.0 1.0 1.0
fog disable
draw triangle strip 4
probe (160, 120) rgba (0.0, 0.0, 1.0, 1.0)
probe (480, 360) rgba (0.0, 0.0, 1.0, 1.0)
probe (160, 120) rgba (0.0, 0.0, 1.0, 1.0)
probe (480, 360) rgba (0.0, 0.0, 1.0, 1.0)
fog none
draw triangle strip 4
probe (160, 120) rgba (0.0, 0.8, 1.0, 1.0)
probe (480, 360) rgba (0.0, 0.8, 1.0, 1.0)
probe (160, 120) rgba (0.0, 0.8, 1.0, 1.0)
probe (480, 360) rgba (0.0, 0.8, 1.0, 1.0)