//lights manual fixed
//
// Generated by Microsoft (R) HLSL Shader Compiler 10.0.10011.16384
//
//   using 3Dmigoto v1.3.11 on Sun Nov 25 09:48:40 2018
//
//
// Buffer Definitions:
//
// cbuffer $Globals
// {
//
//   float4 gFullScreenRenderTargetDimensionsCS;// Offset:    0 Size:    16 [unused]
//   float4 gCSTestParam;               // Offset:   16 Size:    16 [unused]
//   float4 gLPVGridInfo[2];            // Offset:   32 Size:    32 [unused]
//   float4 gDeferredFogParams;         // Offset:   64 Size:    16 [unused]
//   float4 gLocalizedFogParams[5];     // Offset:   80 Size:    80 [unused]
//   row_major float4x4 gWaterRippleParams;// Offset:  160 Size:    64 [unused]
//   float4 gWaterRippleFilterParams[3];// Offset:  224 Size:    48 [unused]
//   float4 gHBAOCSParams[6];           // Offset:  272 Size:    96 [unused]
//   float4 gEdgeDetectParams[3];       // Offset:  368 Size:    48 [unused]
//   row_major float4x4 gMainSceneViewProj;// Offset:  416 Size:    64 [unused]
//   row_major float4x4 gMainSceneProj; // Offset:  480 Size:    64 [unused]
//   row_major float4x4 gMainSceneInvProj;// Offset:  544 Size:    64 [unused]
//   row_major float4x4 gMainSceneInvTransInvView;// Offset:  608 Size:    64 [unused]
//   float4 gSceenResClipDistances;     // Offset:  672 Size:    16
//   row_major float4x4 gMainSceneInvViewProj;// Offset:  688 Size:    64 [unused]
//   float4 gTiledDeferredShadowMapTexelSize;// Offset:  752 Size:    16 [unused]
//   float4 gTiledDeferredMergeParams;  // Offset:  768 Size:    16 [unused]
//   float4 gPointInSpaceLightParams;   // Offset:  784 Size:    16 [unused]
//   row_major float4x4 gLumHistComputeParams;// Offset:  800 Size:    64 [unused]
//   float4 gLuminanceToExposureCS;     // Offset:  864 Size:    16 [unused]
//   float4 gHistogramToExposure;       // Offset:  880 Size:    16 [unused]
//   row_major float4x4 gToneMapOptionsCS;// Offset:  896 Size:    64 [unused]
//   float4 gCameraPositionCS;          // Offset:  960 Size:    16 [unused]
//   float4 gWriteColour;               // Offset:  976 Size:    16 [unused]
//   float4 gLightShadowStrengthCS;     // Offset:  992 Size:    16 [unused]
//   float4 gLightShadowParamsCS;       // Offset: 1008 Size:    16 [unused]
//   row_major float4x4 gInverseViewProjShadowCS;// Offset: 1024 Size:    64 [unused]
//   row_major float4x4 gShadowMapPackedParamsCS;// Offset: 1088 Size:    64 [unused]
//   row_major float4x4 gCascadeMinMaxDepthCS;// Offset: 1152 Size:    64 [unused]
//   float4 gCameraParametersCS[2];     // Offset: 1216 Size:    32 [unused]
//   float4 gPCFKernelScaleCS;          // Offset: 1248 Size:    16 [unused]
//   float4 gCascadedShadowLightMatricesCS[16];// Offset: 1264 Size:   256 [unused]
//   float4 gLightingExperimentCS[3];   // Offset: 1520 Size:    48 [unused]
//   float4 gFinalGatherCS[5];          // Offset: 1568 Size:    80 [unused]
//   row_major float4x4 gMainSceneView; // Offset: 1648 Size:    64 [unused]
//   float4 gViewportInfoCS;            // Offset: 1712 Size:    16 [unused]
//   float4 gAOParamsCS;                // Offset: 1728 Size:    16 [unused]
//   float4 gLightComponentTogglerCS[3];// Offset: 1744 Size:    48 [unused]
//   float4 gDirectLightingExtraParamsCS;// Offset: 1792 Size:    16 [unused]
//   row_major float4x4 gViewMatrixCS;  // Offset: 1808 Size:    64 [unused]
//   row_major float4x4 gClusteredLightingParamsCS;// Offset: 1872 Size:    64 [unused]
//   float4 gTiledDecalParams[2];       // Offset: 1936 Size:    32 [unused]
//   float4 gAOStrengthParams;          // Offset: 1968 Size:    16 [unused]
//   float4 gSkinSsaoColourParams;      // Offset: 1984 Size:    16 [unused]
//   float4 gHairSsaoColourParams;      // Offset: 2000 Size:    16 [unused]
//   float4 gFoliageSsaoColourParams;   // Offset: 2016 Size:    16 [unused]
//   row_major float4x4 gKeyLightParametersCS;// Offset: 2032 Size:    64 [unused]
//   row_major float4x4 gVolumetricKeyLightParams;// Offset: 2096 Size:    64 [unused]
//   float4 gAnisoParamsCS;             // Offset: 2160 Size:    16 [unused]
//   float4 gTranslucencyLightingDebugParamsCS;// Offset: 2176 Size:    16 [unused]
//
// }
//
// cbuffer TiledLightConstData_CB
// {
//
//   struct tTiledLightingConstantData
//   {
//
//       row_major float4x4 mInvViewProj;// Offset:    0
//       row_major float4x4 mProj;      // Offset:   64
//       row_major float4x4 mView;      // Offset:  128
//       int mNumberOfTiles;            // Offset:  192
//       float3 mPadding;               // Offset:  196
//
//   } TiledLightConstData;             // Offset:    0 Size:   208
//
// }
//
// Resource bind info for depthbuffer_bucket_near
// {
//
//   struct tMinMaxPair
//   {
//
//       float mMin;                    // Offset:    0
//       float mMax;                    // Offset:    4
//
//   } $Element;                        // Offset:    0 Size:     8
//
// }
//
// Resource bind info for depthbuffer_bucket_far
// {
//
//   struct tMinMaxPair
//   {
//
//       float mMin;                    // Offset:    0
//       float mMax;                    // Offset:    4
//
//   } $Element;                        // Offset:    0 Size:     8
//
// }
//
// Resource bind info for output_frustum_spheres_near
// {
//
//   struct tFrustumSphere
//   {
//
//       float3 mPosition;              // Offset:    0
//       float mRadius;                 // Offset:   12
//
//   } $Element;                        // Offset:    0 Size:    16
//
// }
//
// Resource bind info for output_frustum_spheres_far
// {
//
//   struct tFrustumSphere
//   {
//
//       float3 mPosition;              // Offset:    0
//       float mRadius;                 // Offset:   12
//
//   } $Element;                        // Offset:    0 Size:    16
//
// }
//
//
// Resource Bindings:
//
// Name                                 Type  Format         Dim Slot Elements
// ------------------------------ ---------- ------- ----------- ---- --------
// depthbuffer_bucket_near           texture  struct         r/o    0        1
// depthbuffer_bucket_far            texture  struct         r/o    1        1
// output_frustum_spheres_near           UAV  struct         r/w    0        1
// output_frustum_spheres_far            UAV  struct         r/w    1        1
// $Globals                          cbuffer      NA          NA    0        1
// TiledLightConstData_CB            cbuffer      NA          NA    1        1
//
//
//
// Input signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// no Input
//
// Output signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// no Output
cs_5_0
dcl_globalFlags refactoringAllowed
dcl_constantbuffer cb0[43], immediateIndexed
dcl_constantbuffer cb1[13], immediateIndexed
dcl_resource_structured t0, 8
dcl_resource_structured t1, 8
dcl_uav_structured u0, 16
dcl_uav_structured u1, 16
dcl_input vThreadID.x
dcl_temps 18
dcl_resource_texture2d (float,float,float,float) t80
dcl_indexableTemp x0[4], 4
dcl_indexableTemp x1[8], 4
dcl_indexableTemp x2[4], 4
dcl_indexableTemp x3[8], 4
dcl_thread_group 256, 1, 1
ult r0.x, vThreadID.x, cb1[12].x
if_nz r0.x
  add r0.x, l(15.000000), cb0[42].x
  mul r0.x, r0.x, l(0.062500)
  round_z r0.x, r0.x
  ftou r0.x, r0.x
  udiv r0.x, r1.x, vThreadID.x, r0.x
  ld_structured_indexable(structured_buffer, stride=8)(mixed,mixed,mixed,mixed) r2.xz, vThreadID.x, l(0), t0.yxxx
  utof r3.x, r1.x
  utof r3.y, r0.x
  mul r0.yz, r3.xxyx, l(0.000000, 16.000000, 16.000000, 0.000000)
  mov x0[0].xy, r0.yzyy
  mov r1.y, r0.x
  iadd r3.xyzw, r1.xyxy, l(0, 1, 1, 0)
  utof r3.xyzw, r3.xyzw
  mul r3.xyzw, r3.xyzw, l(16.000000, 16.000000, 16.000000, 16.000000)
  mov x0[1].xy, r3.xyxx
  mov x0[2].xy, r3.zwzz
  iadd r0.xw, r1.xxxy, l(1, 0, 0, 1)
  utof r0.xw, r0.xxxw
  mul r0.xw, r0.xxxw, l(16.000000, 0.000000, 0.000000, 16.000000)
  mov x0[3].xy, r0.xwxx
  mov r1.z, r2.x
  mov r1.w, l(1.000000)
  mov r4.xyzw, l(0,0,0,0)
  loop
    ige r5.x, r4.w, l(4)
    breakc_nz r5.x
    mov r1.xy, x0[r4.w + 0].xyxx
    
