struct PSInput {
  float interp;
  uint no_interp;
};

struct PSOutput {
    float4 o1 : SV_TARGET1;
    float4 o2 : SV_TARGET0;
};

PSOutput main(PSInput input : INPUT, out float4 po : SV_TARGET0) : SV_TARGET2
{
    PSOutput pso;
    pso.o1 = float4(float(input.no_interp), input.interp, 0, 1);
    pso.o2 = 1;
    po = 0;

    return pso;
}