//
// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111
//
// Parameters:
//
//   float4 LghtAttn0;
//   float4 LghtColor0;
//   float4 LghtDir0;
//   float4 LghtPos0;
//   sampler2D PSSGShadowPSSMapDepthMap0;
//   float4x4 PSSGShadowPSSMapLightTextureMatrix0;
//   float ShadowOpacity;
//   float cameraFar;
//   float cameraFarMinusNear;
//   float cameraNearFar;
//   float3 eyePositionWS;
//   sampler2D g_GBufferDepth;
//   sampler2D g_GBufferDiffuse;
//   sampler2D g_GBufferNormal;
//   sampler2D g_GBufferSpecular;
//   float4 g_PixelPerfectScreenOffset;
//   float g_RenderRatio;
//   float4 g_ShadowMapSizeAndDuDv;
//
//
// Registers:
//
//   Name                                Reg   Size
//   ----------------------------------- ----- ----
//   PSSGShadowPSSMapLightTextureMatrix0 c0       4
//   eyePositionWS                       c4       1
//   cameraFar                           c5       1
//   cameraNearFar                       c6       1
//   cameraFarMinusNear                  c7       1
//   g_RenderRatio                       c8       1
//   LghtPos0                            c9       1
//   LghtColor0                          c10      1
//   LghtAttn0                           c11      1
//   LghtDir0                            c12      1
//   ShadowOpacity                       c13      1
//   g_ShadowMapSizeAndDuDv              c14      1
//   g_PixelPerfectScreenOffset          c15      1
//   g_GBufferDiffuse                    s0       1
//   g_GBufferNormal                     s1       1
//   g_GBufferSpecular                   s2       1
//   g_GBufferDepth                      s3       1
//   PSSGShadowPSSMapDepthMap0           s4       1
//

    ps_3_0
    def c16, 2.20000005, 1024, 0.001953125, -1
    def c17, 80, 0.100000001, 40, 1
    def c18, 0.5, -0.5, 2, -1
    def c19, 3, 0, 1.44269502, -115.415604
    def c20, 0.0666666701, -1, 8, 0.0397887453
    def c21, 4, 0, 0, 0
    defi i0, 3, 0, 0, 0
def c220, 1, 0.5, 0.0625, 0.83
dcl_2d s14
dcl vPos.xy
    dcl_texcoord v0.xyw  // IN<4,5,7>
    dcl_texcoord1 v1.xyz  // IN<8,9,10>
    dcl_2d s0
    dcl_2d s1
    dcl_2d s2
    dcl_2d s3
    dcl_2d s4

#line 1102 "pp_def_omni.cgfx"
    rcp r0.x, v0.w  // ::oow<0>
    mul r0.yz, r0.x, v0.xxyw  // ::uvProj<0,1>
    mul_pp r1.xyz, r0.x, v1  // mainFPStencilLight::IN<8,9,10>

#line 1109
    mov r2.xyw, c18
    mad r0.xy, r0.yzzw, r2, c15
    add r0.xy, r0, c18.x  // ::uv<0,1>

#line 702
    mul r0.xy, r0, c8.x  // FetchGeom::uv<0,1>

    mov r11.xy, vPos.xy
    rcp r11.z, c210.x
    rcp r11.w, c210.y
    mul r11.xy, r11.xy, r11.zw
    mul r11.zw, r11.zw, c220.yy
    add r0.xy, r11.xy, r11.zw
	
#line 706
    texld r3, r0, s3  // getDepth::depthSample<0>

#line 231 "incCommon.cgfx"
    mov r4.x, c7.x  // ::cameraFarMinusNear<0>
    mad r0.z, r3.x, r4.x, -c5.x
    rcp r0.z, r0.z
    mul r0.z, r0.z, c6.x  // ::viewSpaceZ<0>

#line 709 "pp_def_omni.cgfx"
    mul r3.xyz, r1, r0.z  // ::eyeToPos<0,1,2>
    mad r1.xyz, r0.z, r1, c4  // ::geom<0,1,2>
	
//Mike_ar69: Stereo Correct
mov r21.xyz, r1.xyz
mov r21.w, c220.x