//causes lgihtning clipping    
ld_indexable(texture2d)(float,float,float,float) r7.xyzw, l(0, 0, 0, 0), t80.xyzw
dp4 r8.x, cb1[3].xyzw, r1.xyzw
mul r8.w, r8.x, r7.y
add r8.w, r8.w, l(-1.000000)
mul r8.w, r8.w, l(1080.0)
mul r8.w, r8.w, l(0.890000)
mad r1.x, r7.x, r8.w, r1.x



    dp4 r5.x, cb1[0].xyzw, r1.xyzw
    dp4 r5.y, cb1[1].xyzw, r1.xyzw
    dp4 r5.z, cb1[2].xyzw, r1.xyzw
    dp4 r5.w, cb1[3].xyzw, r1.xyzw

//add r5.x, r5.x, -r7.x



    rcp r5.w, r5.w
    mul r6.xyz, r5.wwww, r5.xyzx

mul r6.x, r6.x, l(1.2)


    mov x1[r4.w + 0].xyz, r6.xyzx
    mad r5.xyz, r5.xyzx, r5.wwww, r4.xyzx
    mov r2.xyw, r1.xyxw


//dp4 r9.x, cb1[3].xyzw, r2.xyzw
//mul r9.w, r9.x, r7.y
//add r9.w, r9.w, l(-1.000000)
//mul r9.w, r9.w, l(1080.0)
//mul r9.w, r9.w, l(0.890000)
//mad r2.x, r7.x, r9.w, r2.x


    dp4 r6.x, cb1[0].xyzw, r2.xyzw
    dp4 r6.y, cb1[1].xyzw, r2.xyzw
    dp4 r6.z, cb1[2].xyzw, r2.xyzw
    dp4 r1.x, cb1[3].xyzw, r2.xyzw
    


    rcp r1.x, r1.x
    mul r2.xyw, r1.xxxx, r6.xyxz
    mov x1[r4.w + 4].xyz, r2.xywx
    mad r4.xyz, r6.xyzx, r1.xxxx, r5.xyzx
    iadd r4.w, r4.w, l(1)
  endloop
  mul r1.xyz, r4.xyzx, l(0.125000, 0.125000, 0.125000, 0.000000)
  mov r2.xy, l(0,0,0,0)
  loop
    ige r2.w, r2.y, l(8)
    breakc_nz r2.w
    mov r5.xyz, x1[r2.y + 0].xyzx
    mad r5.xyz, -r4.xyzx, l(0.125000, 0.125000, 0.125000, 0.000000), r5.xyzx
    dp3 r2.w, r5.xyzx, r5.xyzx
    max r2.x, r2.w, r2.x
    iadd r2.y, r2.y, l(1)
  endloop
  ge r2.y, r2.z, l(1.000000)
  sqrt r2.x, r2.x
  movc r1.w, r2.y, l(-1.000000), r2.x
  store_structured u0.xyzw, vThreadID.x, l(0), r1.xyzw
  lt r1.x, r2.z, l(1.000000)
  if_nz r1.x
    ld_structured_indexable(structured_buffer, stride=8)(mixed,mixed,mixed,mixed) r1.xz, vThreadID.x, l(0), t1.yxxx
    mov x2[0].xy, r0.yzyy
    mov x2[1].xy, r3.xyxx
    mov x2[2].xy, r3.zwzz
    mov x2[3].xy, r0.xwxx
    mov r0.z, r1.x
    mov r0.w, l(1.000000)
    mov r2.xyzw, l(0,0,0,0)
    loop
      ige r3.x, r2.w, l(4)
      breakc_nz r3.x
      mov r0.xy, x2[r2.w + 0].xyxx

