//
// Generated by Microsoft (R) HLSL Shader Compiler 9.26.952.2844
//
// Parameters:
//
//   float4 fs_exposure;
//   float4 fs_fresnel_params;
//   float4 fs_inverse_projection_xy;
//   float4 fs_layer0_diffuse;
//   float4 fs_specular_params;
//   float4 fs_specular_specular;
//   float4 fs_surface_params;
//   float4 fs_vtf_kNormal;
//   
//   struct
//   {
//       row_major float4x4 eye2lightProjMtx;
//       float4 MinRadiusSq;
//       float4 MaxRadiusSq;
//       float4 CascadeUVScale;
//       float4 CascadeZScale;
//       float4 CascadeZShift;
//       float4 Params;
//       float4 softShadowFixedSpread;
//       float4 softShadowSpreadRatio;
//       float4 noiseScale;
//
//   } g_Cascade;
//   
//   struct
//   {
//       float4 posDirRadius;
//       float4 color;
//       float4 params1;
//       float4 params2;
//
//   } g_Light;
//   
//   struct
//   {
//       float4 shadowFactors;
//       float4 lightDirPos;
//       float4 params;
//
//   } g_ShadowCommon;
//   
//   sampler2D g_ShadowMapTex;
//   sampler2D layer0_sampler;
//   sampler2D surface_sampler;
//   sampler2D vtfNormal_sampler;
//
//
// Registers:
//
//   Name                     Reg   Size
//   ------------------------ ----- ----
//   fs_inverse_projection_xy c1       1
//   fs_layer0_diffuse        c4       1
//   fs_specular_specular     c8       1
//   fs_specular_params       c10      1
//   fs_surface_params        c11      1
//   fs_fresnel_params        c15      1
//   fs_vtf_kNormal           c22      1
//   fs_exposure              c45      1
//   g_ShadowCommon           c150     1
//   g_Cascade                c153    10
//   g_Light                  c180     3
//   layer0_sampler           s5       1
//   surface_sampler          s6       1
//   vtfNormal_sampler        s7       1
//   g_ShadowMapTex           s15      1
//

    ps_3_0
    def c0, 2, -1, -0, 0
    def c2, 0.5, -0.125, 0.125, 0.99000001
    def c3, 0.25, 0.5, 0.75, 0.00100000005

def c220, 0, 0, 0.0625, 0
dcl_2d s14
dcl_texcoord8 v8

    dcl_texcoord_centroid v0
    dcl_texcoord1_centroid v1
    dcl_texcoord2_centroid v2
    dcl_texcoord3_centroid v3
    dcl_texcoord4_centroid v4
    dcl_color v5.x
    dcl_2d s5
    dcl_2d s6
    dcl_2d s7
    dcl_2d s15
    mov r0.x, v3.w
    mov r0.y, v2.w
    mul r0.zw, c1, v0.w

    mad r0.xy, r0, c1, r0.zwzw

