//Vignette PS.
//
// Generated by Microsoft (R) HLSL Shader Compiler 10.0.10011.16384
//
//   using 3Dmigoto v1.3.16 on Sat Jan 15 21:13:27 2022
//
//
// Note: shader requires additional functionality:
//       64 UAV slots
//
//
// Buffer Definitions:
//
// cbuffer ConstBuf__passData
// {
//
//   struct PostEffectsFullResPassData
//   {
//
//       struct FullResResolveConstants
//       {
//
//           float MotionBlurEnabled;   // Index:    0
//           float DebugBlur;           // Index:    0.y
//           float DebugBlurEffect;     // Index:    0.z
//           float NoOpaquePass;        // Index:    0.w
//           uint DebugTakingCalibrationScreenshot;// Index:    1
//           float DebugMotionVectors;  // Index:    1.y
//           float BloomEnabled;        // Index:    1.z
//           float2 screenSize;         // Index:    2
//           float2 screenSizeRcp;      // Index:    2.z
//           float2 screenHalfSize;     // Index:    3
//           float2 screenHalfSizeRcp;  // Index:    3.z
//           float2 screenSizeResolved; // Index:    4
//           float2 screenSizeResolvedRcp;// Index:    4.z
//           float2 screenResolvedToUnresolved;// Index:    5
//           float2 screenUnresolvedToResolved;// Index:    5.z
//           float2 motionVectorTemporalRescaleCompress;// Index:    6
//           float2 motionVectorTemporalRescaleDecompress;// Index:    6.z
//           float2 dlssScreenSize;     // Index:    7
//           float2 screenScale;        // Index:    7.z
//           float2 screenOffset;       // Index:    8
//           float4 scaleOffsetR;       // Index:    9
//           float4 scaleOffsetG;       // Index:   10
//           float4 scaleOffsetB;       // Index:   11
//           float3 Vignette_Color;     // Index:   12
//           float Vignette_Brightness; // Index:   12.w
//           float Vignette_Falloff;    // Index:   13
//           float Vignette_Scale;      // Index:   13.y
//           float lensVignetteExposureSq;// Index:   13.z
//           float scale;               // Index:   13.w
//           float rcpScreenLensRadius2;// Index:   14
//           float2 screenLensCenter;   // Index:   14.y
//           int filmGrainOffset;       // Index:   14.w
//           float4 filmGrainUVTransform;// Index:   15
//           float filmGrainEffectShadows;// Index:   16
//           float filmGrainEffectMids; // Index:   16.y
//           float filmGrainEffectBrights;// Index:   16.z
//           float doUnsharp;           // Index:   16.w
//           float unsharpStrength;     // Index:   17
//           bool DebugNoLUT;           // Index:   17.y
//           bool passThrough;          // Index:   17.z
//           bool passThrough_Exposure; // Index:   17.w
//           bool passThrough_WhiteBalance;// Index:   18
//           bool passThrough_SLog;     // Index:   18.y
//
//       } constants;                   // Index:    0
//
//       struct ToneMappingConstants
//       {
//
//           float3 WBMatrixR;          // Index:   19
//           float3 WBMatrixG;          // Index:   20
//           float3 WBMatrixB;          // Index:   21
//           float EnableLocalAdaptation;// Index:   21.w
//           float Adaptation_Exposure; // Index:   22
//           float ExposureEV;          // Index:   22.y
//           float ExposureEVClampMin;  // Index:   22.z
//           float ExposureEVClampMax;  // Index:   22.w
//           float LocalAdaptationShadows;// Index:   23
//           float LocalAdaptationHighlights;// Index:   23.y
//           int Tonemapping_Curve;     // Index:   23.z
//           float Contrast;            // Index:   23.w
//           float HDRMax;              // Index:   24
//           float HDRWhite;            // Index:   24.y
//           float ContrastTimesShoulder;// Index:   24.z
//           float ChannelCrossTalk;    // Index:   24.w
//           float PrecomputedBMult;    // Index:   25
//           float PrecomputedCAdd;     // Index:   25.y
//           float SceneToScreenPower;  // Index:   25.z
//           float IsHDRRendering;      // Index:   25.w
//           float DebugHDRRendering;   // Index:   26
//           float DebugHDRRenderingPhase;// Index:   26.y
//           float DebugNoHDRRendering; // Index:   26.z
//           float ShowWaveform;        // Index:   26.w
//
//       } toneMappingConstants;        // Index:   19
//
//       struct TemporalAAConsts
//       {
//
//           float TAAConvergenceLimit; // Index:   27
//           float TAAHP;               // Index:   27.y
//           float TAALP;               // Index:   27.z
//           float TAAColorExtent;      // Index:   27.w
//           float TAACheckerboardFramePhase;// Index:   28
//           float TAAMotionRejection;  // Index:   28.y
//           float TAAEnable;           // Index:   28.z
//           float HalfResTAAEnable;    // Index:   28.w
//           float HalfResTAAConvergence;// Index:   29
//           uint TAAForceSmooth;       // Index:   29.y
//           float TAATransparentsContributionRejectionMultiply;// Index:   29.z
//           float TAAVarianceBlurIncrease;// Index:   29.w
//           float TAAVarianceTransparentDecrease;// Index:   30
//           float TAAEncodeRange;      // Index:   30.y
//           float TAAInvEncodeRange;   // Index:   30.z
//           uint DebugSimilarity;      // Index:   30.w
//           float VarianceWindow;      // Index:   31
//           float2 UpsampleOffset;     // Index:   31.y
//
//       } temporalConsts;              // Index:   27
//
//       struct DoFCoCStruct
//       {
//
//           float m_Enabled;           // Index:   32
//           float m_DebugDOF;          // Index:   32.y
//           float m_NearDistanceOfAcceptableSharpness;// Index:   32.z
//           float m_FarDistanceOfAcceptableSharpness;// Index:   32.w
//           float m_CircleOfConfusionMultiplier;// Index:   33
//           float m_CameraApertureHeightRelativeRcp;// Index:   33.y
//           float m_HyperFocalDistance;// Index:   33.z
//           float m_FocusDistance;     // Index:   33.w
//           float m_FStop;             // Index:   34
//           float m_DepthReprojectScale;// Index:   34.y
//           float m_DepthReprojectBias;// Index:   34.z
//
//       } dofConstants;                // Index:   32
//
//   } resourceTables__passData;        // Index:    0-34.z           Components:   139
                                        // Textures:  t0-t21
