[sampler 0]
filter linear linear linear
address clamp clamp clamp

[srv 0]
size (2d, 2, 2)
0.0 0.0 0.0 0.0     0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0     1.0 0.0 1.0 0.0

[pixel shader todo(sm<4)]
sampler s;
Texture2D t;

float4 main() : sv_target
{
    return t.Sample(s, float2(0.5, 0.5));
}

[test]
todo(sm<4 | glsl) draw quad
probe (0, 0) rgba (0.25, 0, 0.25, 0)

[pixel shader todo(sm<4)]
SamplerState s;
Texture2D t;

float4 main() : sv_target
{
    return t.Sample(s, float2(0.5, 0.5));
}

[test]
todo(sm<4 | glsl) draw quad
probe (0, 0) rgba (0.25, 0, 0.25, 0)

[pixel shader fail]
sampler2D s;

float4 main() : sv_target
{
    return tex3D(s, float3(0.0, 0.0, 0.0));
}


[pixel shader fail]
sampler s;

float4 main() : sv_target
{
    return tex2D(s, float2(0.0, 0.0)) + tex3D(s, float3(0.0, 0.0, 0.0));
}

[require]
options: backcompat

[pixel shader fail(sm>=6)]
samplerCUBE s;

float4 main() : sv_target
{
    return texCUBE(s, float3(0.0, 0.0, 0.0));
}

[pixel shader fail(sm>=6)]
sampler1D s;

float4 main() : sv_target
{
    return tex1D(s, 0.0);
}