[require]
shader model >= 4.1


[rtv 0]
format r32g32b32a32-float
size (2dms, 4, 640, 480)

[pixel shader]
float4 main() : sv_target
{
    return float4(GetRenderTargetSampleCount(), 0, 0, 0);
}

[test]
todo(glsl | msl) draw quad
probe (0, 0) rgba (4.0, 0.0, 0.0, 0.0)

% Curiously GetRenderTargetSampleCount() returns a uint1, not a uint.
% In sm6 it is altered to return a uint.
[pixel shader fail(sm>=6)]
float4 main() : sv_target
{
    return GetRenderTargetSampleCount()[0];
}

[pixel shader todo]
uniform uint u;

float4 main() : sv_target
{
    return float4(GetRenderTargetSamplePosition(u), GetRenderTargetSamplePosition(u + 1));
}

[test]
uniform 0 uint 0
todo(sm<6 | msl) draw quad
probe (0, 0) rgba (-0.125, -0.375, 0.375, -0.125)
uniform 0 uint 2
todo(sm<6 | msl) draw quad
probe (0, 0) rgba (-0.375, 0.125, 0.125, 0.375)