//
// }
//
//
// Resource Bindings:
//
// Name                                 Type  Format         Dim Slot Elements
// ------------------------------ ---------- ------- ----------- ---- --------
// resourceTables__passData__smpPointClamp    sampler      NA          NA    0        1
// resourceTables__passData__smpLinearClamp    sampler      NA          NA    1        1
// resourceTables__passData__smpCompare  sampler_c      NA          NA    3        1
// resourceTables__passData.LUTTexture    texture  float4          3d    0        1
// resourceTables__passData.InputLuminanceLocal    texture   float          2d    1        1
// resourceTables__passData.InputDepth    texture   float          2d    2        1
// resourceTables__passData.InputColor    texture  float4          2d    3        1
// resourceTables__passData.InputBloom    texture  float4          2d    4        1
// resourceTables__passData.InputBlurredSurface    texture  float4          2d    6        1
// resourceTables__passData.InputTransparents    texture  float4          2d   12        1
// resourceTables__passData.InputTransparentsLowRes    texture  float4          2d   13        1
// resourceTables__passData.InputRefraction    texture  float4          2d   14        1
// resourceTables__passData.NoiseTexture    texture   float     2darray   17        1
// resourceTables__passData.BilateralVectorsTex    texture  float2          2d   18        1
// resourceTables__passData.InputProperties    texture  float4          2d   21        1
// resourceTables__passData.OutRejectionFactor        UAV   float          2d    9        1
// ConstBuf__passData                cbuffer      NA          NA    0        1
//
//
//
// Input signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_POSITION              0   xyzw        0      POS   float   xy
// TEXCOORD                 0   xy          1     NONE   float   xy
// TEXCOORD                 1     zw        1     NONE   float
//
//
// Output signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_Target                0   xyzw        0   TARGET   float   xyzw
//
ps_5_0
dcl_globalFlags refactoringAllowed
dcl_constantbuffer cb0[31], immediateIndexed
dcl_sampler s0, mode_default
dcl_sampler s1, mode_default
dcl_sampler s3, mode_comparison
dcl_resource_texture3d (float,float,float,float) t0
dcl_resource_texture2d (float,float,float,float) t1
dcl_resource_texture2d (float,float,float,float) t2
dcl_resource_texture2d (float,float,float,float) t3
dcl_resource_texture2d (float,float,float,float) t4
dcl_resource_texture2d (float,float,float,float) t6
dcl_resource_texture2d (float,float,float,float) t12
dcl_resource_texture2d (float,float,float,float) t13
dcl_resource_texture2d (float,float,float,float) t14
dcl_resource_texture2darray (float,float,float,float) t17
dcl_resource_texture2d (float,float,float,float) t18
dcl_resource_texture2d (float,float,float,float) t21
dcl_uav_typed_texture2d (float,float,float,float) u9
dcl_input_ps_siv linear noperspective v0.xy, position
dcl_input_ps linear v1.xy
dcl_output o0.xyzw
dcl_temps 50
dcl_resource_texture1d (float,float,float,float) t120
ld_indexable(texture1d)(float,float,float,float) r30.xyzw, l(10, 0, 0, 0), t120.xyzw
ftou r0.xy, v0.xyxx
mov r0.zw, l(0,0,0,0)
ld_indexable(texture2d)(float,float,float,float) r1.xy, r0.xyww, t18.xyzw
mul r1.xy, r1.xyxx, cb0[2].zwzz
sample_l_indexable(texture2d)(float,float,float,float) r2.xyz, v1.xyxx, t6.xyzw, s1, l(0.000000)
mad r1.xy, r1.xyxx, l(8.000000, 8.000000, 0.000000, 0.000000), v1.xyxx
sample_l_indexable(texture2d)(float,float,float,float) r1.z, r1.xyxx, t6.xywz, s1, l(0.000000)
lt r1.w, r1.z, l(1.000000)
if_nz r1.w
  sample_l_indexable(texture2d)(float,float,float,float) r3.xyz, r1.xyxx, t14.xywz, s1, l(0.000000)
  mul r4.xy, r3.xyxx, l(1.000000, -1.000000, 0.000000, 0.000000)
  dp2 r1.w, r3.xyxx, r3.xyxx
  ne r1.w, r1.w, l(0.000000)
  if_nz r1.w
    gather4_indexable(texture2d)(float,float,float,float) r5.xyzw, v1.xyxx, t14.xyzw, s0.z
    min r1.w, r5.z, r5.y
    min r1.w, r1.w, r5.x
    min r1.w, r5.w, r1.w
    max r1.w, -r1.w, l(1.000000)
    div r1.w, r3.z, r1.w
    and r3.xy, r0.xyxx, l(63, 63, 0, 0)
    and r3.z, l(7), cb0[14].w
    mov r3.w, l(0)
    ld_indexable(texture2darray)(float,float,float,float) r2.w, r3.xyzw, t17.yzwx
    mul r3.x, r2.w, l(0.250000)
    mad r3.yz, r4.xxyx, r3.xxxx, v1.xxyx
    sample_c_lz_indexable(texture2d)(float,float,float,float) r3.y, r3.yzyy, t2.xxxx, s3, r1.w
    mad r5.xyz, r2.wwww, l(0.250000, 0.250000, 0.250000, 0.000000), l(0.250000, 0.500000, 0.750000, 0.000000)
    mad r6.xyzw, r4.xyxy, r5.xxyy, v1.xyxy
    sample_c_lz_indexable(texture2d)(float,float,float,float) r2.w, r6.xyxx, t2.xxxx, s3, r1.w
    sample_c_lz_indexable(texture2d)(float,float,float,float) r3.z, r6.zwzz, t2.xxxx, s3, r1.w
    mad r4.zw, r4.xxxy, r5.zzzz, v1.xxxy
    sample_c_lz_indexable(texture2d)(float,float,float,float) r1.w, r4.zwzz, t2.xxxx, s3, r1.w
    ge r3.y, l(0.000000), r3.y
    and r3.x, r3.x, r3.y
    ge r2.w, l(0.000000), r2.w
    movc r2.w, r2.w, r5.x, r3.x
    ge r3.x, l(0.000000), r3.z
    movc r2.w, r3.x, r5.y, r2.w
    ge r1.w, l(0.000000), r1.w
    movc r1.w, r1.w, r5.z, r2.w
  else
    mov r1.w, l(0)
  endif
  mad r3.xy, r4.xyxx, r1.wwww, v1.xyxx
  sample_l_indexable(texture2d)(float,float,float,float) r3.xyz, r3.xyxx, t3.xyzw, s1, l(0.000000)
  sample_l_indexable(texture2d)(float,float,float,float) r4.xyzw, v1.xyxx, t12.xyzw, s1, l(0.000000)
  max r4.xyzw, r4.xyzw, l(0.000000, 0.000000, 0.000000, 0.000000)
  sample_l_indexable(texture2d)(float,float,float,float) r5.xyzw, r1.xyxx, t13.xyzw, s1, l(0.000000)
  max r5.xyzw, r5.xyzw, l(0.000000, 0.000000, 0.000000, 0.000000)
  mul r1.x, r4.w, r5.w
  mad r4.xyz, r4.xyzx, r5.wwww, r5.xyzx
  add r1.y, -r3.y, r4.y
  mul_sat r1.y, r1.y, cb0[29].z
  min r1.x, r1.x, l(1.000000)
  mad r3.xyz, r3.xyzx, r1.xxxx, r4.xyzx
  mov_sat r1.z, r1.z
  max r1.x, r3.z, r3.y
  max r1.x, r1.x, r3.x
  add r1.x, r1.x, l(1.000000)
  rcp r1.x, r1.x
  mul r4.xyz, r1.xxxx, r3.xyzx
  mad r3.xyz, -r3.xyzx, r1.xxxx, r2.xyzx
  mad r2.xyz, r1.zzzz, r3.xyzx, r4.xyzx
