//
// Generated by Microsoft (R) HLSL Shader Compiler 9.30.960.8229
//
//   using 3Dmigoto v1.2.69 on Tue May 01 13:12:44 2018
//
//
// Buffer Definitions: 
//
// cbuffer PER_BATCH
// {
//
//   float4 SvoTreeSettings3;           // Offset:    0 Size:    16 [unused]
//   row_major float4x4 SVO_NodesForUpdate3;// Offset:   16 Size:    64
//   row_major float4x4 SVO_NodesForUpdate2;// Offset:   80 Size:    64
//   float4 SvoTreeSettings2;           // Offset:  144 Size:    16 [unused]
//   row_major float4x4 SVO_NodesForUpdate0;// Offset:  160 Size:    64
//   float4 SvoTreeSettings4;           // Offset:  224 Size:    16 [unused]
//   float4 SvoTreeSettings0;           // Offset:  240 Size:    16
//   float4 SvoTreeSettings1;           // Offset:  256 Size:    16 [unused]
//   row_major float4x4 SVO_NodesForUpdate1;// Offset:  272 Size:    64
//
// }
//
//
// Resource Bindings:
//
// Name                                 Type  Format         Dim Slot Elements
// ------------------------------ ---------- ------- ----------- ---- --------
// UAV_0                                 UAV    uint          3d    0        1
// UAV_3                                 UAV    uint          3d    3        1
// UAV_4                                 UAV    uint          3d    4        1
// UAV_5                                 UAV    uint          3d    5        1
// UAV_6                                 UAV    uint          3d    6        1
// UAV_7                                 UAV    uint          3d    7        1
// PER_BATCH                         cbuffer      NA          NA    0        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 cb0[21], dynamicIndexed
dcl_uav_typed_texture3d (uint,uint,uint,uint) u0
dcl_uav_typed_texture3d (uint,uint,uint,uint) u3
dcl_uav_typed_texture3d (uint,uint,uint,uint) u4
dcl_uav_typed_texture3d (uint,uint,uint,uint) u5
dcl_uav_typed_texture3d (uint,uint,uint,uint) u6
dcl_uav_typed_texture3d (uint,uint,uint,uint) u7
dcl_input vThreadGroupID.xy
dcl_input vThreadIDInGroup.xy
dcl_temps 4
dcl_thread_group 16, 16, 1
ilt r0.x, vThreadGroupID.x, l(128)
if_nz r0.x
  ushr r0.x, vThreadGroupID.x, l(4)
  and r0.y, vThreadGroupID.x, l(0x0000fff0)
  iadd r0.y, -r0.y, vThreadGroupID.x
  xor r0.z, r0.y, l(4)
  imax r0.w, r0.y, -r0.y
  ushr r0.w, r0.w, l(2)
  ineg r1.x, r0.w
  and r0.z, r0.z, l(0x80000000)
  movc r0.z, r0.z, r1.x, r0.w
  ishl r0.w, r0.z, l(2)
  iadd r0.y, -r0.w, r0.y
  if_z r0.x
    dp4 r0.w, cb0[r0.z + 10].xyzw, icb[r0.y + 0].xyzw
  else 
    ieq r1.x, r0.x, l(1)
    if_nz r1.x
      dp4 r0.w, cb0[r0.z + 17].xyzw, icb[r0.y + 0].xyzw
    else 
      ieq r1.x, r0.x, l(2)
      if_nz r1.x
        dp4 r0.w, cb0[r0.z + 5].xyzw, icb[r0.y + 0].xyzw
      else 
        ieq r0.x, r0.x, l(3)
        if_nz r0.x
          dp4 r0.w, cb0[r0.z + 1].xyzw, icb[r0.y + 0].xyzw
        else 
          mov r0.w, l(0)
        endif 
      endif 
    endif 
  endif 
else 
  mov r0.w, l(0)
endif 
add r0.x, r0.w, l(0.100000)
ftoi r0.x, r0.x
ige r0.y, r0.x, l(0)
if_nz r0.y
  min r1.xy, cb0[15].wwww, l(512.000000, 512.000000, 0.000000, 0.000000)
  max r0.y, cb0[15].w, l(256.000000)
  min r1.zw, r0.yyyy, l(0.000000, 0.000000, 1024.000000, 1024.000000)
  div r2.xyzw, r1.yyww, cb0[15].zzzz
  add r0.yz, r2.yywy, l(0.000000, 0.500000, 0.500000, 0.000000)
  ftoi r0.yz, r0.yyzy
  imul null, r0.w, r0.y, r0.y
  imul null, r0.z, r0.z, r0.w
  imax r0.x, r0.x, l(0)
  imin r0.x, r0.z, r0.x
  xor r0.z, r0.y, r0.x
  imax r0.w, r0.x, -r0.x
  imax r3.x, r0.y, -r0.y
  udiv r0.w, null, r0.w, r3.x
  ineg r3.y, r0.w
  and r0.z, r0.z, l(0x80000000)
  movc r0.z, r0.z, r3.y, r0.w
  xor r0.w, r0.y, r0.z
  imax r3.y, r0.z, -r0.z
  udiv r3.x, null, r3.y, r3.x
  ineg r3.y, r3.x
  and r0.w, r0.w, l(0x80000000)
  movc r0.w, r0.w, r3.y, r3.x
  imul null, r3.x, r0.y, -r0.w
  imad r0.z, -r0.w, r0.y, r0.z
  imad r0.x, r3.x, r0.y, r0.x
  imad r0.x, -r0.z, r0.y, r0.x
  itof r3.xyzw, r0.xzww
  div r0.xyzw, r3.xyzw, r2.xyzw
  mul r0.xyzw, r1.xyzw, r0.xyzw
  ftou r0.xyzw, r0.xyzw
  mov r1.xy, vThreadIDInGroup.xyxx
  mov r1.zw, vThreadGroupID.yyyy
  iadd r0.xyzw, r0.xyzw, r1.xyzw
  store_uav_typed u7.xyzw, r0.xyww, l(0,0,0,0)
  store_uav_typed u5.xyzw, r0.xyww, l(0,0,0,0)
  store_uav_typed u6.xyzw, r0.xyww, l(0,0,0,0)
  store_uav_typed u0.xyzw, r0.xyww, l(1.180104062E-038,1.180104062E-038,1.180104062E-038,1.180104062E-038)
  ld_uav_typed_indexable(texture3d)(uint,uint,uint,uint) r1.x, r0.xyww, u4.xyzw
  store_uav_typed u3.xyzw, r0.xyzw, r1.xxxx
endif 
ret 
// Approximately 82 instruction slots used
