[require]
shader model >= 4.0

[texture 0]
size (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]
todo(sm>=6) 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]
todo(sm>=6) 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]
todo(sm>=6) 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)