else
  mov r1.y, l(0)
endif
max r1.x, r2.z, r2.y
max r1.x, r1.x, r2.x
add r1.x, -r1.x, l(1.000000)
rcp r1.x, r1.x
mul r2.xyz, r1.xxxx, r2.xyzx
ne r1.x, l(0.000000, 0.000000, 0.000000, 0.000000), cb0[21].w
if_nz r1.x
  sample_l_indexable(texture2d)(float,float,float,float) r1.x, v1.xyxx, t1.xyzw, s1, l(0.000000)
  exp r1.x, r1.x
  mul r3.xyz, r1.xxxx, r2.xyzx
else
  mul r3.xyz, r2.xyzx, cb0[22].xxxx
endif
sample_l_indexable(texture2d)(float,float,float,float) r2.xyz, v1.xyxx, t4.xyzw, s1, l(0.000000)
mad r2.xyz, cb0[1].zzzz, r2.xyzx, r3.xyzx
add r1.xw, v0.xxxy, -cb0[14].yyyz
dp2 r1.x, r1.xwxx, r1.xwxx
mul r1.x, r1.x, cb0[14].x
mul r1.x, r1.x, r1.x
mul r1.x, r1.x, cb0[13].z

ieq r31.x, r30.z, l(1.0)
if_nz r31.x
mov r1.x, l(0.0)
endif

