//Clipping fix might be here -- INVESTIGATE !!
//
// Generated by Microsoft (R) HLSL Shader Compiler 10.0.10011.16384
//
//   using 3Dmigoto v1.3.11 on Sun Nov 25 08:40:12 2018
//
//
// Buffer Definitions:
//
// cbuffer TiledDeferredCSParams_CB
// {
//
//   struct tTiledDeferredCS
//   {
//
//       row_major float4x4 mMainSceneInvProj;// Offset:    0
//       row_major float4x4 mMainSceneProj;// Offset:   64
//       row_major float4x4 mMainSceneView;// Offset:  128
//       row_major float4x4 mMainSceneInvTransInvView;// Offset:  192
//       row_major float4x4 mMainSceneInvViewProjThread;// Offset:  256
//       row_major float4x4 mMainSceneViewProj;// Offset:  320
//       float4 mScreenResClipDistances;// Offset:  384
//       float4 mAOStrengthParams;      // Offset:  400
//       float4 mCameraPosition;        // Offset:  416
//       float4 mCameraParameters[2];   // Offset:  432
//       float4 mAnisoParams;           // Offset:  464
//       float4 mLightShadowParams;     // Offset:  480
//       float4 mShadowMapTexelSize;    // Offset:  496
//       float4 mViewportInfo;          // Offset:  512
//       float4 mClusteredLightingParams[4];// Offset:  528
//       float4 mRimLightParams[2];     // Offset:  592
//       float4 mTranslucencyLightingDebugParams;// Offset:  624
//       float4 mLightComponentToggler[4];// Offset:  640
//       float4 mLightingExperiment[3]; // Offset:  704
//       float4 mLightingModelTestParams[5];// Offset:  752
//       float2 mDirectLightingExtraParams;// Offset:  832
//       float2 mFullScreenRenderTargetDimensions;// Offset:  840
//       float mEyeLightWrapPercent;    // Offset:  848
//       int mEnableSssOnPointLights;   // Offset:  852
//       int mEnableTranslucencyLighting;// Offset:  856
//       int mDebugMaxLightListEntries; // Offset:  860
//
//   } TiledDeferredCSParams;           // Offset:    0 Size:   864
//
// }
//
// cbuffer ClusterOffsetPerLight_CB
// {
//
//   struct tClusteredOffsetsPerLight
//   {
//
//       float4 mNumLightsEnd;          // Offset:    0
//       float4 mMaxLightsEnd;          // Offset:   16
//
//   } ClusterOffsetPerLight;           // Offset:    0 Size:    32
//
// }
//
// Resource bind info for ClusterLight2DBounds
// {
//
//   struct t2DBounds
//   {
//
//       int mLeft;                     // Offset:    0
//       int mRight;                    // Offset:    4
//       int mTop;                      // Offset:    8
//       int mBottom;                   // Offset:   12
//
//   } $Element;                        // Offset:    0 Size:    16
//
// }
//
// Resource bind info for TiledLightBuffer
// {
//
//   struct tClusteredLightData
//   {
//
//       float3 mPosition;              // Offset:    0
//       float mRadius;                 // Offset:   12
//       float3 mDirection;             // Offset:   16
//       float mHalfCosConeAngle;       // Offset:   28
//
//   } $Element;                        // Offset:    0 Size:    32
//
// }
//
// Resource bind info for ClusterLightIdsPerTile
// {
//
//   uint $Element;                     // Offset:    0 Size:     4
//
// }
//
// Resource bind info for ClusterLightCountsPerTile
// {
//
//   uint $Element;                     // Offset:    0 Size:     4
//
// }
//
//
// Resource Bindings:
//
// Name                                 Type  Format         Dim Slot Elements
// ------------------------------ ---------- ------- ----------- ---- --------
// ClusterLight2DBounds              texture  struct         r/o    0        1
// TiledLightBuffer                  texture  struct         r/o    1        1
// ClusterLightIdsPerTile                UAV  struct         r/w    0        1
// ClusterLightCountsPerTile             UAV  struct         r/w    1        1
// TiledDeferredCSParams_CB          cbuffer      NA          NA    2        1
// ClusterOffsetPerLight_CB          cbuffer      NA          NA    3        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_immediateConstantBuffer { { 1.000000, 0, 0, 0},
                              { 0, 1.000000, 0, 0},
                              { 0, 0, 1.000000, 0},
                              { 0, 0, 0, 1.000000} }
