//
// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111
//
// Parameters:
//
//   sampler3D LightVolume0;
//   sampler3D LightVolume1;
//   sampler3D LightVolume2;
//   float4 LightVolumeInvSize;
//   float4x4 LightVolumeInvWorld;
//   float4 LightVolumeSettings;
//   float cameraFar;
//   float cameraFarMinusNear;
//   float cameraNearFar;
//   float3 eyePositionWS;
//   sampler2D g_GBufferDepth;
//   sampler2D g_GBufferDiffuse;
//   sampler2D g_GBufferNormal;
//   sampler2D g_GBufferSpecular;
//   float g_RenderRatio;
//
//
// Registers:
//
//   Name                Reg   Size
//   ------------------- ----- ----
//   LightVolumeInvWorld c0       4
//   eyePositionWS       c4       1
//   cameraFar           c5       1
//   cameraNearFar       c6       1
//   cameraFarMinusNear  c7       1
//   g_RenderRatio       c8       1
//   LightVolumeInvSize  c9       1
//   LightVolumeSettings c10      1
//   g_GBufferDiffuse    s0       1
//   g_GBufferNormal     s1       1
//   g_GBufferSpecular   s2       1
//   g_GBufferDepth      s3       1
//   LightVolume0        s4       1
//   LightVolume1        s5       1
//   LightVolume2        s6       1
//

    ps_3_0
    def c11, 2, -1, 2.20000005, 4
    def c12, 1024, 0.5, 0, 8
    def c13, 0.0397887453, 0, 0, 0
def c220, 1, 0.5, 0.0625, 0.83
dcl_2d s14
dcl vPos.xy
    dcl_texcoord v0.xy  // IN<4,5>
    dcl_texcoord1 v1.xyz  // IN<6,7,8>
    dcl_2d s0
    dcl_2d s1
    dcl_2d s2
    dcl_2d s3
    dcl_volume s4
    dcl_volume s5
    dcl_volume s6

#line 702 "pp_def_omni.cgfx"
    mul r0.xy, c8.x, v0  // 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 r1, r0, s3  // getDepth::depthSample<0>

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

#line 710 "pp_def_omni.cgfx"
    mad r1.xyz, r0.z, v1, 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

    mul r2.xyz, r0.z, v1  // ::eyeToPos<0,1,2>
    nrm r3.xyz, -r2  // ::geom<5,6,7>


#line 806
    mul r2.xyz, r1.y, c1
    mad r1.xyw, c0.xyzz, r1.x, r2.xyzz
    mad r1.xyz, c2, r1.z, r1.xyww
    add r1.xyz, r1, c3  // ::worldPos<0,1,2>
    mul_pp r2.xyz, r1, c9  // ::uvw<0,1,2>
    mov r1.y, c11.y
    mad r0.z, r1.z, -c9.z, -r1.y
    mov_sat_pp r0.w, r2.z  // ::uvw<2>

#line 815
    add r0.w, r0.w, -c9.z
    mul_pp r1.z, r0.w, c12.y  // ::uvwPos<2>
    mad_pp r2.w, r0.w, c12.y, c12.y  // ::uvwNeg<2>

#line 819
    mov_pp r1.xy, r2

#line 713
    texld_pp r4, r0, s1  // ::n<0,1,2>

#line 717
    mad r4.xyz, r4, c11.x, c11.y
    nrm_pp r5.xyz, r4  // ::geom<9,10,11>

#line 819
    cmp_pp r4.xyz, -r5.x, r2.xyww, r1
    texld_pp r4, r4, s4  // ::lv0<0,1,2,3>

#line 824
    mov_sat_pp r6.xyz, -r5  // ::negDir<0,1,2>

#line 828
    mul_pp r7.xyz, r4, r6.x
    mul_pp r7.xyz, r4.w, r7

#line 823
    mov_sat_pp r8.xyz, r5  // ::posDir<0,1,2>

#line 827
    mul_pp r4.xyz, r4, r8.x
    mad_pp r4.xyz, r4, r4.w, r7  // ::lighting<0,1,2>

#line 820
    cmp_pp r7.xyz, -r5.y, r2.xyww, r1
    cmp_pp r1.xyz, -r5.z, r2.xyww, r1

#line 834
    mov r9.z, c12.z
    cmp_pp r0.w, r2.z, c10.y, r9.z
    cmp_pp r0.z, r0.z, r0.w, c12.z  // ::intensity<0>

#line 837
    dp3_sat r0.w, r5, r3  // ::ndh<0>

#line 821
    texld_pp r1, r1, s6  // ::lv2<0,1,2,3>
    texld_pp r2, r7, s5  // ::lv1<0,1,2,3>

#line 829
    mul_pp r3.xyz, r2, r8.y
    mul_pp r5.xyz, r1, r8.z
    mad_pp r3.xyz, r3, r2.w, r4  // ::lighting<0,1,2>
    mul_pp r2.xyz, r2, r6.y
    mad_pp r2.xyz, r2, r2.w, r3  // ::lighting<0,1,2>
    mad_pp r2.xyz, r5, r1.w, r2  // ::lighting<0,1,2>
    mul_pp r1.xyz, r1, r6.z
    mad_pp r1.xyz, r1, r1.w, r2  // ::lighting<0,1,2>

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

#line 747
    mul_pp r0.x, r2.w, c12.x
    max_pp r1.w, r0.x, -c11.y  // ::material<7>

#line 838
    pow_pp r2.w, r0.w, r1.w  // ::specPower<0>
    add r0.x, r1.w, c12.w
    mul r0.x, r0.x, r2.w
    mul_sat_pp r0.x, r0.x, c13.x  // ::specPower<0>
    mul_pp r0.xyw, r0.x, r2.xyzz
    mul_pp r0.xyw, r1.xyzz, r0
    mul_pp r0.xyw, r0.z, r0

#line 730
    log_pp r2.x, r3.x
    log_pp r2.y, r3.y
    log_pp r2.z, r3.z

#line 746
    mul_pp r1.w, r3.w, c11.w  // ::material<3>

#line 730
    mul_pp r2.xyz, r2, c11.z
    exp_pp r3.x, r2.x  // ::gammaToLinear<0>
    exp_pp r3.y, r2.y  // ::gammaToLinear<1>
    exp_pp r3.z, r2.z  // ::gammaToLinear<2>

#line 835
    mul_pp r1.xyz, r1, r3

#line 840
    mad_pp r0.xyz, r1, r0.z, r0.xyww  // ::rgb<0,1,2>

#line 1485
    mad_pp oC0.xyz, r3, r1.w, r0  // ::mainFPFullscreenVolSelf<0,1,2>
    mov_pp oC0.w, -c11.y  // ::mainFPFullscreenVolSelf<3>

// approximately 77 instruction slots used (7 texture, 70 arithmetic)
 