mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2025-09-12 18:50:22 -07:00
tests: Test alpha test.
This commit is contained in:
committed by
Henri Verbeet
parent
7e868f1f4b
commit
5a53b73995
Notes:
Henri Verbeet
2024-07-11 17:16:48 +02:00
Approved-by: Henri Verbeet (@hverbeet) Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/870
78
tests/hlsl/alpha-test.shader_test
Normal file
78
tests/hlsl/alpha-test.shader_test
Normal file
@@ -0,0 +1,78 @@
|
||||
% Testing equality comparison is a bit tricky here. The alpha test ref is
|
||||
% fed through a UNORM in d3d, so we can only pass a value that's a multiple of
|
||||
% 1/255 from 0 to 1. While we can quantize to an integer from 0-255, dividing
|
||||
% back down by 255 yields slightly inconsistent results. Fortunately, testing
|
||||
% 1.0 works and is a lot more reliable.
|
||||
|
||||
[require]
|
||||
shader model < 4.0
|
||||
|
||||
[vertex shader]
|
||||
void main(inout float4 pos : position, out float alpha : texcoord)
|
||||
{
|
||||
alpha = pos.x;
|
||||
}
|
||||
|
||||
[pixel shader]
|
||||
float4 main(float alpha : texcoord) : sv_target
|
||||
{
|
||||
return float4(0, 1, 0, floor((alpha + 1) * 2 + 0.5) / 2);
|
||||
}
|
||||
|
||||
[test]
|
||||
|
||||
alpha test always
|
||||
clear rtv 0 1 0 0 1
|
||||
draw quad
|
||||
probe (160, 0) rgba (0, 1, 0, 0.5)
|
||||
probe (320, 0) rgba (0, 1, 0, 1.0)
|
||||
probe (480, 0) rgba (0, 1, 0, 1.5)
|
||||
|
||||
alpha test equal 1.0
|
||||
clear rtv 0 1 0 0 1
|
||||
draw quad
|
||||
probe (160, 0) rgba (1, 0, 0, 1)
|
||||
probe (320, 0) rgba (0, 1, 0, 1.0)
|
||||
probe (480, 0) rgba (1, 0, 0, 1)
|
||||
|
||||
alpha test not equal 1.0
|
||||
clear rtv 0 1 0 0 1
|
||||
draw quad
|
||||
probe (160, 0) rgba (0, 1, 0, 0.5)
|
||||
probe (320, 0) rgba (1, 0, 0, 1)
|
||||
probe (480, 0) rgba (0, 1, 0, 1.5)
|
||||
|
||||
alpha test greater 1.0
|
||||
clear rtv 0 1 0 0 1
|
||||
draw quad
|
||||
probe (160, 0) rgba (1, 0, 0, 1)
|
||||
probe (320, 0) rgba (1, 0, 0, 1)
|
||||
probe (480, 0) rgba (0, 1, 0, 1.5)
|
||||
|
||||
alpha test greater equal 1.0
|
||||
clear rtv 0 1 0 0 1
|
||||
draw quad
|
||||
probe (160, 0) rgba (1, 0, 0, 1)
|
||||
probe (320, 0) rgba (0, 1, 0, 1.0)
|
||||
probe (480, 0) rgba (0, 1, 0, 1.5)
|
||||
|
||||
alpha test less equal 1.0
|
||||
clear rtv 0 1 0 0 1
|
||||
draw quad
|
||||
probe (160, 0) rgba (0, 1, 0, 0.5)
|
||||
probe (320, 0) rgba (0, 1, 0, 1.0)
|
||||
probe (480, 0) rgba (1, 0, 0, 1)
|
||||
|
||||
alpha test less 1.0
|
||||
clear rtv 0 1 0 0 1
|
||||
draw quad
|
||||
probe (160, 0) rgba (0, 1, 0, 0.5)
|
||||
probe (320, 0) rgba (1, 0, 0, 1)
|
||||
probe (480, 0) rgba (1, 0, 0, 1)
|
||||
|
||||
alpha test never
|
||||
clear rtv 0 1 0 0 1
|
||||
draw quad
|
||||
probe (160, 0) rgba (1, 0, 0, 1)
|
||||
probe (320, 0) rgba (1, 0, 0, 1)
|
||||
probe (480, 0) rgba (1, 0, 0, 1)
|
Reference in New Issue
Block a user