//
// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111
//
// Parameters:
//
//   float4 LghtAttn0;
//   float4 LghtColor0;
//   float4 LghtDir0;
//   float4 LghtPos0;
//   sampler2D PSSGShadowPSSMapDepthMap0;
//   sampler2D PSSGShadowPSSMapDepthMap1;
//   sampler2D PSSGShadowPSSMapDepthMap2;
//   sampler2D PSSGShadowPSSMapDepthMap3;
//   float4 PSSGShadowPSSMapDepthSplits;
//   float4x4 PSSGShadowPSSMapLightTextureMatrix0;
//   float4x4 PSSGShadowPSSMapLightTextureMatrix1;
//   float4x4 PSSGShadowPSSMapLightTextureMatrix2;
//   float4x4 PSSGShadowPSSMapLightTextureMatrix3;
//   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
//   PSSGShadowPSSMapLightTextureMatrix1 c4       4
//   PSSGShadowPSSMapLightTextureMatrix2 c8       4
//   PSSGShadowPSSMapLightTextureMatrix3 c12      4
//   eyePositionWS                       c16      1
//   cameraFar                           c17      1
//   cameraNearFar                       c18      1
//   cameraFarMinusNear                  c19      1
//   g_RenderRatio                       c20      1
//   LghtPos0                            c21      1
//   LghtColor0                          c22      1
//   LghtAttn0                           c23      1
//   LghtDir0                            c24      1
//   PSSGShadowPSSMapDepthSplits         c25      1
//   ShadowOpacity                       c26      1
//   g_ShadowMapSizeAndDuDv              c27      1
//   g_PixelPerfectScreenOffset          c28      1
//   g_GBufferDiffuse                    s0       1
//   g_GBufferNormal                     s1       1
//   g_GBufferSpecular                   s2       1
//   g_GBufferDepth                      s3       1
//   PSSGShadowPSSMapDepthMap0           s4       1
//   PSSGShadowPSSMapDepthMap1           s5       1
//   PSSGShadowPSSMapDepthMap2           s6       1
//   PSSGShadowPSSMapDepthMap3           s7       1
//

    ps_3_0
    def c29, 0.5, -0.5, 2, -1
    def c30, 2.20000005, 1024, 8, -80
    def c31, 0.001953125, -1, 80, 40
    def c32, 1.44269502, -115.415604, 3, 0.125
    def c33, -6, 6, 0.0397887453, 4
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
    dcl_2d s5
    dcl_2d s6
    dcl_2d s7

#line 1102 "s:\data\datasource\shaders\memory"
    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, c29
    mad r0.xy, r0.yzzw, r2, c28
    add r0.xy, r0, c29.x  // ::uv<0,1>

#line 702
    mul r0.xy, r0, c20.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, c19.x  // ::cameraFarMinusNear<0>
    mad r0.z, r3.x, r4.x, -c17.x
    rcp r0.z, r0.z

#line 537 "s:\data\datasource\shaders\memory"
    mov r3, c25  // ::PSSGShadowPSSMapDepthSplits<0,1,2,3>
    mad r3, c18.x, -r0.z, -r3

#line 231 "incCommon.cgfx"
    mul r0.z, r0.z, c18.x  // ::viewSpaceZ<0>

#line 710 "s:\data\datasource\shaders\memory"
    mad r4.xyz, r0.z, r1, c16  // ::geom<0,1,2>
	
//Mike_ar69: Stereo Correct
mov r21.xyz, r4.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 r4.xyz, r21.xyz

    mul r1.xyz, r1, r0.z  // ::eyeToPos<0,1,2>

#line 645
    mul r5, r4.y, c13
    mad r5, c12, r4.x, r5
    mad r5, c14, r4.z, r5
    add r5, r5, c15  // ::uv3<0,1,2,3>

#line 403
    rcp r0.z, r5.w

#line 454
    mad r0.w, r5.z, -r0.z, -c29.w
    rcp r0.w, r0.w
    mov r6.xy, c27  // ::g_ShadowMapSizeAndDuDv<0,1>
    mul r2.yz, r6.xxyw, c30.z
    rcp r6.y, r2.y
    rcp r6.w, r2.z
    add r2.yz, r6.xyww, r6.xyww
    mad_sat r7.xy, r5, r0.z, r2.yzzw  // getDepthAndWeightFilterBilinear::uv<0,1>

#line 199
    mul r7.zw, r7.xyxy, c27.xyxy
    frc r8.xy, r7.zwzw
    add r7.zw, r7, -r8.xyxy

#line 206
    mul r8.xy, r2.x, c27.zwzw  // ::halfOff<0,1>

#line 199
    rcp r9.y, c27.x

#line 208
    mad r10.z, r7.z, r9.y, r8.x  // ::uvY<0>

#line 199
    rcp r9.w, c27.y

#line 208
    mad r10.xyw, r7.zwzw, r9.ywzw, -r8.xyzy  // ::uvX<0,1>, ::uvY<1>

#line 220
    texld r11, r10.zwzw, s7  // getDepth::depthSample<0>
    texld r10, r10, s7  // getDepth::depthSample<0>

#line 454
    mov r10.y, r11.x

#line 210
    mad r11.z, r7.z, r9.y, -r8.x  // ::uvW<0>
    mad r11.xyw, r7.zwzw, r9.ywzw, r8.xyzy  // ::uvZ<0,1>, ::uvW<1>
    mad r7.xy, r7.zwzw, -r9.ywzw, r7

#line 222
    texld r12, r11.zwzw, s7  // getDepth::depthSample<0>
    texld r11, r11, s7  // getDepth::depthSample<0>

#line 454
    mov r10.z, r11.x
    mov r10.w, r12.x
    mad r10, r5.z, -r0.z, r10
    mul r10, r0.w, r10

#line 529
    rcp r1.w, c25.x

#line 539
    mul r11.xyz, r1.w, c25.yzww  // ::raiotSplit<0>, ::ratioSplit<0,0>

