//
// Generated by Microsoft (R) HLSL Shader Compiler 10.1
//
//   using 3Dmigoto v0.6.181 on Wed Jul 12 17:18:24 2023
//
//
// Buffer Definitions:
//
// cbuffer RuntimeSettingsCBuffer
// {
//
//   float4 HSL;                        // Index:    0.xyzw           Components:     4
//   float enabled;                     // Index:    1.x              Components:     1
//   float enableBlueShift;             // Index:    1.y              Components:     1
//   float bloomScale;                  // Index:    1.z              Components:     1
//   float oneOverGamma;                // Index:    1.w              Components:     1
//   float colorCorrectionStrength;     // Index:    2.x              Components:     1
//   float maxAdaptedLum;               // Index:    2.y              Components:     1
//   float middleGray;                  // Index:    2.z              Components:     1
//   float blueShiftLumVal;             // Index:    2.w              Components:     1
//   float3 blueShiftColor;             // Index:    3.xyz            Components:     3
//   uint colorCorrectionRampDefaultWidth;// Index:    3.w              Components:     1 [unused]
//   uint colorCorrectionRampWidth;     // Index:    4.x              Components:     1
//
// }
//
//
// Resource Bindings:
//
// Name                                 Type  Format         Dim Slot Elements
// ------------------------------ ---------- ------- ----------- ---- --------
// samplerLinear                     sampler      NA          NA    0        1
// backbuffer                        texture  float4          2d    0        1
// adaptedLum                        texture  float4          2d    1        1
// bloomFinal                        texture  float4          2d    2        1
// colorCorrectionRamp               texture  float4          1d    3        1
// destTex                               UAV  float4          2d    0        1
// RuntimeSettingsCBuffer            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 s0, mode_default
dcl_resource_texture2d (float,float,float,float) t0
dcl_resource_texture2d (float,float,float,float) t1
dcl_resource_texture2d (float,float,float,float) t2
dcl_resource_texture1d (float,float,float,float) t3
dcl_uav_typed_texture2d (float,float,float,float) u0
dcl_input vThreadID.xy
dcl_temps 29
dcl_resource_texture2d (float,float,float,float) t125
dcl_thread_group 8, 8, 1
ld_indexable(texture2d)(float,float,float,float) r25.xyzw, l(0, 0, 0, 0), t125.xyzw
mov r0.xy, vThreadID.xyxx
mov r0.zw, l(0,0,0,0)
ld_indexable(texture2d)(float,float,float,float) r0.xyzw, r0.xyzw, t0.xyzw
eq r1.x, cb0[1].x, l(0.000000)
if_nz r1.x
  store_uav_typed u0.xyzw, vThreadID.xyyy, r0.xyzw
  ret