mul r22, r21.y, c205
mad r22, c204, r21.x, r22
mad r22, c206, r21.z, r22
add r22, c207, r22
	
texldl r24, c220.z, s14
add r24.y, -r22.z, -r24.y
mul r24.x, r24.x, r24.y
rcp r25.x, c100.x
mul r24.x, r24.x, r25.x //c100.x //c220.w
add r22.x, r22.x, -r24.x

rcp r25.w, r22.w
mul r22, r22, r25.w

mul r21, r22.y, c201
mad r21, c200, r22.x, r21
mad r21, c202, r22.z, r21
add r21, c203, r21

rcp r25.w, r21.w
mul r21.xyz, r21.xyz, r25.w

mov r1.xyz, r21.xyz

    dp3 r0.z, -r3, -r3
    rsq r0.z, r0.z
    texld_pp r4, r0, s1  // ::n<0,1,2>

#line 717
    mad r4.xyz, r4, c18.z, c18.w
    nrm_pp r5.xyz, r4  // ::geom<9,10,11>

#line 740
    texld_pp r4, r0, s2  // ::s<0,1,2,3>
    texld_pp r6, r0, s0  // ::d<0,1,2>

#line 730
    log_pp r7.x, r6.x
    log_pp r7.y, r6.y
    log_pp r7.z, r6.z
    mul_pp r0.xyw, r7.xyzz, c16.x
    exp_pp r6.x, r0.x  // ::gammaToLinear<0>
    exp_pp r6.y, r0.y  // ::gammaToLinear<1>
    exp_pp r6.z, r0.w  // ::gammaToLinear<2>

#line 747
    mul_pp r0.x, r4.w, c16.y
    max_pp r1.w, r0.x, -c18.w  // ::material<7>

#line 608
    add r0.xyw, -r1.xyzz, c9.xyzz  // ::lightVec<0,1,2>

#line 611
    dp3 r2.z, r0.xyww, r0.xyww
    rsq r2.z, r2.z
    rcp r3.w, r2.z  // ::lightDist<0>
    mul r0.xyw, r0, r2.z  // ::lightVec<0,1,2>

#line 616
    dp3 r2.z, -c12, r0.xyww  // ::dirContribution<0>
    add r2.z, r2.z, -c11.z
    mul_sat r2.z, r2.z, c11.w  // ::coneAttn<0>

#line 621
    add r3.w, r3.w, -c11.x
    mul_sat_pp r3.w, r3.w, c11.y  // ::attn<0>

#line 629
    mul_pp r3.w, r3.w, r3.w  // ::attn<0>

#line 642
    mul r7, r1.y, c1
    mad r7, c0, r1.x, r7
    mad r7, c2, r1.z, r7
    add r7, r7, c3  // ::uv0<0,1,2,3>

#line 403
    rcp r1.x, r7.w

#line 206
    mul r1.yz, r2.x, c14.xzww  // ::halfOff<0,1>

#line 411
    mov r8.x, c14.x  // ::g_ShadowMapSizeAndDuDv<0>
    mad_sat r4.w, r8.x, c16.z, c16.w  // ::factor<0>

#line 414
    mad r8.xy, r4.w, c17, c17.zwzw  // ::esmK<0>, ::esmScale<0>

#line 199
    rcp r9.y, c14.x
    rcp r9.w, c14.y

#line 430
    mad r4.w, r7.z, -r1.x, -c18.w
    rcp r4.w, r4.w

#line 422
    mov r5.w, c19.y  // ::sum<0>
    mov r6.w, c18.w  // ::x<0>
    rep i0

#line 426
      add r7.w, -r6_abs.w, c19.x

#line 429
      mul r10.y, r6.w, c14.z

#line 424
      mov r11.x, r5.w  // ::sum<0>
      mov r11.y, c18.w  // ::y<0>
      rep i0
        add r8.z, r7.w, -r11_abs.y  // ::weightFilter<0>

#line 429
        mul r10.w, r11.y, c14.w
        mad_sat r9.xz, r7.xyyw, r1.x, r10.yyww  // getDepthAndWeightFilterBilinear::uv<0,1>