//dp4 r10.x, cb1[3].xyzw, r0.xyzw
//mul r10.w, r10.x, r7.y
//add r10.w, r10.w, l(-1.000000)
//mul r10.w, r10.w, l(1080.0)
//mul r10.w, r10.w, l(0.890000)
//mad r0.x, r7.x, r10.w, r0.x



      dp4 r3.x, cb1[0].xyzw, r0.xyzw
      dp4 r3.y, cb1[1].xyzw, r0.xyzw
      dp4 r3.z, cb1[2].xyzw, r0.xyzw
      dp4 r3.w, cb1[3].xyzw, r0.xyzw
      rcp r3.w, r3.w
      mul r4.xyz, r3.wwww, r3.xyzx
      mov x3[r2.w + 0].xyz, r4.xyzx
      mad r3.xyz, r3.xyzx, r3.wwww, r2.xyzx
      mov r1.xyw, r0.xyxw

//dp4 r11.x, cb1[3].xyzw, r1.xyzw
//mul r11.w, r11.x, r7.y
//add r11.w, r11.w, l(-1.000000)
//mul r11.w, r11.w, l(1080.0)
//mul r11.w, r11.w, l(0.890000)
//mad r1.x, r7.x, r11.w, r1.x


      dp4 r4.x, cb1[0].xyzw, r1.xyzw
      dp4 r4.y, cb1[1].xyzw, r1.xyzw
      dp4 r4.z, cb1[2].xyzw, r1.xyzw
      dp4 r0.x, cb1[3].xyzw, r1.xyzw
      rcp r0.x, r0.x
      mul r1.xyw, r0.xxxx, r4.xyxz
      mov x3[r2.w + 4].xyz, r1.xywx
      mad r2.xyz, r4.xyzx, r0.xxxx, r3.xyzx
      iadd r2.w, r2.w, l(1)
    endloop
    mul r0.xyz, r2.xyzx, l(0.125000, 0.125000, 0.125000, 0.000000)
    mov r1.xy, l(0,0,0,0)
    loop
      ige r1.w, r1.y, l(8)
      breakc_nz r1.w
      mov r3.xyz, x3[r1.y + 0].xyzx
      mad r3.xyz, -r2.xyzx, l(0.125000, 0.125000, 0.125000, 0.000000), r3.xyzx
      dp3 r1.w, r3.xyzx, r3.xyzx
      max r1.x, r1.w, r1.x
      iadd r1.y, r1.y, l(1)
    endloop
    ge r1.y, r1.z, l(1.000000)
    sqrt r1.x, r1.x
    movc r0.w, r1.y, l(-1.000000), r1.x
    store_structured u1.xyzw, vThreadID.x, l(0), r0.xyzw
  endif
endif
ret
// Approximately 114 instruction slots used