#line 411
    mad_sat r1.w, r6.x, c31.x, c31.y  // ::factor<0>
    mad r1.w, r1.w, c31.z, c31.w  // ::esmK<0>
    mul r11.xyz, r11, r1.w  // ::esmK<0,0,0>

#line 454
    mul r12, r10, r11.z
    mad r10, r11.z, -r10, c30.w
    mul r12, r12, c32.x
    cmp r10, r10, c32.y, r12
    exp_sat r12.x, r10.x  // ::shadowExp<0>
    exp_sat r12.y, r10.y  // ::shadowExp<1>
    exp_sat r12.z, r10.z  // ::shadowExp<2>
    exp_sat r12.w, r10.w  // ::shadowExp<3>

#line 212
    mul r6.xz, r7.xyyw, c27.xyyw  // ::fracUV<0,1>
    mad r7.xy, r7.yxzw, -c27.yxzw, -r2.w

#line 216
    mul r10.yw, r6.xxzz, r7.xxzy  // getDepthAndWeightFilterBilinear::weights<1,3>
    mul r10.z, r6.z, r6.x  // getDepthAndWeightFilterBilinear::weights<2>
    mul r10.x, r7.x, r7.y  // getDepthAndWeightFilterBilinear::weights<0>

#line 456
    dp4 r2.x, r10, r12  // ::shadow<0>
    mul r2.x, r2.x, c32.z

#line 453
    mul r6.xz, r6.yyww, -c29.z
    mad_sat r7.xy, r5, r0.z, r6.xzzw  // getDepthAndWeightFilterBilinear::uv<0,1>

#line 199
    mul r7.zw, r7.xyxy, c27.xyxy
    frc r8.zw, r7
    add r7.zw, r7, -r8

#line 208
    mad r10.z, r7.z, r9.y, r8.x  // ::uvY<0>
    mad r10.xyw, r7.zwzw, r9.ywzw, -r8.xyzy  // ::uvX<0,1>, ::uvY<1>

#line 220
    texld r12, r10.zwzw, s7  // getDepth::depthSample<0>
    texld r10, r10, s7  // getDepth::depthSample<0>

#line 454
    mov r10.y, r12.x

#line 210
    mad r12.z, r7.z, r9.y, -r8.x  // ::uvW<0>
    mad r12.xyw, r7.zwzw, r9.ywzw, r8.xyzy  // ::uvZ<0,1>, ::uvW<1>
    mad r7.xy, r7.zwzw, -r9.ywzw, r7

#line 222
    texld r13, r12.zwzw, s7  // getDepth::depthSample<0>
    texld r12, r12, s7  // getDepth::depthSample<0>

#line 454
    mov r10.z, r12.x
    mov r10.w, r13.x
    mad r10, r5.z, -r0.z, r10
    mul r10, r0.w, r10
    mul r12, r10, r11.z
    mad r10, r11.z, -r10, c30.w
    mul r12, r12, c32.x
    cmp r10, r10, c32.y, r12
    exp_sat r12.x, r10.x  // ::shadowExp<0>
    exp_sat r12.y, r10.y  // ::shadowExp<1>
    exp_sat r12.z, r10.z  // ::shadowExp<2>
    exp_sat r12.w, r10.w  // ::shadowExp<3>

#line 212
    mul r7.zw, r7.xyxy, c27.xyxy  // ::fracUV<0,1>
    mad r7.xy, r7.yxzw, -c27.yxzw, -r2.w

#line 216
    mul r10, r7.xxwy, r7.yzzw  // getDepthAndWeightFilterBilinear::weights<0,1,2,3>

#line 456
    dp4 r4.w, r10, r12  // ::shadow<0>
    mad r2.x, r4.w, c32.z, r2.x  // ::sum<0>

#line 453
    mul r7.xy, r6.ywzw, c33
    mul r6.yw, r6, c33.xyzx
    mad_sat r7.zw, r5.xyxy, r0.z, r7.xyxy  // getDepthAndWeightFilterBilinear::uv<0,1>

#line 199
    mul r8.zw, r7, c27.xyxy
    frc r9.xz, r8.zyww
    add r8.zw, r8, -r9.xyxz

#line 208
    mad r10.z, r8.z, r9.y, r8.x  // ::uvY<0>
    mad r10.xyw, r8.zwzw, r9.ywzw, -r8.xyzy  // ::uvX<0,1>, ::uvY<1>

#line 220
    texld r12, r10.zwzw, s7  // getDepth::depthSample<0>
    texld r10, r10, s7  // getDepth::depthSample<0>

#line 454
    mov r10.y, r12.x

#line 210
    mad r12.z, r8.z, r9.y, -r8.x  // ::uvW<0>
    mad r12.xyw, r8.zwzw, r9.ywzw, r8.xyzy  // ::uvZ<0,1>, ::uvW<1>
    mad r7.zw, r8, -r9.xyyw, r7

#line 222
    texld r13, r12.zwzw, s7  // getDepth::depthSample<0>
    texld r12, r12, s7  // getDepth::depthSample<0>

#line 454
    mov r10.z, r12.x
    mov r10.w, r13.x
    mad r10, r5.z, -r0.z, r10
    mul r10, r0.w, r10
    mul r12, r10, r11.z
    mad r10, r11.z, -r10, c30.w
    mul r12, r12, c32.x
    cmp r10, r10, c32.y, r12
    exp_sat r12.x, r10.x  // ::shadowExp<0>
    exp_sat r12.y, r10.y  // ::shadowExp<1>
    exp_sat r12.z, r10.z  // ::shadowExp<2>
    exp_sat r12.w, r10.w  // ::shadowExp<3>

#line 212
    mul r8.zw, r7, c27.xyxy  // ::fracUV<0,1>
    mad r7.zw, r7.xywz, -c27.xyyx, -r2.w

