//Radial blur PS 1.
// ---- Created with 3Dmigoto v1.3.16 on Sun Dec 18 16:35:18 2022
Texture2D<float4> t0 : register(t0);

SamplerState s0_s : register(s0);

cbuffer cb3 : register(b3)
{
  float4 cb3[2];
}

cbuffer cb0 : register(b0)
{
  float4 cb0[1];
}




// 3Dmigoto declarations
#define cmp -
Texture1D<float4> IniParams : register(t120);
Texture2D<float4> StereoParams : register(t125);


void main(
  float4 v0 : SV_Position0,
  float4 v1 : TEXCOORD0,
  float3 v2 : TEXCOORD1,
  out float4 o0 : SV_Target0)
{
  float4 r0,r1,r2,r3,r12;
  uint4 bitmask, uiDest;
  float4 fDest;
  
  float4 stereo = StereoParams.Load(0);
  r12.xy = v2.xy;
  r12.x+=stereo.x;
  
  r0.xy = cb3[0].ww * r12.xy;
  r0.xy = float2(0.00999999978,0.00999999978) * r0.xy;
  r0.z = dot(v2.xy, v2.xy);
  r0.z = sqrt(r0.z);
  r0.w = log2(r0.z);
  r0.w = cb3[0].z * r0.w;
  r0.w = exp2(r0.w);
  r1.xyzw = t0.Sample(s0_s, v1.xy).xyzw;
  r0.z = cb3[1].z * r0.z;
  r0.z = -cb0[0].x * cb3[1].y + r0.z;
  r0.z = cos(r0.z);
  r0.z = abs(r0.z) * cb3[1].x + -cb3[1].x;
  r0.z = 1 + r0.z;
  r0.xy = r0.xy * r0.ww;
  r2.xyzw = r1.xyzw;
  r0.w = 1;
  while (true) {
    r3.x = cmp((int)r0.w >= 16);
    if (r3.x != 0) break;
    r3.x = (int)r0.w;
    r3.xy = r3.xx * r0.xy;
    r3.xy = r3.xy * r0.zz + v1.xy;
    r3.xyzw = t0.Sample(s0_s, r3.xy).xyzw;
    r2.xyzw = r3.xyzw + r2.xyzw;
    r0.w = (int)r0.w + 1;
  }
  o0.xyzw = float4(0.0625,0.0625,0.0625,0.0625) * r2.xyzw;
  return;
}

/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
// Generated by Microsoft (R) D3D Shader Disassembler
//
//   using 3Dmigoto v1.3.16 on Sun Dec 18 16:35:18 2022
//
//
// Input signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_Position              0   xyzw        0      POS   float
// TEXCOORD                 0   xy          1     NONE   float   xy
// TEXCOORD                 1   xyz         2     NONE   float   xy
//
//
// 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[1], immediateIndexed
dcl_constantbuffer CB3[2], immediateIndexed
dcl_sampler s0, mode_default
dcl_resource_texture2d (float,float,float,float) t0
dcl_input_ps linear v1.xy
dcl_input_ps linear v2.xy
dcl_output o0.xyzw
dcl_temps 4
mul r0.xy, v2.xyxx, cb3[0].wwww
mul r0.xy, r0.xyxx, l(0.010000, 0.010000, 0.000000, 0.000000)
dp2 r0.z, v2.xyxx, v2.xyxx
sqrt r0.z, r0.z
log r0.w, r0.z
mul r0.w, r0.w, cb3[0].z
exp r0.w, r0.w
sample_indexable(texture2d)(float,float,float,float) r1.xyzw, v1.xyxx, t0.xyzw, s0
mul r0.z, r0.z, cb3[1].z
mad r0.z, -cb0[0].x, cb3[1].y, r0.z
sincos null, r0.z, r0.z
mad r0.z, |r0.z|, cb3[1].x, -cb3[1].x
add r0.z, r0.z, l(1.000000)
mul r0.xy, r0.wwww, r0.xyxx
mov r2.xyzw, r1.xyzw
mov r0.w, l(1)
loop
  ige r3.x, r0.w, l(16)
  breakc_nz r3.x
  itof r3.x, r0.w
  mul r3.xy, r0.xyxx, r3.xxxx
  mad r3.xy, r3.xyxx, r0.zzzz, v1.xyxx
  sample_indexable(texture2d)(float,float,float,float) r3.xyzw, r3.xyxx, t0.xyzw, s0
  add r2.xyzw, r2.xyzw, r3.xyzw
  iadd r0.w, r0.w, l(1)
endloop
mul o0.xyzw, r2.xyzw, l(0.062500, 0.062500, 0.062500, 0.062500)
ret
// Approximately 0 instruction slots used

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
