vkd3d/tests/hlsl/texture-load.shader_test
Francisco Casas b08be04465 tests/shader-runner: Change resource declaration syntax on shader_test files.
On shader_test files, now resources should be declared this way:

    [texture n]       -> [srv n]
    [srv buffer n]    -> [srv n]
    [uav n]           -> [uav n]
    [uav buffer n]    -> [uav n]
    [vertex buffer n] -> [vb n]
    [render target n] -> [rtv n]

The dimension (buffer or 2D) is now specified as an additional parameter
in the "size" directive:

  For 2D resources:
  size (n, m)         -> size (2d, n, m)

  For buffers:
  size (n, 1)         -> size (buffer, n)
2024-02-19 21:11:52 +01:00

120 lines
2.3 KiB
Plaintext

[require]
shader model >= 4.0
[srv 0]
size (2d, 2, 2)
0.1 0.2 0.3 0.4 0.5 0.7 0.6 0.8
0.6 0.5 0.2 0.1 0.8 0.0 0.7 1.0
[pixel shader]
Texture2D t;
float4 main(float4 pos : sv_position) : sv_target
{
return t.Load(int3(pos.xy, 0));
}
[test]
draw quad
probe (0, 0) rgba (0.1, 0.2, 0.3, 0.4)
probe (1, 0) rgba (0.5, 0.7, 0.6, 0.8)
probe (0, 1) rgba (0.6, 0.5, 0.2, 0.1)
probe (1, 1) rgba (0.8, 0.0, 0.7, 1.0)
[pixel shader]
Texture2D t;
float4 main(float4 pos : sv_position) : sv_target
{
return t[pos.yx];
}
[test]
draw quad
probe (0, 0) rgba (0.1, 0.2, 0.3, 0.4)
probe (1, 0) rgba (0.6, 0.5, 0.2, 0.1)
probe (0, 1) rgba (0.5, 0.7, 0.6, 0.8)
probe (1, 1) rgba (0.8, 0.0, 0.7, 1.0)
[pixel shader]
static const int size = 2;
Texture2DMS<float4, size - 1> t;
float4 main(float4 pos : sv_position) : sv_target
{
return t.Load(pos.yx, 0);
}
[test]
draw quad
probe (0, 0) rgba (0.1, 0.2, 0.3, 0.4)
probe (1, 0) rgba (0.6, 0.5, 0.2, 0.1)
probe (0, 1) rgba (0.5, 0.7, 0.6, 0.8)
probe (1, 1) rgba (0.8, 0.0, 0.7, 1.0)
% The sample count only matters for the external definition in SM4-5;
% internally it doesn't, you can even avoid it
[require]
shader model >= 4.0
shader model < 6.0
[pixel shader]
static const int size = 2;
Texture2DMS<float4, size - 1> t;
float4 main(float4 pos : sv_position) : sv_target
{
Texture2DMS<float4, 4> s = t;
return s.Load(pos.yx, 0);
}
[test]
draw quad
probe (0, 0) rgba (0.1, 0.2, 0.3, 0.4)
probe (1, 0) rgba (0.6, 0.5, 0.2, 0.1)
probe (0, 1) rgba (0.5, 0.7, 0.6, 0.8)
probe (1, 1) rgba (0.8, 0.0, 0.7, 1.0)
[pixel shader todo]
static const int size = 2;
Texture2DMS<float4, size - 1> t;
float4 main(float4 pos : sv_position) : sv_target
{
Texture2DMS<float4> s = t;
return s.Load(pos.yx, 0);
}
[test]
todo draw quad
probe (0, 0) rgba (0.1, 0.2, 0.3, 0.4)
probe (1, 0) rgba (0.6, 0.5, 0.2, 0.1)
probe (0, 1) rgba (0.5, 0.7, 0.6, 0.8)
probe (1, 1) rgba (0.8, 0.0, 0.7, 1.0)
% SM6 is stricter instead
[require]
shader model >= 6.0
[pixel shader fail]
static const int size = 2;
Texture2DMS<float4, size - 1> t;
float4 main(float4 pos : sv_position) : sv_target
{
Texture2DMS<float4, 4> s = t;
return s.Load(pos.yx, 0);
}
[pixel shader fail]
static const int size = 2;
Texture2DMS<float4, size - 1> t;
float4 main(float4 pos : sv_position) : sv_target
{
Texture2DMS<float4> s = t;
return s.Load(pos.yx, 0);
}