#line 216
    mul r10.yw, r7.xzzw, r8.xzzw  // getDepthAndWeightFilterBilinear::weights<1,3>
    mul r10.z, r8.w, r8.z  // getDepthAndWeightFilterBilinear::weights<2>
    mul r10.x, r7.z, r7.w  // getDepthAndWeightFilterBilinear::weights<0>

#line 456
    dp4 r4.w, r10, r12  // ::shadow<0>
    add r2.x, r2.x, r4.w  // ::sum<0>

#line 453
    mad_sat r5.xy, r5, r0.z, r6.ywzw  // getDepthAndWeightFilterBilinear::uv<0,1>

#line 199
    mul r7.zw, r5.xyxy, c27.xyxy
    frc r8.zw, r7
    add r7.zw, r7, -r8

#line 208
    mad r10.z, r7.z, r9.y, r8.x  // ::uvY<0>
    mad r10.xyw, r7.zwzw, r9.ywzw, -r8.xyzy  // ::uvX<0,1>, ::uvY<1>

#line 220
    texld r12, r10.zwzw, s7  // getDepth::depthSample<0>
    texld r10, r10, s7  // getDepth::depthSample<0>

#line 454
    mov r10.y, r12.x

#line 210
    mad r12.z, r7.z, r9.y, -r8.x  // ::uvW<0>
    mad r12.xyw, r7.zwzw, r9.ywzw, r8.xyzy  // ::uvZ<0,1>, ::uvW<1>
    mad r5.xy, r7.zwzw, -r9.ywzw, r5

#line 222
    texld r13, r12.zwzw, s7  // getDepth::depthSample<0,1,2>
    texld r12, r12, s7  // getDepth::depthSample<0>

#line 454
    mov r10.z, r12.x
    mov r10.w, r13.x
    mad r10, r5.z, -r0.z, r10
    mul r10, r0.w, r10
    mul r12, r10, r11.z
    mad r10, r11.z, -r10, c30.w
    mul r12, r12, c32.x
    cmp r10, r10, c32.y, r12
    exp_sat r12.x, r10.x  // ::shadowExp<0>
    exp_sat r12.y, r10.y  // ::shadowExp<1>
    exp_sat r12.z, r10.z  // ::shadowExp<2>
    exp_sat r12.w, r10.w  // ::shadowExp<3>

#line 212
    mul r0.zw, r5.xyxy, c27.xyxy  // ::fracUV<0,1>
    mad r5.xy, r5.yxzw, -c27.yxzw, -r2.w

#line 216
    mul r10.yw, r0.xzzw, r5.xxzy  // getDepthAndWeightFilterBilinear::weights<1,3>
    mul r10.z, r0.w, r0.z  // getDepthAndWeightFilterBilinear::weights<2>
    mul r10.x, r5.x, r5.y  // getDepthAndWeightFilterBilinear::weights<0>

#line 456
    dp4 r0.z, r10, r12  // ::shadow<0>
    add r0.z, r0.z, r2.x  // ::sum<0>

#line 460
    mul_sat_pp r0.z, r0.z, c32.w  // ::sampleDepth<0>

#line 537
    cmp_pp r0.z, r3.w, -c29.w, r0.z  // ::shadow<0>

#line 644
    mul r5, r4.y, c9
    mad r5, c8, r4.x, r5
    mad r5, c10, r4.z, r5
    add r5, r5, c11  // ::uv2<0,1,2,3>

#line 403
    rcp r0.w, r5.w

#line 454
    mad r2.x, r5.z, -r0.w, -c29.w
    rcp r2.x, r2.x
    mad_sat r7.zw, r5.xyxy, r0.w, r2.xyyz  // getDepthAndWeightFilterBilinear::uv<0,1>

#line 199
    mul r8.zw, r7, c27.xyxy
    frc r9.xz, r8.zyww
    add r8.zw, r8, -r9.xyxz

#line 208
    mad r10.z, r8.z, r9.y, r8.x  // ::uvY<0>
    mad r10.xyw, r8.zwzw, r9.ywzw, -r8.xyzy  // ::uvX<0,1>, ::uvY<1>

#line 220
    texld r12, r10.zwzw, s6  // getDepth::depthSample<0>
    texld r10, r10, s6  // getDepth::depthSample<0>

#line 454
    mov r10.y, r12.x

#line 210
    mad r12.z, r8.z, r9.y, -r8.x  // ::uvW<0>
    mad r12.xyw, r8.zwzw, r9.ywzw, r8.xyzy  // ::uvZ<0,1>, ::uvW<1>
    mad r7.zw, r8, -r9.xyyw, r7

#line 222
    texld r13, r12.zwzw, s6  // getDepth::depthSample<0>
    texld r12, r12, s6  // getDepth::depthSample<0>

#line 454
    mov r10.z, r12.x
    mov r10.w, r13.x
    mad r10, r5.z, -r0.w, r10
    mul r10, r2.x, r10
    mul r12, r10, r11.y
    mad r10, r11.y, -r10, c30.w
    mul r12, r12, c32.x
    cmp r10, r10, c32.y, r12
    exp_sat r12.x, r10.x  // ::shadowExp<0>
    exp_sat r12.y, r10.y  // ::shadowExp<1>
    exp_sat r12.z, r10.z  // ::shadowExp<2>
    exp_sat r12.w, r10.w  // ::shadowExp<3>

#line 212
    mul r8.zw, r7, c27.xyxy  // ::fracUV<0,1>
    mad r7.zw, r7.xywz, -c27.xyyx, -r2.w

#line 216
    mul r10.yw, r7.xzzw, r8.xzzw  // getDepthAndWeightFilterBilinear::weights<1,3>
    mul r10.z, r8.w, r8.z  // getDepthAndWeightFilterBilinear::weights<2>
    mul r10.x, r7.z, r7.w  // getDepthAndWeightFilterBilinear::weights<0>

#line 456
    dp4 r3.w, r10, r12  // ::shadow<0>
    mul r3.w, r3.w, c32.z

#line 453
    mad_sat r7.zw, r5.xyxy, r0.w, r6.xyxz  // getDepthAndWeightFilterBilinear::uv<0,1>