dcl_constantbuffer cb2[37], immediateIndexed
dcl_constantbuffer cb3[2], immediateIndexed
dcl_resource_structured t0, 16
dcl_resource_structured t1, 32
dcl_uav_structured u0, 4
dcl_uav_structured u1, 4
dcl_input vThreadID.xyz
dcl_temps 4
dcl_thread_group 4, 8, 8
itof r0.x, vThreadID.z
ge r0.xyzw, r0.xxxx, cb3[0].xyzw
and r0.xyzw, r0.xyzw, l(1, 1, 1, 1)
iadd r0.x, r0.y, r0.x
iadd r0.x, r0.z, r0.x
iadd r0.x, r0.w, r0.x
ftou r0.yz, cb2[35].xxyx
uge r1.xy, vThreadID.xyxx, r0.yzyy
or r0.w, r1.y, r1.x
utof r1.x, vThreadID.z
dp4 r1.y, cb3[0].xyzw, icb[r0.x + 0].xyzw
ge r1.x, r1.x, r1.y
or r0.w, r0.w, r1.x
if_nz r0.w
  ret
endif
iadd r0.w, r0.x, l(-1)
dp4 r1.x, cb3[0].xyzw, icb[r0.w + 0].xyzw
ftou r1.x, r1.x
ineg r1.x, r1.x
movc r1.x, r0.x, r1.x, l(0)
iadd r1.x, r1.x, vThreadID.z
dp4 r0.w, cb3[1].xyzw, icb[r0.w + 0].xyzw
ftou r0.w, r0.w
movc r0.w, r0.x, r0.w, l(0)
iadd r0.w, r1.x, r0.w
ishl r1.yz, vThreadID.xxyx, l(0, 2, 2, 0)
imad r2.xy, vThreadID.xyxx, l(4, 4, 0, 0), l(3, 3, 0, 0)
ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r3.xyzw, r0.w, l(0), t0.xyzw
ige r2.xy, r2.xyxx, r3.xzxx
ige r1.yz, r3.yywy, r1.yyzy
and r1.y, r1.y, r2.x
and r1.y, r2.y, r1.y
and r1.y, r1.z, r1.y
if_z r1.y
  ret
endif
ld_structured_indexable(structured_buffer, stride=32)(mixed,mixed,mixed,mixed) r2.xyzw, r0.w, l(0), t1.xyzw
mov r3.xyz, r2.xyzx
mov r3.w, l(1.000000)
dp4 r0.w, cb2[10].xyzw, r3.xyzw
add r0.w, -r2.w, r0.w
min r1.y, cb2[36].w, l(500.000000)
ge r0.w, r0.w, r1.y
if_nz r0.w
  ret
endif
imul null, r0.x, r0.y, r0.x
imul null, r0.w, r0.z, r0.x
imad r0.y, r0.y, vThreadID.y, vThreadID.x
imad r2.x, r0.x, r0.z, r0.y
mov r2.y, l(0)
imm_atomic_iadd r3.x, u1, r2.xyxx, l(1)
ult r0.x, r3.x, l(128)
if_nz r0.x
  ishl r0.xy, r0.wyww, l(7, 7, 0, 0)
  iadd r0.x, r0.y, r0.x
  iadd r0.x, r3.x, r0.x
  store_structured u0.x, r0.x, l(0), r1.x
else
  store_structured u1.x, r2.x, l(0), l(128)
endif
ret
// Approximately 63 instruction slots used