endif
resinfo_indexable(texture2d)(float,float,float,float)_uint r1.xy, l(0), u0.xyzw
utof r1.xy, r1.xyxx
div r1.xy, l(1.000000, 1.000000, 1.000000, 1.000000), r1.xyxx
utof r1.zw, vThreadID.xxxy
add r1.zw, r1.zzzw, l(0.000000, 0.000000, 0.500000, 0.500000)
mul r1.xy, r1.xyxx, r1.zwzz
ld_indexable(texture2d)(float,float,float,float) r1.z, l(0, 0, 0, 0), t1.yzxw
sample_l_indexable(texture2d)(float,float,float,float) r2.xyzw, r1.xyxx, t2.xyzw, s0, l(0.000000)
lt r1.x, l(0.000000), cb0[1].y
div r1.y, r1.z, cb0[2].w
add r1.y, -r1.y, l(1.000000)
mul_sat r1.y, r1.y, cb0[1].y
dp3 r1.w, r0.xyzx, l(0.212500, 0.715400, 0.072100, 0.000000)
mad r3.xyz, r1.wwww, cb0[3].xyzx, -r0.xyzx
mad r3.xyz, r1.yyyy, r3.xyzx, r0.xyzx
dp3 r1.w, r2.xyzx, l(0.212500, 0.715400, 0.072100, 0.000000)
mad r4.xyz, r1.wwww, cb0[3].xyzx, -r2.xyzx
mad r4.xyz, r1.yyyy, r4.xyzx, r2.xyzx
movc r0.xyz, r1.xxxx, r3.xyzx, r0.xyzx
movc r2.xyz, r1.xxxx, r4.xyzx, r2.xyzx
mad r0.xyzw, cb0[1].zzzz, r2.xyzw, r0.xyzw
lt r1.x, l(1.000000), cb0[2].y
div r1.y, cb0[2].z, r1.z
min r1.y, r1.y, cb0[2].y
mul r2.xyzw, r0.xyzw, r1.yyyy
movc r0.xyzw, r1.xxxx, r2.xyzw, r0.xyzw
dp3 r1.x, l(0.597190, 0.354580, 0.048230, 0.000000), r0.xyzx
dp3 r1.y, l(0.076000, 0.908340, 0.015660, 0.000000), r0.xyzx
dp3 r1.z, l(0.028400, 0.133830, 0.837770, 0.000000), r0.xyzx
add r2.xyz, r1.xyzx, l(0.0245785993, 0.0245785993, 0.0245785993, 0.000000)
mad r2.xyz, r1.xyzx, r2.xyzx, l(-0.0000905370034, -0.0000905370034, -0.0000905370034, 0.000000)
mad r3.xyz, r1.xyzx, l(0.983729, 0.983729, 0.983729, 0.000000), l(0.432951, 0.432951, 0.432951, 0.000000)
mad r1.xyz, r1.xyzx, r3.xyzx, l(0.238081, 0.238081, 0.238081, 0.000000)
div r1.xyz, r2.xyzx, r1.xyzx
dp3_sat r2.x, l(1.604750, -0.531080, -0.073670, 0.000000), r1.xyzx
dp3_sat r2.y, l(-0.102080, 1.108130, -0.006050, 0.000000), r1.xyzx
dp3_sat r2.z, l(-0.003270, -0.072760, 1.076020, 0.000000), r1.xyzx
ne r1.x, l(0.000000, 0.000000, 0.000000, 0.000000), cb0[0].w
ge r1.y, r2.y, r2.z
and r1.y, r1.y, l(0x3f800000)
mov r3.xy, r2.zyzz
mov r3.zw, l(0,0,-1.000000,0.666666687)
add r4.xy, r2.yzyy, -r3.xyxx
mov r4.zw, l(0,0,1.000000,-1.000000)
mad r3.xyzw, r1.yyyy, r4.xyzw, r3.xyzw
ge r1.y, r2.x, r3.x
and r1.y, r1.y, l(0x3f800000)
mov r4.xyz, r3.xywx
mov r4.w, r2.x
mov r3.xyw, r4.wywx
add r3.xyzw, -r4.xyzw, r3.xyzw
mad r3.xyzw, r1.yyyy, r3.yzxw, r4.yzxw
min r1.y, r3.x, r3.w
add r1.y, -r1.y, r3.z
add r1.z, -r3.x, r3.w
mad r1.w, r1.y, l(6.000000), l(1.000000013E-10)
div r1.z, r1.z, r1.w
add r1.z, r1.z, r3.y
mov r3.x, |r1.z|
add r1.z, r3.z, l(1.000000013E-10)
div r3.y, r1.y, r1.z
mul r1.yz, r3.yyzy, cb0[0].yyzy
mad r3.xyz, r3.xxxx, cb0[0].xxxx, l(1.000000, 0.666666687, 0.333333343, 0.000000)
frc r3.xyz, r3.xyzx
mad r3.xyz, r3.xyzx, l(6.000000, 6.000000, 6.000000, 0.000000), l(-3.000000, -3.000000, -3.000000, 0.000000)
add_sat r3.xyz, |r3.xyzx|, l(-1.000000, -1.000000, -1.000000, 0.000000)
add r3.xyz, r3.xyzx, l(-1.000000, -1.000000, -1.000000, 0.000000)
mad r3.xyz, r1.yyyy, r3.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000)
mul r1.yzw, r1.zzzz, r3.xxyz
movc r1.xyz, r1.xxxx, r1.yzwy, r2.xyzx
max r1.xyz, r1.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000)
log r1.xyz, r1.xyzx
mul r1.xyz, r1.xyzx, l(0.416666657, 0.416666657, 0.416666657, 0.000000)
exp r1.xyz, r1.xyzx
mad r1.xyz, r1.xyzx, l(1.055000, 1.055000, 1.055000, 0.000000), l(-0.055000, -0.055000, -0.055000, 0.000000)
max r1.xyz, r1.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000)
mov_sat r1.w, cb0[2].x
lt r2.x, l(0.000000), r1.w
if_nz r2.x
  iadd r2.x, cb0[4].x, l(-1)
  utof r2.x, r2.x
  mul r2.xyz, r1.xyzx, r2.xxxx
  ftou r2.xyz, r2.xyzx
  mov r2.w, l(0)
  ld_indexable(texture1d)(float,float,float,float) r2.x, r2.xwww, t3.xyzw
  add r2.x, -r1.x, r2.x
  mad r1.x, r1.w, r2.x, r1.x
  ld_indexable(texture1d)(float,float,float,float) r2.x, r2.ywww, t3.yxzw
  add r2.x, -r1.y, r2.x
  mad r1.y, r1.w, r2.x, r1.y
  ld_indexable(texture1d)(float,float,float,float) r2.x, r2.zwww, t3.zxyw
  add r2.x, -r1.z, r2.x
  mad r1.z, r1.w, r2.x, r1.z
endif
log r1.xyz, |r1.xyzx|
mul r1.xyz, r1.xyzx, cb0[1].wwww
exp r0.xyz, r1.xyzx
store_uav_typed u0.xyzw, vThreadID.xyyy, r0.xyzw
ret
// Approximately 107 instruction slots used