#line 199
    mul r8.zw, r7, c27.xyxy
    frc r9.xz, r8.zyww
    add r8.zw, r8, -r9.xyxz

#line 208
    mad r10.z, r8.z, r9.y, r8.x  // ::uvY<0>
    mad r10.xyw, r8.zwzw, r9.ywzw, -r8.xyzy  // ::uvX<0,1>, ::uvY<1>

#line 220
    texld r12, r10.zwzw, s6  // getDepth::depthSample<0>
    texld r10, r10, s6  // getDepth::depthSample<0>

#line 454
    mov r10.y, r12.x

#line 210
    mad r12.z, r8.z, r9.y, -r8.x  // ::uvW<0>
    mad r12.xyw, r8.zwzw, r9.ywzw, r8.xyzy  // ::uvZ<0,1>, ::uvW<1>
    mad r7.zw, r8, -r9.xyyw, r7

#line 222
    texld r13, r12.zwzw, s6  // getDepth::depthSample<0>
    texld r12, r12, s6  // getDepth::depthSample<0>

#line 454
    mov r10.z, r12.x
    mov r10.w, r13.x
    mad r10, r5.z, -r0.w, r10
    mul r10, r2.x, r10
    mul r12, r10, r11.y
    mad r10, r11.y, -r10, c30.w
    mul r12, r12, c32.x
    cmp r10, r10, c32.y, r12
    exp_sat r12.x, r10.x  // ::shadowExp<0>
    exp_sat r12.y, r10.y  // ::shadowExp<1>
    exp_sat r12.z, r10.z  // ::shadowExp<2>
    exp_sat r12.w, r10.w  // ::shadowExp<3>

#line 212
    mul r8.zw, r7, c27.xyxy  // ::fracUV<0,1>
    mad r7.zw, r7.xywz, -c27.xyyx, -r2.w

#line 216
    mul r10.yw, r7.xzzw, r8.xzzw  // getDepthAndWeightFilterBilinear::weights<1,3>
    mul r10.z, r8.w, r8.z  // getDepthAndWeightFilterBilinear::weights<2>
    mul r10.x, r7.z, r7.w  // getDepthAndWeightFilterBilinear::weights<0>

#line 456
    dp4 r4.w, r10, r12  // ::shadow<0>
    mad r3.w, r4.w, c32.z, r3.w  // ::sum<0>

#line 453
    mad_sat r7.zw, r5.xyxy, r0.w, r7.xyxy  // getDepthAndWeightFilterBilinear::uv<0,1>

#line 199
    mul r8.zw, r7, c27.xyxy
    frc r9.xz, r8.zyww
    add r8.zw, r8, -r9.xyxz

#line 208
    mad r10.z, r8.z, r9.y, r8.x  // ::uvY<0>
    mad r10.xyw, r8.zwzw, r9.ywzw, -r8.xyzy  // ::uvX<0,1>, ::uvY<1>

#line 220
    texld r12, r10.zwzw, s6  // getDepth::depthSample<0>
    texld r10, r10, s6  // getDepth::depthSample<0>

#line 454
    mov r10.y, r12.x

#line 210
    mad r12.z, r8.z, r9.y, -r8.x  // ::uvW<0>
    mad r12.xyw, r8.zwzw, r9.ywzw, r8.xyzy  // ::uvZ<0,1>, ::uvW<1>
    mad r7.zw, r8, -r9.xyyw, r7

#line 222
    texld r13, r12.zwzw, s6  // getDepth::depthSample<0>
    texld r12, r12, s6  // getDepth::depthSample<0>

#line 454
    mov r10.z, r12.x
    mov r10.w, r13.x
    mad r10, r5.z, -r0.w, r10
    mul r10, r2.x, r10
    mul r12, r10, r11.y
    mad r10, r11.y, -r10, c30.w
    mul r12, r12, c32.x
    cmp r10, r10, c32.y, r12
    exp_sat r12.x, r10.x  // ::shadowExp<0>
    exp_sat r12.y, r10.y  // ::shadowExp<1>
    exp_sat r12.z, r10.z  // ::shadowExp<2>
    exp_sat r12.w, r10.w  // ::shadowExp<3>

#line 212
    mul r8.zw, r7, c27.xyxy  // ::fracUV<0,1>
    mad r7.zw, r7.xywz, -c27.xyyx, -r2.w

#line 216
    mul r10.yw, r7.xzzw, r8.xzzw  // getDepthAndWeightFilterBilinear::weights<1,3>
    mul r10.z, r8.w, r8.z  // getDepthAndWeightFilterBilinear::weights<2>
    mul r10.x, r7.z, r7.w  // getDepthAndWeightFilterBilinear::weights<0>

#line 456
    dp4 r4.w, r10, r12  // ::shadow<0>
    add r3.w, r3.w, r4.w  // ::sum<0>

#line 453
    mad_sat r5.xy, r5, r0.w, r6.ywzw  // getDepthAndWeightFilterBilinear::uv<0,1>

#line 199
    mul r7.zw, r5.xyxy, c27.xyxy
    frc r8.zw, r7
    add r7.zw, r7, -r8

#line 208
    mad r10.z, r7.z, r9.y, r8.x  // ::uvY<0>
    mad r10.xyw, r7.zwzw, r9.ywzw, -r8.xyzy  // ::uvX<0,1>, ::uvY<1>

#line 220
    texld r12, r10.zwzw, s6  // getDepth::depthSample<0>
    texld r10, r10, s6  // getDepth::depthSample<0>

#line 454
    mov r10.y, r12.x

#line 210
    mad r12.z, r7.z, r9.y, -r8.x  // ::uvW<0>
    mad r12.xyw, r7.zwzw, r9.ywzw, r8.xyzy  // ::uvZ<0,1>, ::uvW<1>
    mad r5.xy, r7.zwzw, -r9.ywzw, r5

