//SHADOWS
// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111
//
// Parameters:
//
//   float4x4 g_cameraToShadowProjector;
//   float4 g_sceneTextureSize;
//   float4 g_shadowCascadeColor;
//   float4 g_shadowFadeDistances;
//   float g_shadowPixelSize;
//   float4 g_shadowTextureSize;
//   float4x4 g_worldView;
//   sampler2D sceneSamplerDepth;
//   sampler2D shadowSampler;
//
//
// Registers:
//
//   Name                      Reg   Size
//   ------------------------- ----- ----
//   g_cameraToShadowProjector c0       4
//   g_worldView               c4       3
//   g_sceneTextureSize        c7       1
//   g_shadowTextureSize       c8       1
//   g_shadowCascadeColor      c9       1
//   g_shadowFadeDistances     c10      1
//   g_shadowPixelSize         c11      1
//   sceneSamplerDepth         s0       1
//   shadowSampler             s1       1
//
// 
// Default values:
//
//   g_cameraToShadowProjector
//     c0   = { 0, 0, 0, 0 };
//     c1   = { 0, 0, 0, 0 };
//     c2   = { 0, 0, 0, 0 };
//     c3   = { 0, 0, 0, 0 };
//
//   g_worldView
//     c4   = { 0, 0, 0, 0 };
//     c5   = { 0, 0, 0, 0 };
//     c6   = { 0, 0, 0, 0 };
//
//   g_sceneTextureSize
//     c7   = { 0, 0, 0, 0 };
//
//   g_shadowTextureSize
//     c8   = { 0, 0, 0, 0 };
//
//   g_shadowCascadeColor
//     c9   = { 0, 0, 0, 0 };
//
//   g_shadowFadeDistances
//     c10  = { 0, 0, 0, 0 };
//
//   g_shadowPixelSize
//     c11  = { 0, 0, 0, 0 };
//

    ps_3_0
    def c12, 0.5, 0, 2.5, 1
    def c13, -1.99999995e-005, 0.0833333358, 0, 0
    def c14, -0.0174499992, 1.68314505, -1.26170254, 1.44229996
    def c15, -1.04089749, -0.65644753, 0.868130028, 0.508212507
    def c16, -0.142492503, -1.77057254, 1.15585494, 1.6522975
    def c17, 0.904980004, -1.16333497, 2.00254989, 0.180197507
    def c18, -0.41099, 0.400737494, -1.65660751, -1.73220503
    def c19, 2.16099238, -1.08537996, -2.46827006, -0.123702496
def c220, 1, 0.835, 0.0625, 0.5
dcl_2d s15
    dcl_texcoord v0.xyz
dcl_texcoord2 v3.xyz					//shifted bersion of v0, from VS A66921A2
    dcl vPos.xy
    dcl_2d s0
    dcl_2d s1

    add r0.xy, c12.x, vPos
    mul r0.xy, r0, c7.zwzw
    mov r0.zw, c12.y
    texldl r0, r0, s0

    rcp r0.y, v3.z
    mul r0.yzw, r0.y, v3.xxyz
	
rcp r10.y, v0.z
mul r10.yzw, r10.y, v0.xxyz
    
	mul r1.xyz, -r0.x, r0.yzww

    rcp r1.w, r1.z
    mul r1.xyz, r1.w, r1

    mov r2.z, c12.z
    mad r1.w, c11.x, -r2.z, r0.x
    mul r1.xyz, -r1.w, r1
    mov r1.w, c12.w
	
texldl r24, c220.z, s15
add r24.y, -r1.z, -r24.y
mul r24.x, r24.x, r24.y
rcp r25.x, c190.x
mul r24.x, r24.x, r25.x 
add r1.x, r1.x, -r24.x	
	
    dp4 r2.x, r1, c3
    rcp r2.x, r2.x
    dp4 r3.x, r1, c0
    dp4 r3.y, r1, c1
    dp4 r3.z, r1, c2
	
    mul r1.xyz, r2.x, r3.zxyw
    mov_sat r1.x, r1.x
    add r2.z, r1.x, c13.x
    mov r3.zw, c8
    mad r4, r3.zwzw, c14, r1.yzyz
    mul r2.xyw, r4.xyzx, c12.wwzy
    mul r4.xyw, r4.zwzx, c12.wwzy
    texldl r5, r2, s1
    mov r4.z, r2.z
    texldl r2, r4, s1
    add r1.x, r2.x, r5.x
    mad r2, r3.zwzw, c15.zwxy, r1.yzyz
    mov r4.xy, r2.zwzw
    texldl r5, r4, s1
    mov r2.zw, r4
    add r1.x, r1.x, r5.x
    texldl r4, r2, s1
    add r1.x, r1.x, r4.x
    mad r4, r3.zwzw, c16.zwxy, r1.yzyz
    mov r2.xy, r4.zwzw
    texldl r5, r2, s1
    mov r4.zw, r2
    add r1.x, r1.x, r5.x
    texldl r2, r4, s1
    add r1.x, r1.x, r2.x
    mad r2, r3.zwzw, c17.zwxy, r1.yzyz
    mov r4.xy, r2.zwzw
    texldl r5, r4, s1
    mov r2.zw, r4
    add r1.x, r1.x, r5.x
    texldl r4, r2, s1
    add r1.x, r1.x, r4.x
    mad r4, r3.zwzw, c18.zwxy, r1.yzyz
    mad r3, r3.zwzw, c19.zwxy, r1.yzyz
    mov r2.xy, r4.zwzw
    texldl r5, r2, s1
    mov r4.zw, r2
    add r1.x, r1.x, r5.x
    texldl r2, r4, s1
    add r1.x, r1.x, r2.x
    mov r4.xy, r3.zwzw
    texldl r2, r4, s1
    mov r3.zw, r4
    texldl r3, r3, s1
    add r1.x, r1.x, r2.x
    add r1.x, r3.x, r1.x
    mul r1.y, r1.x, c13.y
    mov r2.xyz, c9
    mad r1.xzw, r1.x, -c13.y, r2.xyyz
    mad r1.xyz, c9.w, r1.xzww, r1.y
	
    mov r2.x, -c4.w					//Eyepos
    mov r2.y, -c5.w
    mov r2.z, -c6.w
	
    // mad r0.xyz, r0.yzww, -r0.x, r2
mad r0.xyz, r10.yzww, -r0.x, r2

    dp3 r0.x, r0, r0
    rsq r0.x, r0.x
    rcp r0.x, r0.x
    add r0.x, r0.x, -c10.y
    add r0.y, -c10.y, c10.x
    rcp r0.y, r0.y
    mul_sat r0.x, r0.y, r0.x
    mul oC0.xyz, r0.x, r1
    mov oC0.w, r0.x

// approximately 94 instruction slots used (26 texture, 68 arithmetic)
 