// CRC32: 0CC87CDB | Unity headers extracted from SESSAO.shader
// Shader "Hidden/SESSAO" {
//   Properties {
//    _MainTex ("Base (RGB)", 2D) = "white" { }
//   }
//   Fallback Off
//   SubShader 1/1 {
//     Pass 2/7 {
//       ZTest False
//       ZWrite Off
//       Cull Off
//       Fog { Mode Off }
//       GpuProgramID 78601
//       Program "fp" {
//         SubProgram "d3d9 " {
//           Matrix 0 [ProjectionMatrixInverse]
//           Float 7 [Bias]
//           Float 13 [Downsamp]
//           Float 11 [DrawDistance]
//           Float 12 [DrawDistanceFadeSize]
//           Float 14 [HalfSampling]
//           Float 9 [Intensity]
//           Float 16 [Orthographic]
//           Float 15 [PreserveDetails]
//           Float 6 [Radius]
//           Float 10 [SampleDistributionCurve]
//           Float 8 [ZThickness]
//           Vector 5 [_MainTex_TexelSize]
//           Vector 4 [_ScreenParams]
//           SetTexture 0 [_CameraDepthNormalsTexture] 2D 0
//           SetTexture 1 [_CameraDepthTexture] 2D 1
//           SetTexture 2 [_DitherTexture] 2D 2
//         }
//       }
//     }
//   }
// }
// 
// Headers extracted with DarkStarSword's extract_unity_shaders.py
// https://raw.githubusercontent.com/DarkStarSword/3d-fixes/master/extract_unity_shaders.py

    ps_3_0
    def c17, 3.55539989, 0, -1.77769995, 1
    def c18, 5, 4, 8, 9.99999975e-005
    def c19, 10, 6, 25.5, 0
    def c20, 6.28318548, -3.14159274, -0.800000012, -0.00999999978
    def c21, 194.778748, 0.159154937, 0.5, 0.00100000005
    def c22, 1.20000005, 1, 0.577350259, 0
    def c23, 1, 0, 2, -1
    defi i0, 255, 0, 0, 0
    dcl_texcoord v0.xy
    dcl_2d s0
    dcl_2d s1
    dcl_2d s2

def c220, 0, 1, 0.0625, 0.5
dcl_2d s15

texldl r31, c220.z, s15

    mul r0, c23.xxyy, v0.xyxx
    texldl r0, r0, s1
    mad r0.z, r0.x, c23.z, c23.w
    mad r0.xyw, v0.xyzx, c23.zzzy, c23.wwzx

// SSAO normal map artefact fix:
add r31.w, r0.w, -r31.y
mad r0.x, -r31.w, r31.x, r0.x

    dp4 r1.x, c0, r0
    dp4 r1.y, c1, r0
    dp4 r1.z, c2, r0
    dp4 r0.x, c3, r0
    rcp r0.x, r0.x
    mul r2, r0.x, r1.xyzz
    texld r3, v0, s0
    mad r0.yzw, r3.xxyz, c17.xxxy, c17.xzzw
    dp3 r0.w, r0.yzww, r0.yzww
    rcp r0.w, r0.w
    add r1.x, r0.w, r0.w
    mul r3.xy, r0.yzzw, r1.x
    mad r3.z, r0.w, c23.z, c23.w
    mul r0.yz, c5.xzww, v0.xxyw
    add r0.w, c15.x, c15.x
    add r1.x, -r0.w, c18.x
    mad r1.x, c13.x, r1.x, r1.x
    rcp r1.x, r1.x
    mul r4.xy, r0.yzzw, r1.x
    mov r4.zw, c23.y
    texldl r4, r4, s2
    mov r0.yz, c18
    mad r0.y, c15.x, r0.y, r0.z
    add r0.z, r0.w, c18.y
    mad r0.y, c14.x, -r0.z, r0.y
    mad r0.x, r1.z, -r0.x, c18.w
    add r0.z, -r0.x, c19.x
    mad r0.x, c16.x, r0.z, r0.x
    rcp r0.x, r0.x
    mul r0.x, r0.x, c6.x
    rcp r0.z, r0.y
    mul r0.w, r4.w, c19.y
    rcp r1.x, c4.y
    mul r1.x, r1.x, c4.x
    pow r1.y, r4.w, c10.x
    mul r1.z, r4_abs.w, c8.x
    mul r1.z, r0.x, r1.z
    mul r1.z, r1.z, c19.z
    rcp r1.z, r1.z
    mov r4.x, c23.x
    add r1.w, -r4.w, c23.z
    mov r5.zw, c23.y
    mov r6.w, c23.x
    mov r4.yz, c23.y
    mov r3.w, c23.y
    rep i0
      mov r4.w, r0.y
      break_ge r3.w, r4.w
      mul r4.w, r0.z, r3.w
      mad r4.w, r4.w, c21.x, r0.w
      mad r4.w, r4.w, c21.y, c21.z
      frc r4.w, r4.w
      mad r4.w, r4.w, c20.x, c20.y
      sincos r7.xy, r4.w
      mul r8.y, r1.x, r7.x
      mov r8.x, r7.y
      mul r7.zw, r1.y, r8.xyxy
      mul r7.xy, r7.yxzw, c21.w
      mad r7.xy, r7.zwzw, r0.x, r7
      add_sat r5.xy, r7, v0
      texldl r7, r5, s1
      mad r6.xy, r5, c23.z, c23.w
      mad r6.z, r7.x, c23.z, c23.w

// SSAO normal map artefact fix:
add r31.w, r6.w, -r31.y
mad r6.x, -r31.w, r31.x, r6.x

      dp4 r7.x, c0, r6
      dp4 r7.y, c1, r6
      dp4 r7.z, c2, r6
      dp4 r4.w, c3, r6
      rcp r4.w, r4.w
      mad r7, r7.xyzz, r4.w, -r2
      nrm r6.xyz, r7
      dp3 r4.w, r6, r3
      add r5.x, r7_abs.w, c20.z
      max r6.x, r5.x, c23.y
      mad_sat r5.x, r6.x, -r1.z, c23.x
      add r4.z, r4.z, r5.x
      add r5.y, -r4.w, c7.x
      lrp_sat r6.x, r4.w, r4.x, -c7.x
      mul r4.w, r5.x, r6.x
      mad r4.w, r4.w, r1.w, r4.y
      cmp r4.y, r5.y, r4.y, r4.w
      add r3.w, r3.w, c23.x
    endrep
    add r0.x, r4.z, c20.w
    rcp r0.y, r4.z
    cmp r0.x, r0.x, r0.y, c23.x
    mul r0.x, r0.x, r4.y
    mad_sat r0.x, r0.x, -c22.x, c22.y
    pow r1.x, r0.x, c9.x
    rcp r0.x, c12.x
    mul r0.y, r0.x, r2.w
    mad_sat r0.x, c11.x, r0.x, r0.y
    add r0.y, r1.x, c23.w
    mad oC0.w, r0.x, r0.y, c23.x
    mov oC0.xyz, c22.z