#line 222
    texld r13, r12.zwzw, s6  // getDepth::depthSample<0,1,2>
    texld r12, r12, s6  // getDepth::depthSample<0>

#line 454
    mov r10.z, r12.x
    mov r10.w, r13.x
    mad r10, r5.z, -r0.w, r10
    mul r10, r2.x, r10
    mul r12, r10, r11.y
    mad r10, r11.y, -r10, c30.w
    mul r12, r12, c32.x
    cmp r10, r10, c32.y, r12
    exp_sat r12.x, r10.x  // ::shadowExp<0>
    exp_sat r12.y, r10.y  // ::shadowExp<1>
    exp_sat r12.z, r10.z  // ::shadowExp<2>
    exp_sat r12.w, r10.w  // ::shadowExp<3>

#line 212
    mul r5.zw, r5.xyxy, c27.xyxy  // ::fracUV<0,1>
    mad r5.xy, r5.yxzw, -c27.yxzw, -r2.w

#line 216
    mul r10, r5.xxwy, r5.yzzw  // getDepthAndWeightFilterBilinear::weights<0,1,2,3>

#line 456
    dp4 r0.w, r10, r12  // ::shadow<0>
    add r0.w, r0.w, r3.w  // ::sum<0>

#line 460
    mul_sat_pp r0.w, r0.w, c32.w  // ::sampleDepth<0>

#line 532
    cmp_pp r0.z, r3.z, r0.z, r0.w  // ::shadow<0>

#line 643
    mul r5, r4.y, c5
    mad r5, c4, r4.x, r5
    mad r5, c6, r4.z, r5
    add r5, r5, c7  // ::uv1<0,1,2,3>

#line 403
    rcp r0.w, r5.w

#line 454
    mad r2.x, r5.z, -r0.w, -c29.w
    rcp r2.x, r2.x
    mad_sat r3.zw, r5.xyxy, r0.w, r2.xyyz  // getDepthAndWeightFilterBilinear::uv<0,1>

#line 199
    mul r7.zw, r3, c27.xyxy
    frc r8.zw, r7
    add r7.zw, r7, -r8

#line 208
    mad r10.z, r7.z, r9.y, r8.x  // ::uvY<0>
    mad r10.xyw, r7.zwzw, r9.ywzw, -r8.xyzy  // ::uvX<0,1>, ::uvY<1>

#line 220
    texld r12, r10.zwzw, s5  // getDepth::depthSample<0>
    texld r10, r10, s5  // getDepth::depthSample<0>

#line 454
    mov r10.y, r12.x

#line 210
    mad r12.z, r7.z, r9.y, -r8.x  // ::uvW<0>
    mad r12.xyw, r7.zwzw, r9.ywzw, r8.xyzy  // ::uvZ<0,1>, ::uvW<1>
    mad r3.zw, r7, -r9.xyyw, r3

#line 222
    texld r13, r12.zwzw, s5  // getDepth::depthSample<0>
    texld r12, r12, s5  // getDepth::depthSample<0>

#line 454
    mov r10.z, r12.x
    mov r10.w, r13.x
    mad r10, r5.z, -r0.w, r10
    mul r10, r2.x, r10
    mul r12, r10, r11.x
    mad r10, r11.x, -r10, c30.w
    mul r12, r12, c32.x
    cmp r10, r10, c32.y, r12
    exp_sat r12.x, r10.x  // ::shadowExp<0>
    exp_sat r12.y, r10.y  // ::shadowExp<1>
    exp_sat r12.z, r10.z  // ::shadowExp<2>
    exp_sat r12.w, r10.w  // ::shadowExp<3>

#line 212
    mul r7.zw, r3, c27.xyxy  // ::fracUV<0,1>
    mad r3.zw, r3.xywz, -c27.xyyx, -r2.w

#line 216
    mul r10.yw, r3.xzzw, r7.xzzw  // getDepthAndWeightFilterBilinear::weights<1,3>
    mul r10.z, r7.w, r7.z  // getDepthAndWeightFilterBilinear::weights<2>
    mul r10.x, r3.z, r3.w  // getDepthAndWeightFilterBilinear::weights<0>

#line 456
    dp4 r3.z, r10, r12  // ::shadow<0>
    mul r3.z, r3.z, c32.z

#line 453
    mad_sat r7.zw, r5.xyxy, r0.w, r6.xyxz  // getDepthAndWeightFilterBilinear::uv<0,1>

#line 199
    mul r8.zw, r7, c27.xyxy
    frc r9.xz, r8.zyww
    add r8.zw, r8, -r9.xyxz

#line 208
    mad r10.z, r8.z, r9.y, r8.x  // ::uvY<0>
    mad r10.xyw, r8.zwzw, r9.ywzw, -r8.xyzy  // ::uvX<0,1>, ::uvY<1>

#line 220
    texld r12, r10.zwzw, s5  // getDepth::depthSample<0>
    texld r10, r10, s5  // getDepth::depthSample<0>

#line 454
    mov r10.y, r12.x

#line 210
    mad r12.z, r8.z, r9.y, -r8.x  // ::uvW<0>
    mad r12.xyw, r8.zwzw, r9.ywzw, r8.xyzy  // ::uvZ<0,1>, ::uvW<1>
    mad r7.zw, r8, -r9.xyyw, r7

#line 222
    texld r13, r12.zwzw, s5  // getDepth::depthSample<0>
    texld r12, r12, s5  // getDepth::depthSample<0>

#line 454
    mov r10.z, r12.x
    mov r10.w, r13.x
    mad r10, r5.z, -r0.w, r10
    mul r10, r2.x, r10
    mul r12, r10, r11.x
    mad r10, r11.x, -r10, c30.w
    mul r12, r12, c32.x
    cmp r10, r10, c32.y, r12
    exp_sat r12.x, r10.x  // ::shadowExp<0>
    exp_sat r12.y, r10.y  // ::shadowExp<1>
    exp_sat r12.z, r10.z  // ::shadowExp<2>
    exp_sat r12.w, r10.w  // ::shadowExp<3>