exp r1.x, -r1.x
mul r2.xyz, r1.xxxx, r2.xyzx
mul r3.xyz, r2.yyyy, cb0[20].xyzx
mad r2.xyw, r2.xxxx, cb0[19].xyxz, r3.xyxz
mad r2.xyz, r2.zzzz, cb0[21].xyzx, r2.xywx
max r2.xyz, r2.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000)
add r3.xyzw, l(1.000000, 1.000000, 1.000000, 1.000000), -cb0[12].wxyz
mul r1.x, v1.x, cb0[13].y
mul r1.x, r1.x, v1.y
add r4.xy, -v1.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000)

if_nz r31.x
mov r4.xy, l(1.0)
endif

mul r1.x, r1.x, r4.x
mul r1.x, r4.y, r1.x
log r1.x, |r1.x|
mul r1.x, r1.x, cb0[13].x
exp r1.x, r1.x

if_nz r31.x
mad_sat r1.x, r3.x, l(1.0), cb0[12].w
else
mad_sat r1.x, r3.x, r1.x, cb0[12].w
endif

mad r3.xyz, r1.xxxx, r3.yzwy, cb0[12].xyzx
mul r2.xyz, r2.xyzx, r3.xyzx
ne r1.x, l(0.000000, 0.000000, 0.000000, 0.000000), cb0[0].w
movc r2.xyz, r1.xxxx, l(0,0,0,0), r2.xyzx
lt r3.xyz, l(0.010591, 0.010591, 0.010591, 0.000000), r2.xyzx
mad r4.xyzw, r2.xxyy, l(5.555556, 5.367655, 5.555556, 5.367655), l(0.052272, 0.092809, 0.052272, 0.092809)
log r1.xw, r4.xxxz
mad r1.xw, r1.xxxw, l(0.0744116008, 0.000000, 0.000000, 0.0744116008), l(0.385537, 0.000000, 0.000000, 0.385537)
movc r4.xy, r3.xyxx, r1.xwxx, r4.ywyy
mad r1.xw, r2.zzzz, l(5.555556, 0.000000, 0.000000, 5.367655), l(0.052272, 0.000000, 0.000000, 0.092809)
log r1.x, r1.x
mad r1.x, r1.x, l(0.0744116008), l(0.385537)
movc r4.z, r3.z, r1.x, r1.w
mad r2.xyz, r4.xyzx, l(0.984375, 0.984375, 0.984375, 0.000000), l(0.00781250000, 0.00781250000, 0.00781250000, 0.000000)
sample_l_indexable(texture3d)(float,float,float,float) r2.xyz, r2.xyzx, t0.xyzw, s1, l(0.000000)
lt r3.xyz, l(0.149658203, 0.149658203, 0.149658203, 0.000000), r2.xyzx
add r4.xyzw, r2.xxyy, l(-0.385537, -0.092809, -0.385537, -0.092809)
mul r4.xyzw, r4.xyzw, l(13.43878651, 0.186301097, 13.43878651, 0.186301097)
exp r2.xyw, r4.xzxx
add r2.xyw, r2.xyxw, l(-0.052272, -0.052272, 0.000000, -0.052272)
mul r2.xyw, r2.xyxw, l(0.179999992, 0.179999992, 0.000000, 0.179999992)
movc r4.xyw, r3.xyxx, r2.xyxw, r4.ywyy
add r1.xw, r2.zzzz, l(-0.385537, 0.000000, 0.000000, -0.092809)
mul r1.xw, r1.xxxw, l(13.43878651, 0.000000, 0.000000, 0.186301097)
exp r1.x, r1.x
add r1.x, r1.x, l(-0.052272)
mul r1.x, r1.x, l(0.179999992)
movc r4.z, r3.z, r1.x, r1.w
max r2.xyzw, r4.xyzw, l(0.000000, 0.000000, 0.000000, 0.000000)
max r1.x, r2.z, r2.y
max r1.x, r1.x, r2.w
min r3.xyzw, r2.wyzw, cb0[24].xxxx
log r3.xyzw, r3.xyzw
mul r4.xyzw, r3.wyzw, cb0[23].wwww
exp r4.xyzw, r4.xyzw
mul r3.xyzw, r3.xyzw, cb0[24].zzzz
exp r3.xyzw, r3.xyzw
mad r3.xyzw, r3.xyzw, cb0[25].xxxx, cb0[25].yyyy
div r3.xyzw, r4.xyzw, r3.xyzw
max r1.w, r3.z, r3.y
max r1.w, r1.w, r3.w
mul r2.xyzw, r1.wwww, r2.xyzw
div r2.xyzw, r2.xyzw, r1.xxxx
add r3.xyzw, -r2.wyzw, r3.xyzw
mad_sat r2.xyzw, cb0[24].wwww, r3.xyzw, r2.xyzw
mul r3.xyz, r2.xywx, l(0.250000, 0.500000, -0.250000, 0.000000)
add r1.xw, r3.yyyy, r3.xxxz
mad r3.x, r2.z, l(0.250000), r1.x
dp2 r3.y, r2.wzww, l(0.500000, -0.500000, 0.000000, 0.000000)
mad r3.z, r2.z, l(-0.250000), r1.w
mad_sat r1.x, r1.z, l(4.000000), l(-1.000000)
mul r1.x, r1.x, -cb0[29].w
lt r1.w, l(-0.100000), r1.x
mul r1.y, r1.y, cb0[30].x
movc r1.x, r1.w, r1.y, r1.x
add r1.x, r1.x, cb0[29].w
mul r1.x, r1.x, cb0[30].z
ld_indexable(texture2d)(float,float,float,float) r0.z, r0.xyzw, t21.xywz
mad r0.z, r0.z, l(255.000000), l(0.500000)
ftou r0.z, r0.z
mul r0.w, r1.x, l(255.000000)
ftoi r0.w, r0.w
and r0.zw, r0.zzzw, l(0, 0, 1, 252)
movc r0.z, r0.z, l(1), l(0)
iadd r0.z, r0.w, r0.z
lt r0.w, l(0.100000), r1.z
and r0.w, r0.w, l(2)
iadd r0.z, r0.w, r0.z
itof r0.z, r0.z
mul r0.z, r0.z, l(0.00392156886)
store_uav_typed u9.xyzw, r0.xyyy, r0.zzzz
mul r0.xyz, r3.xyzx, l(0.142857149, 0.142857149, 0.142857149, 0.000000)
sqrt r0.x, r0.x
sqrt r0.x, r0.x
mul r0.x, r0.x, l(4095.000000)
round_ni r0.x, r0.x
mul r0.xw, r0.xxxx, l(0.000244200259, 0.000000, 0.000000, 0.250000)
mul r1.x, r0.x, r0.x
mul r1.x, r1.x, r1.x
rcp r1.x, r1.x
mul r1.x, r1.x, l(0.500000)
mul r0.yz, r0.yyzy, r1.xxxx
mad_sat o0.yz, r0.yyzy, l(0.000000, 0.499511242, 0.499511242, 0.000000), l(0.000000, 0.499511242, 0.499511242, 0.000000)
frc r0.y, r0.w
mul o0.w, r0.y, l(1.33333337)
mov o0.x, r0.x
ret
// Approximately 190 instruction slots used
