mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2025-01-28 13:05:02 -08:00
This is simply unnecessary and wastes time. As part of this, simply remove the "all" directive. Only for a couple of tests is it even potentially interesting to validate all pixels (e.g. nointerpolation.shader_test), and for those "all" is replaced with an explicit (0, 0, 640, 480) rect. In all other cases we just probe (0, 0).
157 lines
2.5 KiB
Plaintext
157 lines
2.5 KiB
Plaintext
[require]
|
|
shader model >= 4.0
|
|
shader model < 6.0
|
|
options: backcompat
|
|
|
|
|
|
[sampler 0]
|
|
filter linear linear linear
|
|
address clamp clamp clamp
|
|
|
|
[sampler 1]
|
|
filter linear linear linear
|
|
address clamp clamp clamp
|
|
|
|
[sampler 2]
|
|
filter linear linear linear
|
|
address clamp clamp clamp
|
|
|
|
[srv 0]
|
|
size (2d, 1, 1)
|
|
0.0 0.0 0.0 1.0
|
|
|
|
[srv 1]
|
|
size (2d, 1, 1)
|
|
1.0 1.0 1.0 1.0
|
|
|
|
[srv 2]
|
|
size (2d, 1, 1)
|
|
2.0 2.0 2.0 1.0
|
|
|
|
[srv 3]
|
|
size (2d, 1, 1)
|
|
3.0 3.0 3.0 1.0
|
|
|
|
[srv 4]
|
|
size (2d, 1, 1)
|
|
4.0 4.0 4.0 1.0
|
|
|
|
[pixel shader]
|
|
sampler sam;
|
|
|
|
float4 main() : sv_target
|
|
{
|
|
return tex2D(sam, float2(0, 0));
|
|
}
|
|
|
|
[test]
|
|
todo(glsl) draw quad
|
|
probe (0, 0) rgba (0, 0, 0, 1)
|
|
|
|
|
|
% Textures for new separated samplers are allocated before regular textures.
|
|
[pixel shader]
|
|
Texture2D tex;
|
|
sampler sam;
|
|
|
|
float4 main() : sv_target
|
|
{
|
|
return 10 * tex.Sample(sam, float2(0, 0)) + tex2D(sam, float2(0, 0));
|
|
}
|
|
|
|
[test]
|
|
todo(glsl) draw quad
|
|
probe (0, 0) rgba (10, 10, 10, 11)
|
|
|
|
|
|
[pixel shader todo(sm<4)]
|
|
Texture2D tex;
|
|
sampler sam[2];
|
|
|
|
float4 main() : sv_target
|
|
{
|
|
return 10 * tex.Sample(sam[0], float2(0, 0)) + tex2D(sam[1], float2(0, 0));
|
|
}
|
|
|
|
[test]
|
|
todo(glsl) draw quad
|
|
probe (0, 0) rgba (21, 21, 21, 11)
|
|
|
|
|
|
[pixel shader]
|
|
sampler sam0;
|
|
sampler sam1;
|
|
sampler sam2;
|
|
|
|
float4 main() : sv_target
|
|
{
|
|
return 100 * tex2D(sam1, float2(0, 0)) + 10 * tex2D(sam0, float2(0, 0))
|
|
+ tex2D(sam2, float2(0, 0));
|
|
}
|
|
|
|
[test]
|
|
todo(glsl) draw quad
|
|
probe (0, 0) rgba (12, 12, 12, 111)
|
|
|
|
|
|
[pixel shader]
|
|
Texture2D tex[2][2];
|
|
sampler sam;
|
|
|
|
float4 main() : sv_target
|
|
{
|
|
return 100 * tex[0][0].Load(int3(0, 0, 0)) + 10 * tex2D(sam, float2(0, 0))
|
|
+ tex[1][1].Sample(sam, float2(0, 0));
|
|
}
|
|
|
|
[test]
|
|
todo(glsl) draw quad
|
|
probe (0, 0) rgba (104, 104, 104, 111)
|
|
|
|
|
|
% Sampler arrays with components that have different usage dimensions are only forbidden in SM4 upwards.
|
|
% However, tex2D and tex1D are considered the same dimension for these purposes.
|
|
[pixel shader fail(sm>=4)]
|
|
sampler sam[2];
|
|
|
|
float4 main() : sv_target
|
|
{
|
|
return tex2D(sam[0], float2(0, 0)) + tex3D(sam[1], float3(0, 0, 0));
|
|
}
|
|
|
|
|
|
[pixel shader]
|
|
sampler sam[2];
|
|
|
|
float4 main() : sv_target
|
|
{
|
|
return 10 * tex2D(sam[0], float2(0, 0)) + tex1D(sam[1], 0);
|
|
}
|
|
|
|
[test]
|
|
todo(glsl) draw quad
|
|
probe (0, 0) rgba (1, 1, 1, 11)
|
|
|
|
|
|
[require]
|
|
shader model >= 5.0
|
|
shader model < 6.0
|
|
options: backcompat
|
|
|
|
|
|
[pixel shader todo]
|
|
struct
|
|
{
|
|
Texture2D tex;
|
|
sampler sam;
|
|
} foo;
|
|
|
|
float4 main() : sv_target
|
|
{
|
|
return 10 * foo.tex.Sample(foo.sam, float2(0, 0)) + tex2D(foo.sam, float2(0, 0));
|
|
}
|
|
|
|
[test]
|
|
todo draw quad
|
|
todo probe (0,0) rgba (10, 10, 10, 11)
|