#line 212
    mul r8.zw, r7, c27.xyxy  // ::fracUV<0,1>
    mad r7.zw, r7.xywz, -c27.xyyx, -r2.w

#line 216
    mul r10.yw, r7.xzzw, r8.xzzw  // getDepthAndWeightFilterBilinear::weights<1,3>
    mul r10.z, r8.w, r8.z  // getDepthAndWeightFilterBilinear::weights<2>
    mul r10.x, r7.z, r7.w  // getDepthAndWeightFilterBilinear::weights<0>

#line 456
    dp4 r3.w, r10, r12  // ::shadow<0>
    mad r3.z, r3.w, c32.z, r3.z  // ::sum<0>

#line 453
    mad_sat r7.zw, r5.xyxy, r0.w, r7.xyxy  // getDepthAndWeightFilterBilinear::uv<0,1>

#line 199
    mul r8.zw, r7, c27.xyxy
    frc r9.xz, r8.zyww
    add r8.zw, r8, -r9.xyxz

#line 208
    mad r10.z, r8.z, r9.y, r8.x  // ::uvY<0>
    mad r10.xyw, r8.zwzw, r9.ywzw, -r8.xyzy  // ::uvX<0,1>, ::uvY<1>

#line 220
    texld r12, r10.zwzw, s5  // getDepth::depthSample<0>
    texld r10, r10, s5  // getDepth::depthSample<0>

#line 454
    mov r10.y, r12.x

#line 210
    mad r12.z, r8.z, r9.y, -r8.x  // ::uvW<0>
    mad r12.xyw, r8.zwzw, r9.ywzw, r8.xyzy  // ::uvZ<0,1>, ::uvW<1>
    mad r7.zw, r8, -r9.xyyw, r7

#line 222
    texld r13, r12.zwzw, s5  // getDepth::depthSample<0>
    texld r12, r12, s5  // getDepth::depthSample<0>

#line 454
    mov r10.z, r12.x
    mov r10.w, r13.x
    mad r10, r5.z, -r0.w, r10
    mul r10, r2.x, r10
    mul r12, r10, r11.x
    mad r10, r11.x, -r10, c30.w
    mul r12, r12, c32.x
    cmp r10, r10, c32.y, r12
    exp_sat r12.x, r10.x  // ::shadowExp<0>
    exp_sat r12.y, r10.y  // ::shadowExp<1>
    exp_sat r12.z, r10.z  // ::shadowExp<2>
    exp_sat r12.w, r10.w  // ::shadowExp<3>

#line 212
    mul r8.zw, r7, c27.xyxy  // ::fracUV<0,1>
    mad r7.zw, r7.xywz, -c27.xyyx, -r2.w

#line 216
    mul r10.yw, r7.xzzw, r8.xzzw  // getDepthAndWeightFilterBilinear::weights<1,3>
    mul r10.z, r8.w, r8.z  // getDepthAndWeightFilterBilinear::weights<2>
    mul r10.x, r7.z, r7.w  // getDepthAndWeightFilterBilinear::weights<0>

#line 456
    dp4 r3.w, r10, r12  // ::shadow<0>
    add r3.z, r3.w, r3.z  // ::sum<0>

#line 453
    mad_sat r5.xy, r5, r0.w, r6.ywzw  // getDepthAndWeightFilterBilinear::uv<0,1>

#line 199
    mul r7.zw, r5.xyxy, c27.xyxy
    frc r8.zw, r7
    add r7.zw, r7, -r8

#line 208
    mad r10.z, r7.z, r9.y, r8.x  // ::uvY<0>
    mad r10.xyw, r7.zwzw, r9.ywzw, -r8.xyzy  // ::uvX<0,1>, ::uvY<1>

#line 220
    texld r12, r10.zwzw, s5  // getDepth::depthSample<0>
    texld r10, r10, s5  // getDepth::depthSample<0>

#line 454
    mov r10.y, r12.x

#line 210
    mad r12.z, r7.z, r9.y, -r8.x  // ::uvW<0>
    mad r12.xyw, r7.zwzw, r9.ywzw, r8.xyzy  // ::uvZ<0,1>, ::uvW<1>
    mad r5.xy, r7.zwzw, -r9.ywzw, r5

#line 222
    texld r13, r12.zwzw, s5  // getDepth::depthSample<0,1,2>
    texld r12, r12, s5  // getDepth::depthSample<0>

#line 454
    mov r10.z, r12.x
    mov r10.w, r13.x
    mad r10, r5.z, -r0.w, r10
    mul r10, r2.x, r10
    mul r12, r10, r11.x
    mad r10, r11.x, -r10, c30.w
    mul r11, r12, c32.x
    cmp r10, r10, c32.y, r11
    exp_sat r11.x, r10.x  // ::shadowExp<0>
    exp_sat r11.y, r10.y  // ::shadowExp<1>
    exp_sat r11.z, r10.z  // ::shadowExp<2>
    exp_sat r11.w, r10.w  // ::shadowExp<3>

#line 212
    mul r5.zw, r5.xyxy, c27.xyxy  // ::fracUV<0,1>
    mad r5.xy, r5.yxzw, -c27.yxzw, -r2.w

#line 216
    mul r10, r5.xxwy, r5.yzzw  // getDepthAndWeightFilterBilinear::weights<0,1,2,3>

#line 456
    dp4 r0.w, r10, r11  // ::shadow<0>
    add r0.w, r0.w, r3.z  // ::sum<0>

#line 460
    mul_sat_pp r0.w, r0.w, c32.w  // ::sampleDepth<0>

#line 527
    cmp_pp r0.z, r3.y, r0.z, r0.w  // ::shadow<0>

#line 642
    mul r5, r4.y, c1
    mad r5, c0, r4.x, r5
    mad r5, c2, r4.z, r5

#line 608
    add r3.yzw, -r4.xxyz, c21.xxyz  // ::lightVec<0,1,2>