texldl r24, c220.z, s14
add r24.y,  v0.w, -r24.y
mul r24.x, r24.x, r24.y
mul r24.x, r24.x, v8.x
add  r0.x,  r0.x, -r24.x


    mul r0.yzw, r0.y, c154.xxyz
    mad r0.xyz, r0.x, c153, r0.yzww
    mad r0.xyz, v0.w, c155, r0
    add r0.xyz, r0, c156
    mul_pp r1.xy, r0, r0
    max_pp r0.w, r1.x, r1.y
    add r1, r0.w, -c158
    add r2, r0.w, -c157
    cmp_pp r1, r1, -c0.z, -c0.y
    cmp_pp r1, r2, r1, c0.w
    dp4 r0.w, r1, c160
    dp4 r2.x, r1, c161
    mad r2.w, r0.z, r0.w, r2.x
    dp4 r0.z, r1, c159
    mul r0.xy, r0, r0.z
    mad r0.xy, r0, c2, c2.xzzw
    dp3_pp r0.z, r1.yzww, c3
    dp4_pp r0.w, r1, -c0.y
    mad r2.z, r0.y, c162.x, r0.z
    mul r2.x, r0.x, c162.x
    cmp r0.xyz, -r0.w, c0.w, r2.xzww
    min r1.z, r0.z, c2.w
    mad r1.xyw, r0.xyzx, -c0.yyzz, -c0.wwzy
    texldp r0, r1, s15
    add_pp r0.x, -r0.x, -c0.y
    mul_pp r0.x, r0.x, c150.x
    add r0.y, -c150.y, v0.w
    mul_sat r0.y, r0.y, c150.z
    add_pp r0.y, -r0.y, -c0.y
    mad r0.x, r0.x, -r0.y, -c0.y
    mul_pp r0.x, r0.x, c182.z
    mul_pp r0.xyz, r0.x, c181
    mul_pp r0.xyz, r0, r0
    texld_pp r1, v4, s7
    mad_pp r1.xyz, r1, c0.x, c0.yyzw
    mul_pp r1.xy, r1, c22.x
    dp3_pp r0.w, r1, r1
    rsq_pp r0.w, r0.w
    mul_pp r1.xy, r1, r0.w
    texld_pp r2, v4.zwzw, s6
    mad r2.xyz, r2, c0.x, c0.yyzw
    mul r2.xy, r2, c11.x
    dp3 r0.w, r2, r2
    rsq r0.w, r0.w
    mad_pp r1.xy, r2, r0.w, r1
    nrm_pp r2.xyz, v2
    mul_pp r2.xyz, r1.y, r2
    nrm_pp r3.xyz, v3
    mad_pp r2.xyz, r3, r1.x, r2
    dp2add_sat_pp r0.w, r1, r1, c0.w
    add r0.w, -r0.w, -c0.y
    rsq r0.w, r0.w
    rcp_pp r0.w, r0.w
    nrm r1.xyz, v0
    mad r1.xyz, r1, r0.w, r2
    nrm_pp r2.xyz, r1
    nrm_pp r1.xyz, -v1
    dp3_pp r0.w, r2, r1
    add r1.w, r0.w, r0.w
    add_sat_pp r0.w, -r0.w, -c0.y
    mad_pp r1.xyz, r2, -r1.w, r1
    dp3_pp r1.w, -c180, r2
    max_pp r2.x, r1.w, c0.w
    dp3_sat_pp r1.x, -r1, -c180
    pow_pp r2.y, r1.x, c10.x
    mul_pp r1.x, r2.y, c10.w
    mul_pp r1.y, r2.x, c182.x
    mad_pp r2.xyz, r0, r2.x, c3.w
    mul_pp r1.x, r1.x, r1.y
    mul_pp r0.xyz, r0, r1.x
    mul_pp r1.x, r0.w, r0.w
    mul_pp r1.x, r1.x, r1.x
    mul_pp r0.w, r0.w, r1.x
    mov r1.y, c0.y
    add_pp r1.x, -r1.y, -c15.y
    add_pp r1.y, -r1.y, -c10.z
    mul_pp r1.x, r1.x, r1.y
    mad_pp r0.w, r1.x, r0.w, c15.y
    mul_sat_pp r0.w, r0.w, c8.x
    mul_pp r0.xyz, r0, r0.w
    texld_pp r1, v4.zwzw, s5
    mul_pp r1, r1, c4
    mul_pp r1.xyz, r1, r1
    mul_pp r0.w, r1.w, v5.x
    mad_pp r0.xyz, r1, r2, r0
    mul_pp r0.xyz, r0, v1.w
    mul_pp r0.xyz, r0, c45.y
    rsq_pp r1.x, r0.x
    rsq_pp r1.y, r0.y
    rsq_pp r1.z, r0.z
    mul_pp r1.xyz, r0_abs, r1
    cmp_pp r0.xyz, -c45.w, r0, r1
    mul oC0.xyz, r0.w, r0
    mov oC0.w, -c0.y

// approximately 111 instruction slots used (4 texture, 107 arithmetic)
 
