//
// Generated by Microsoft (R) HLSL Shader Compiler 10.1
//
//   using 3Dmigoto v0.6.181 on Fri Jul 14 08:19:28 2023
//
//
// Buffer Definitions:
//
// cbuffer GTAOConstantBuffer
// {
//
//   struct GTAOConstants
//   {
//
//       int2 ViewportSize;             // Index:    0
//       float2 ViewportPixelSize;      // Index:    0.z
//       float2 DepthUnpackConsts;      // Index:    1
//       float2 CameraTanHalfFOV;       // Index:    1.z
//       float2 NDCToViewMul;           // Index:    2
//       float2 NDCToViewAdd;           // Index:    2.z
//       float2 NDCToViewMul_x_PixelSize;// Index:    3
//       float EffectRadius;            // Index:    3.z
//       float EffectFalloffRange;      // Index:    3.w
//       float RadiusMultiplier;        // Index:    4
//       float Padding0;                // Index:    4.y
//       float FinalValuePower;         // Index:    4.z
//       float DenoiseBlurBeta;         // Index:    4.w
//       float SampleDistributionPower; // Index:    5
//       float ThinOccluderCompensation;// Index:    5.y
//       float DepthMIPSamplingOffset;  // Index:    5.z
//       int NoiseIndex;                // Index:    5.w
//
//   } g_GTAOConsts;                    // Index:    0-5              Components:    24
//
// }
//
//
// Resource Bindings:
//
// Name                                 Type  Format         Dim Slot Elements
// ------------------------------ ---------- ------- ----------- ---- --------
// g_samplerPointClamp               sampler      NA          NA   10        1
// g_srcWorkingAOTerm                texture   float          2d    0        1
// g_srcWorkingEdges                 texture   float          2d    1        1
// g_outFinalAOTerm                      UAV   float          2d    0        1
// GTAOConstantBuffer                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_constantbuffer CB0[5], immediateIndexed
dcl_sampler s10, mode_default
dcl_resource_texture2d (float,float,float,float) t0
dcl_resource_texture2d (float,float,float,float) t1
dcl_uav_typed_texture2d (float,float,float,float) u0
dcl_input vThreadID.xy
dcl_temps 12
dcl_thread_group 8, 8, 1
ishl r0.yz, vThreadID.xxyx, l(0, 1, 0, 0)
utof r1.xy, r0.yzyy
mul r1.xy, r1.xyxx, cb0[0].zwzz
gather4_indexable(texture2d)(float,float,float,float) r2.xyz, r1.xyxx, t1.xyzw, s10.x
mul r2.xyz, r2.xzyx, l(255.500000, 255.500000, 255.500000, 0.000000)
ftou r2.xyz, r2.xyzx
ubfe r3.xyzw, l(2, 2, 2, 2), l(4, 2, 6, 4), r2.xxyy
utof r3.xyzw, r3.xyzw
mul r3.xyzw, r3.xyzw, l(0.333333343, 0.333333343, 0.333333343, 0.333333343)
ubfe r4.xyz, l(2, 2, 2, 0), l(6, 4, 2, 0), r2.zzzz
and r2.xyz, r2.xyzx, l(3, 3, 3, 0)
utof r2.xyz, r2.xyzx
mul r2.xyz, r2.xyzx, l(0.333333343, 0.333333343, 0.333333343, 0.000000)
utof r4.xyz, r4.xyzx
mul r5.x, r3.x, r4.x
mul r5.yz, r4.yyzy, l(0.000000, 0.333333343, 0.333333343, 0.000000)
mov r4.x, l(0.333333343)
gather4_aoffimmi_indexable(1,2,0)(texture2d)(float,float,float,float) r1.zw, r1.xyxx, t1.xyzw, s10.x
mul r6.xyzw, r1.wwwz, l(255.500000, 255.500000, 255.500000, 255.500000)
ftou r6.xyzw, r6.xyzw
ubfe r7.xyzw, l(2, 2, 2, 2), l(6, 4, 2, 6), r6.xyzw
ubfe r1.zw, l(0, 0, 2, 2), l(0, 0, 4, 2), r6.wwww
utof r1.zw, r1.zzzw
utof r6.xyzw, r7.xyzw
mul r6.xyzw, r6.xyzw, l(0.333333343, 0.333333343, 0.333333343, 0.333333343)
mov r4.w, r6.z
mov r5.w, r2.z
mov r4.z, r2.y
gather4_aoffimmi_indexable(2,0,0)(texture2d)(float,float,float,float) r7.xyz, r1.xyxx, t1.xywz, s10.x
mul r7.xyz, r7.xzyx, l(255.500000, 255.500000, 255.500000, 0.000000)
ftou r7.xyz, r7.xyzx
ubfe r8.xyzw, l(2, 2, 2, 2), l(6, 2, 6, 4), r7.xxyy
utof r8.xyzw, r8.xyzw
mul r8.xyzw, r8.xyzw, l(0.333333343, 0.333333343, 0.333333343, 0.333333343)
mov r4.y, r8.x
mul r9.xyzw, r4.xyzw, r5.xyzw
mov r4.xzw, r4.yyxx
dp4 r0.w, r9.xyzw, l(1.000000, 1.000000, 1.000000, 1.000000)
add_sat r0.w, -r0.w, l(1.500000)
mad r9.xyzw, r0.wwww, l(0.333333343, 0.333333343, 0.333333343, 0.333333343), r9.xyzw
min r9.xyzw, r9.xyzw, l(1.000000, 1.000000, 1.000000, 1.000000)
add r0.w, r9.x, cb0[4].w
add r0.w, r9.y, r0.w
add r0.w, r9.z, r0.w
add r0.w, r9.w, r0.w
mul r3.xyz, r3.yzwy, r9.xzzx
add r2.y, r3.y, r3.x
mad r2.w, r9.y, r8.y, r3.z
mad r0.w, r2.y, l(0.425000), r0.w
mad r0.w, r2.w, l(0.425000), r0.w
mul r3.xy, r6.xyxx, r9.wwww
mad r2.x, r9.x, r2.x, r3.x
mad r0.w, r2.x, l(0.425000), r0.w
mul r2.xyw, r2.xyxw, l(0.425000, 0.425000, 0.000000, 0.425000)
and r3.xzw, r7.xxyz, l(3, 0, 3, 3)
ubfe r6.xyz, l(2, 2, 2, 0), l(6, 2, 4, 0), r7.zzxz
utof r6.xyz, r6.xyzx
utof r3.xzw, r3.xxzw
mul r3.xw, r3.xxxw, l(0.333333343, 0.000000, 0.000000, 0.333333343)
mul r7.z, r8.y, r3.z
mad r3.y, r9.y, r3.x, r3.y
mad r0.w, r3.y, l(0.425000), r0.w
mul r3.y, r3.y, l(0.425000)
gather4_indexable(texture2d)(float,float,float,float) r10.xyzw, r1.xyxx, t0.xyzw, s10.x
mul r3.z, r9.x, r10.x
mad r3.z, r10.y, cb0[4].w, r3.z
gather4_aoffimmi_indexable(2,0,0)(texture2d)(float,float,float,float) r11.xyzw, r1.xyxx, t0.xyzw, s10.x
mad r3.z, r9.y, r11.x, r3.z
mad r3.z, r9.z, r10.z, r3.z
gather4_aoffimmi_indexable(0,2,0)(texture2d)(float,float,float,float) r5.xw, r1.xyxx, t0.zxyw, s10.x
gather4_aoffimmi_indexable(2,2,0)(texture2d)(float,float,float,float) r1.xy, r1.xyxx, t0.zwxy, s10.x
mad r3.z, r9.w, r5.x, r3.z
mad r2.y, r2.y, r10.w, r3.z
mad r2.y, r2.w, r11.w, r2.y
mad r2.x, r2.x, r5.w, r2.y
mad r2.x, r3.y, r1.y, r2.x
div r0.w, r2.x, r0.w
mul r0.w, r0.w, l(1.500000)
store_uav_typed u0.xyzw, r0.yzzz, r0.wwww
mul r2.xy, r6.xyxx, l(0.333333343, 0.333333343, 0.000000, 0.000000)
mul r4.y, r2.x, r6.z
mul r7.w, r1.w, r3.x
mul r0.w, r1.z, l(0.333333343)
mov r7.x, r5.y
mov r7.y, l(0.333333343)
mul r4.xyzw, r4.xyzw, r7.xyzw
dp4 r1.z, r4.xyzw, l(1.000000, 1.000000, 1.000000, 1.000000)
add_sat r1.z, -r1.z, l(1.500000)
mad r4.xyzw, r1.zzzz, l(0.333333343, 0.333333343, 0.333333343, 0.333333343), r4.xyzw
min r4.xyzw, r4.xyzw, l(1.000000, 1.000000, 1.000000, 1.000000)
mul r1.z, r10.y, r4.x
mad r1.z, r11.x, cb0[4].w, r1.z
mad r1.z, r4.y, r11.y, r1.z
mad r1.z, r4.z, r11.w, r1.z
mad r1.y, r4.w, r1.y, r1.z
mul r1.zw, r8.zzzw, r4.zzzz
mad r1.z, r4.x, r5.z, r1.z
mad r1.w, r4.y, r2.y, r1.w
mul r2.x, r1.z, l(0.425000)
mad r1.y, r2.x, r10.z, r1.y
mul r2.x, r1.w, l(0.425000)
mad r1.y, r2.x, r11.z, r1.y
mul r2.x, r2.z, r4.x
mad r2.x, r4.w, r6.w, r2.x
mul r2.y, r2.x, l(0.425000)
mad r1.y, r2.y, r5.x, r1.y
mul r0.w, r0.w, r4.w
mad r0.w, r4.y, r3.w, r0.w
mul r2.y, r0.w, l(0.425000)
mad r1.x, r2.y, r1.x, r1.y
add r1.y, r4.x, cb0[4].w
add r1.y, r4.y, r1.y
add r1.y, r4.z, r1.y
add r1.y, r4.w, r1.y
mad r1.y, r1.z, l(0.425000), r1.y
mad r1.y, r1.w, l(0.425000), r1.y
mad r1.y, r2.x, l(0.425000), r1.y
mad r0.w, r0.w, l(0.425000), r1.y
div r0.w, r1.x, r0.w
mul r0.w, r0.w, l(1.500000)
imad r0.x, vThreadID.x, l(2), l(1)
store_uav_typed u0.xyzw, r0.xzzz, r0.wwww
ret
// Approximately 123 instruction slots used