#line 642
    add r4, r5, c3  // ::uv0<0,1,2,3>

#line 403
    rcp r0.w, r4.w

#line 453
    mad_sat r2.xy, r4, r0.w, r2.yzzw  // getDepthAndWeightFilterBilinear::uv<0,1>

#line 199
    mul r5.xy, r2, c27
    frc r5.zw, r5.xyxy
    add r5.xy, -r5.zwzw, r5

#line 208
    mad r10.z, r5.x, r9.y, r8.x  // ::uvY<0>
    mad r10.xyw, r5.xyzy, r9.ywzw, -r8.xyzy  // ::uvX<0,1>, ::uvY<1>

#line 220
    texld r11, r10.zwzw, s4  // getDepth::depthSample<0>
    texld r10, r10, s4  // getDepth::depthSample<0>

#line 454
    mov r10.y, r11.x

#line 210
    mad r11.z, r5.x, r9.y, -r8.x  // ::uvW<0>
    mad r11.xyw, r5.xyzy, r9.ywzw, r8.xyzy  // ::uvZ<0,1>, ::uvW<1>
    mad r2.xy, r5, -r9.ywzw, r2

#line 222
    texld r5, r11.zwzw, s4  // getDepth::depthSample<0>
    texld r11, r11, s4  // getDepth::depthSample<0>

#line 454
    mov r10.z, r11.x
    mov r10.w, r5.x
    mad r5, r4.z, -r0.w, r10
    mad r2.z, r4.z, -r0.w, -c29.w
    rcp r2.z, r2.z
    mul r5, r2.z, r5
    mul r10, r1.w, r5
    mad r5, r1.w, -r5, c30.w
    mul r10, r10, c32.x
    cmp r5, r5, c32.y, r10
    exp_sat r10.x, r5.x  // ::shadowExp<0>
    exp_sat r10.y, r5.y  // ::shadowExp<1>
    exp_sat r10.z, r5.z  // ::shadowExp<2>
    exp_sat r10.w, r5.w  // ::shadowExp<3>

#line 212
    mul r5.xy, r2, c27  // ::fracUV<0,1>
    mad r2.xy, r2.yxzw, -c27.yxzw, -r2.w

#line 216
    mul r11.yw, r2.xxzy, r5.xxzy  // getDepthAndWeightFilterBilinear::weights<1,3>
    mul r11.z, r5.y, r5.x  // getDepthAndWeightFilterBilinear::weights<2>
    mul r11.x, r2.x, r2.y  // getDepthAndWeightFilterBilinear::weights<0>

#line 456
    dp4 r2.x, r11, r10  // ::shadow<0>
    mul r2.x, r2.x, c32.z

#line 453
    mad_sat r5.xy, r4, r0.w, r6.xzzw  // getDepthAndWeightFilterBilinear::uv<0,1>

#line 199
    mul r5.zw, r5.xyxy, c27.xyxy
    frc r6.xz, r5.zyww
    add r5.zw, r5, -r6.xyxz

#line 208
    mad r10.z, r5.z, r9.y, r8.x  // ::uvY<0>
    mad r10.xyw, r5.zwzw, r9.ywzw, -r8.xyzy  // ::uvX<0,1>, ::uvY<1>

#line 220
    texld r11, r10.zwzw, s4  // getDepth::depthSample<0>
    texld r10, r10, s4  // getDepth::depthSample<0>

#line 454
    mov r10.y, r11.x

#line 210
    mad r11.z, r5.z, r9.y, -r8.x  // ::uvW<0>
    mad r11.xyw, r5.zwzw, r9.ywzw, r8.xyzy  // ::uvZ<0,1>, ::uvW<1>
    mad r5.xy, r5.zwzw, -r9.ywzw, r5

#line 222
    texld r12, r11.zwzw, s4  // getDepth::depthSample<0>
    texld r11, r11, s4  // getDepth::depthSample<0>

#line 454
    mov r10.z, r11.x
    mov r10.w, r12.x
    mad r10, r4.z, -r0.w, r10
    mul r10, r2.z, r10
    mul r11, r1.w, r10
    mad r10, r1.w, -r10, c30.w
    mul r11, r11, c32.x
    cmp r10, r10, c32.y, r11
    exp_sat r11.x, r10.x  // ::shadowExp<0>
    exp_sat r11.y, r10.y  // ::shadowExp<1>
    exp_sat r11.z, r10.z  // ::shadowExp<2>
    exp_sat r11.w, r10.w  // ::shadowExp<3>

#line 212
    mul r5.zw, r5.xyxy, c27.xyxy  // ::fracUV<0,1>
    mad r5.xy, r5.yxzw, -c27.yxzw, -r2.w

#line 216
    mul r10, r5.xxwy, r5.yzzw  // getDepthAndWeightFilterBilinear::weights<0,1,2,3>

#line 456
    dp4 r2.y, r10, r11  // ::shadow<0>
    mad r2.x, r2.y, c32.z, r2.x  // ::sum<0>

#line 453
    mad_sat r5.xy, r4, r0.w, r7  // getDepthAndWeightFilterBilinear::uv<0,1>

#line 199
    mul r5.zw, r5.xyxy, c27.xyxy
    frc r6.xz, r5.zyww
    add r5.zw, r5, -r6.xyxz

#line 208
    mad r7.z, r5.z, r9.y, r8.x  // ::uvY<0>
    mad r7.xyw, r5.zwzw, r9.ywzw, -r8.xyzy  // ::uvX<0,1>, ::uvY<1>

#line 220
    texld r10, r7.zwzw, s4  // getDepth::depthSample<0>
    texld r7, r7, s4  // getDepth::depthSample<0>

#line 454
    mov r7.y, r10.x

#line 210
    mad r10.z, r5.z, r9.y, -r8.x  // ::uvW<0>
    mad r10.xyw, r5.zwzw, r9.ywzw, r8.xyzy  // ::uvZ<0,1>, ::uvW<1>
    mad r5.xy, r5.zwzw, -r9.ywzw, r5

