mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2025-09-12 18:50:22 -07:00
tests/shader-runner: Add sampler comparison tests.
This commit is contained in:
committed by
Alexandre Julliard
parent
7273d7f54f
commit
7fcf1b6ca2
Notes:
Alexandre Julliard
2024-03-11 23:05:27 +01:00
Approved-by: Giovanni Mascellani (@giomasce) Approved-by: Henri Verbeet (@hverbeet) Approved-by: Alexandre Julliard (@julliard) Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/673
144
tests/hlsl/sample-cmp.shader_test
Normal file
144
tests/hlsl/sample-cmp.shader_test
Normal file
@@ -0,0 +1,144 @@
|
||||
[require]
|
||||
shader model >= 4.0
|
||||
|
||||
[sampler 0]
|
||||
filter linear linear linear
|
||||
address clamp clamp clamp
|
||||
comparison never
|
||||
|
||||
[srv 0]
|
||||
format r32 float shadow
|
||||
size (2d, 2, 2)
|
||||
0.5 0.5
|
||||
0.5 0.5
|
||||
|
||||
[pixel shader]
|
||||
Texture2D<float> t : register(t0);
|
||||
SamplerComparisonState s : register(s0);
|
||||
|
||||
float4 main() : sv_target
|
||||
{
|
||||
float ref = 0.5, delta = 0.00000007;
|
||||
return float4(
|
||||
t.SampleCmpLevelZero(s, float2(0.5, 0.5), ref - delta),
|
||||
t.SampleCmpLevelZero(s, float2(0.5, 0.5), ref),
|
||||
t.SampleCmpLevelZero(s, float2(0.5, 0.5), ref + delta),
|
||||
1.0);
|
||||
}
|
||||
|
||||
[test]
|
||||
draw quad
|
||||
probe all rgba (0.0, 0.0, 0.0, 1.0)
|
||||
|
||||
[sampler 0]
|
||||
filter linear linear linear
|
||||
address clamp clamp clamp
|
||||
comparison less
|
||||
|
||||
[test]
|
||||
draw quad
|
||||
probe all rgba (1.0, 0.0, 0.0, 1.0)
|
||||
|
||||
[sampler 0]
|
||||
filter linear linear linear
|
||||
address clamp clamp clamp
|
||||
comparison equal
|
||||
|
||||
[test]
|
||||
draw quad
|
||||
probe all rgba (0.0, 1.0, 0.0, 1.0)
|
||||
|
||||
[sampler 0]
|
||||
filter linear linear linear
|
||||
address clamp clamp clamp
|
||||
comparison less equal
|
||||
|
||||
[test]
|
||||
draw quad
|
||||
probe all rgba (1.0, 1.0, 0.0, 1.0)
|
||||
|
||||
[sampler 0]
|
||||
filter linear linear linear
|
||||
address clamp clamp clamp
|
||||
comparison greater
|
||||
|
||||
[test]
|
||||
draw quad
|
||||
probe all rgba (0.0, 0.0, 1.0, 1.0)
|
||||
|
||||
[sampler 0]
|
||||
filter linear linear linear
|
||||
address clamp clamp clamp
|
||||
comparison not equal
|
||||
|
||||
[test]
|
||||
draw quad
|
||||
probe all rgba (1.0, 0.0, 1.0, 1.0)
|
||||
|
||||
[sampler 0]
|
||||
filter linear linear linear
|
||||
address clamp clamp clamp
|
||||
comparison greater equal
|
||||
|
||||
[test]
|
||||
draw quad
|
||||
probe all rgba (0.0, 1.0, 1.0, 1.0)
|
||||
|
||||
[sampler 0]
|
||||
filter linear linear linear
|
||||
address clamp clamp clamp
|
||||
comparison always
|
||||
|
||||
[test]
|
||||
draw quad
|
||||
probe all rgba (1.0, 1.0, 1.0, 1.0)
|
||||
|
||||
|
||||
[sampler 0]
|
||||
filter linear linear linear
|
||||
address clamp clamp clamp
|
||||
comparison greater
|
||||
|
||||
% Non-constant ref
|
||||
[pixel shader]
|
||||
Texture2D<float> t : register(t0);
|
||||
SamplerComparisonState s : register(s0);
|
||||
|
||||
float ref, delta;
|
||||
|
||||
float4 main() : sv_target
|
||||
{
|
||||
return float4(
|
||||
t.SampleCmpLevelZero(s, float2(0.5, 0.5), ref - delta),
|
||||
t.SampleCmpLevelZero(s, float2(0.5, 0.5), ref),
|
||||
t.SampleCmpLevelZero(s, float2(0.5, 0.5), ref + delta),
|
||||
1.0);
|
||||
}
|
||||
|
||||
[test]
|
||||
uniform 0 float 0.5
|
||||
uniform 1 float 0.00000007
|
||||
draw quad
|
||||
probe all rgba (0.0, 0.0, 1.0, 1.0)
|
||||
|
||||
|
||||
[pixel shader]
|
||||
Texture2D<float> t : register(t0);
|
||||
SamplerComparisonState s : register(s0);
|
||||
|
||||
float ref;
|
||||
|
||||
float4 main() : sv_target
|
||||
{
|
||||
float delta = 0.00000007;
|
||||
return float4(
|
||||
t.SampleCmp(s, float2(0.5, 0.5), ref - delta),
|
||||
t.SampleCmp(s, float2(0.5, 0.5), 0.5),
|
||||
t.SampleCmp(s, float2(0.5, 0.5), ref + delta),
|
||||
1.0);
|
||||
}
|
||||
|
||||
[test]
|
||||
uniform 0 float 0.5
|
||||
draw quad
|
||||
probe all rgba (0.0, 0.0, 1.0, 1.0)
|
Reference in New Issue
Block a user