#line 199
        mul r10.xz, r9, c14.xyyw
        frc r11.zw, r10.xyxz
        add r10.xz, r10, -r11.zyww
        mul r11.zw, r9.xyyw, r10.xyxz  // ::uvRound<0,1>

#line 207
        mad r12.xy, r10.xzzw, r9.ywzw, -r1.yzzw  // ::uvX<0,1>
        mad r12.zw, r10.xyxz, r9.xyyw, r1.xyyz  // ::uvZ<0,1>
        mad r13, c14.zwzw, r2.xyyx, r11.zwzw  // ::uvY<0,1>, ::uvW<0,1>
        mad r9.xz, r10, -r9.yyww, r9
        mul r10.xz, r9, c14.xyyw  // ::fracUV<0,1>
        mad r9.xz, r9.zyxw, -c14.yyxw, -r2.w
        mul r14.x, r9.x, r9.z  // getDepthAndWeightFilterBilinear::weights<0>
        mul r14.z, r10.z, r10.x  // getDepthAndWeightFilterBilinear::weights<2>
        mul r14.yw, r9.xxzz, r10.xxzz  // getDepthAndWeightFilterBilinear::weights<1,3>

#line 219
        texld r15, r12, s4  // getDepth::depthSample<0>
        texld r16, r13, s4  // getDepth::depthSample<0>
        texld r12, r12.zwzw, s4  // getDepth::depthSample<0>
        texld r13, r13.zwzw, s4  // getDepth::depthSample<0>

#line 430
        mov r15.y, r16.x
        mov r15.z, r12.x
        mov r15.w, r13.x
        mad r12, r7.z, -r1.x, r15
        mul r12, r4.w, r12
        mul r13, r8.x, r12
        mad r12, r8.x, -r12, -c17.x
        mul r13, r13, c19.z
        cmp r12, r12, c19.w, r13
        exp_sat r13.x, r12.x  // ::shadowExp<0>
        exp_sat r13.y, r12.y  // ::shadowExp<1>
        exp_sat r13.z, r12.z  // ::shadowExp<2>
        exp_sat r13.w, r12.w  // ::shadowExp<3>
        dp4 r8.w, r14, r13  // ::shadow<0>
        add r8.w, -r8.w, -c18.w
        mad_sat r8.w, r8.y, -r8.w, -c18.w  // ::shadow<0>
        mad r11.x, r8.z, r8.w, r11.x  // ::sum<0>

#line 424
        add r11.y, r11.y, -c18.w  // ::y<0>
      endrep
      mov r5.w, r11.x  // ::sum<0>
      add r6.w, r6.w, -c18.w  // ::x<0>
    endrep

#line 589
    mad r1.x, r5.w, c20.x, c20.y
    mad_pp r1.x, c13.x, r1.x, -r2.w  // ::shadow<0>

#line 672
    add_pp r1.y, -r2.z, -c18.w
    max_pp r2.x, r1.y, r1.x  // ::shadow<0>

#line 676
    mad r1.xyz, -r3, r0.z, r0.xyww
    nrm_pp r3.xyz, r1  // ::halfVec<0,1,2>
    dp3_sat r0.x, r5, r0.xyww  // ::ndl<0>

#line 681
    dp3_sat_pp r0.y, r5, r3  // ::ndh<0>
    pow_pp r2.y, r0.y, r1.w  // ::specPower<0>
    add r0.y, r1.w, c20.z
    mul r0.y, r0.y, r2.y
    mul_pp r0.y, r0.y, c20.w  // ::specPower<0>

#line 692
    mul_pp r0.yzw, r0.y, r4.xxyz
    mul_sat r1.x, r0.x, c21.x
    mul r0.yzw, r0, r1.x
    mad_pp r0.xyz, r6, r0.x, r0.yzww  // ::result<0,1,2>
    mul r1.xyz, r3.w, c10
    mul r1.xyz, r2.x, r1
    mul_pp oC0.xyz, r0, r1  // ::mainFPStencilOmniShadowPers<0,1,2>
    mov_pp oC0.w, -c18.w  // ::mainFPStencilOmniShadowPers<3>

// approximately 136 instruction slots used (8 texture, 128 arithmetic)
 