#line 222
    texld r11, r10.zwzw, s4  // getDepth::depthSample<0>
    texld r10, r10, s4  // getDepth::depthSample<0>

#line 454
    mov r7.z, r10.x
    mov r7.w, r11.x
    mad r7, r4.z, -r0.w, r7
    mul r7, r2.z, r7
    mul r10, r1.w, r7
    mad r7, r1.w, -r7, c30.w
    mul r10, r10, c32.x
    cmp r7, r7, c32.y, r10
    exp_sat r10.x, r7.x  // ::shadowExp<0>
    exp_sat r10.y, r7.y  // ::shadowExp<1>
    exp_sat r10.z, r7.z  // ::shadowExp<2>
    exp_sat r10.w, r7.w  // ::shadowExp<3>

#line 212
    mul r5.zw, r5.xyxy, c27.xyxy  // ::fracUV<0,1>
    mad r5.xy, r5.yxzw, -c27.yxzw, -r2.w

#line 216
    mul r7, r5.xxwy, r5.yzzw  // getDepthAndWeightFilterBilinear::weights<0,1,2,3>

#line 456
    dp4 r2.y, r7, r10  // ::shadow<0>
    add r2.x, r2.y, r2.x  // ::sum<0>

#line 453
    mad_sat r4.xy, r4, r0.w, r6.ywzw  // getDepthAndWeightFilterBilinear::uv<0,1>

#line 199
    mul r5.xy, r4, c27
    frc r5.zw, r5.xyxy
    add r5.xy, -r5.zwzw, r5

#line 208
    mad r6.z, r5.x, r9.y, r8.x  // ::uvY<0>
    mad r6.xyw, r5.xyzy, r9.ywzw, -r8.xyzy  // ::uvX<0,1>, ::uvY<1>

#line 220
    texld r7, r6.zwzw, s4  // getDepth::depthSample<0>
    texld r6, r6, s4  // getDepth::depthSample<0>

#line 454
    mov r6.y, r7.x

#line 210
    mad r7.z, r5.x, r9.y, -r8.x  // ::uvW<0>
    mad r7.xyw, r5.xyzy, r9.ywzw, r8.xyzy  // ::uvZ<0,1>, ::uvW<1>
    mad r4.xy, r5, -r9.ywzw, r4

#line 222
    texld r5, r7.zwzw, s4  // getDepth::depthSample<0,1,2>
    texld r7, r7, s4  // getDepth::depthSample<0>

#line 454
    mov r6.z, r7.x
    mov r6.w, r5.x
    mad r5, r4.z, -r0.w, r6
    mul r5, r2.z, r5
    mad r6, r1.w, -r5, c30.w
    mul r5, r1.w, r5
    mul r5, r5, c32.x
    cmp r5, r6, c32.y, r5
    exp_sat r6.x, r5.x  // ::shadowExp<0>
    exp_sat r6.y, r5.y  // ::shadowExp<1>
    exp_sat r6.z, r5.z  // ::shadowExp<2>
    exp_sat r6.w, r5.w  // ::shadowExp<3>

#line 212
    mul r2.yz, r4.xxyw, c27.xxyw  // ::fracUV<0,1>
    mad r4.xy, r4.yxzw, -c27.yxzw, -r2.w

#line 216
    mul r5.yw, r2.xyzz, r4.xxzy  // getDepthAndWeightFilterBilinear::weights<1,3>
    mul r5.z, r2.z, r2.y  // getDepthAndWeightFilterBilinear::weights<2>
    mul r5.x, r4.x, r4.y  // getDepthAndWeightFilterBilinear::weights<0>

#line 456
    dp4 r0.w, r5, r6  // ::shadow<0>
    add r0.w, r0.w, r2.x  // ::sum<0>

#line 460
    mul_sat_pp r0.w, r0.w, c32.w  // ::sampleDepth<0>

#line 523
    cmp_pp r0.z, r3.x, r0.z, r0.w  // ::shadow<0>

#line 548
    add r0.z, r0.z, c29.w
    mad_pp r0.z, c26.x, r0.z, -r2.w  // ::shadow<0>

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

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

#line 616
    dp3 r1.w, -c24, r2  // ::dirContribution<0>
    add r1.w, r1.w, -c23.z
    mul_sat r1.w, r1.w, c23.w  // ::coneAttn<0>

#line 626
    mul_pp r0.w, r0.w, r1.w  // ::attn<0>

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

#line 694
    mul r3.xyz, r0.w, c22
    mul r3.xyz, r0.z, r3

#line 711
    dp3 r0.z, -r1, -r1
    rsq r0.z, r0.z

#line 676
    mad r1.xyz, -r1, r0.z, r2
    nrm_pp r4.xyz, r1  // ::halfVec<0,1,2>

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

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

#line 681
    dp3_sat_pp r0.z, r5, r4  // ::ndh<0>

#line 678
    dp3_sat r0.w, r5, r2  // ::ndl<0>

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

#line 747
    mul_pp r0.x, r1.w, c30.y
    max_pp r1.w, r0.x, -c29.w  // ::material<7>

#line 682
    pow_pp r2.w, r0.z, r1.w  // ::specPower<0>
    add r0.x, r1.w, c30.z
    mul r0.x, r0.x, r2.w
    mul_pp r0.x, r0.x, c33.z  // ::specPower<0>

#line 692
    mul_pp r0.xyz, r0.x, r1
    mul_sat r1.x, r0.w, c33.w
    mul r0.xyz, r0, r1.x

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

#line 692
    mad_pp r0.xyz, r2, r0.w, r0  // ::result<0,1,2>
    mul_pp oC0.xyz, r3, r0  // ::mainFPStencilSpotShadowPersCascaded<0,1,2>
    mov_pp oC0.w, -c29.w  // ::mainFPStencilSpotShadowPersCascaded<3>

// approximately 638 instruction slots used (68 texture, 570 arithmetic)
 