[Unity][Shader] ビルド時にエラー"invalid input semantic 'POSITION' " が出力される


現象

エディターでは動いていたのですが、いざビルドしようとすると以下のエラーが出力される

invalid input semantic 'POSITION'

エラーが出たコードは以下。
_CameraDepthTextureを使用せずに深度画像をレンダリングするシンプルなコードです。

Pass {
    cull off

    CGPROGRAM
    #pragma target 3.0
    #pragma vertex vert
    #pragma fragment frag
    #include "UnityCG.cginc"

    struct v2f { 
        float4 pos : SV_POSITION;
    };

    v2f vert(appdata_base v)
    {
        v2f o = (v2f)0;
        o.pos = mul(UNITY_MATRIX_MVP, v.vertex);
        return o;
    }

    float4 frag( v2f i ) : SV_Target
    {
        float depth = i.pos.z;
        return depth.xxxx;
    }
    ENDCG
}

原因と対策

以下のサイトに情報が乗ってました。
http://www.boutin.de/hlsl-error-x4502-invalid-input-semantic-position/

POSITIONセマンティクスは頂点シェーダーでは使用できるが、フラグメントシェーダーでは使用できないとのことです。
考えてみれば、頂点を扱う変数をピクセルシェーダーで使用するのも変な話ですね。

頂点シェーダー内で、pos.zを別の変数に入れることで使用できました。