//hud white point related
//
// Generated by Microsoft (R) D3D Shader Disassembler
//
//   using 3Dmigoto v1.3.11 on Sat Aug 11 17:51:23 2018
//
//
// Input signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// POSITION                 0   xyz         0     NONE   float   xyz
// NORMAL                   0   xyz         1     NONE   float   xyz
// COLOR                    0   xyzw        2     NONE   float   xyzw
// TEXCOORD                 0   xy          3     NONE   float   xy
// SV_VertexID              0   x           4   VERTID    uint
// SV_InstanceID            0   x           5   INSTID    uint   x
//
//
// Output signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_Position              0   xyzw        0      POS   float   xyzw
// TEXCOORD                 0   xyzw        1     NONE   float   xyzw
// COLOR                    0   xyzw        2     NONE   float   xyzw
// TEXCOORD                 1   xyzw        3     NONE   float   xyzw
// TEXCOORD                 2   xyzw        4     NONE   float   xyzw
// TEXCOORD                 3   xyzw        5     NONE   float   xyzw
// TEXCOORD                 4   xyzw        6     NONE   float   xyzw
// InstanceID               0   x           7     NONE    uint   x
//
vs_5_0
dcl_globalFlags refactoringAllowed
dcl_constantbuffer cb1[1], immediateIndexed
dcl_constantbuffer cb2[23], immediateIndexed
dcl_constantbuffer cb3[10], immediateIndexed
dcl_constantbuffer cb9[1], immediateIndexed
dcl_resource_buffer (float,float,float,float) t19
dcl_resource_structured t53, 4
dcl_input v0.xyz
dcl_input v1.xyz
dcl_input v2.xyzw
dcl_input v3.xy
dcl_input_sgv v5.x, instance_id
dcl_output_siv o0.xyzw, position
dcl_output o1.xyzw
dcl_output o2.xyzw
dcl_output o3.xyzw
dcl_output o4.xyzw
dcl_output o5.xyzw
dcl_output o6.xyzw
dcl_output o7.x

//insert
dcl_temps 28
// 3DMigoto StereoParams:
dcl_resource_texture1d (float,float,float,float) t120
dcl_resource_texture2d (float,float,float,float) t125
ld_indexable(texture1d)(float,float,float,float) r25.xyzw, l(0, 0, 0, 0), t120.xyzw
ld_indexable(texture1d)(float,float,float,float) r26.z, l(2, 0, 0, 0), t120.xyzw
ld_indexable(texture2d)(float,float,float,float) r27.xyzw, l(0, 0, 0, 0), t125.xyzw

add r0.xyzw, v2.xyzw, l(300.000000, 300.000000, 300.000000, 300.000000)
mul r1.xyzw, r0.xyzx, l(20.000000, 20.000000, 20.000000, 182.738831)
mul r0.xyz, r0.yzwy, l(199.933701, 260.349670, 161.970963, 0.000000)
sincos r0.xyz, null, r0.xyzx
sincos r0.w, null, r1.w
dp3 r1.x, r1.xyzx, r1.xyzx
sqrt r1.x, r1.x
add r1.x, r1.x, l(3.63522172)
add r0.x, r0.x, r0.w
add r0.x, r0.y, r0.x
add r0.x, r0.z, r0.x
add r0.x, r0.x, r1.x
mul r0.y, r0.x, l(3000.000000)
sincos r0.y, null, r0.y
mad r0.y, cb3[1].x, r0.y, cb3[1].x
add r0.z, cb1[0].x, l(85.000000)
mad r0.x, r0.z, r0.y, r0.x
mul r0.xyz, r0.xxxx, l(0.475000, 0.793000, 0.375000, 0.000000)
frc r0.xyz, r0.xyzx
mad r0.xyz, r0.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(-0.500000, -0.500000, -0.500000, 0.000000)
frc r0.xyz, r0.xyzx
mad r0.xyz, r0.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(-1.000000, -1.000000, -1.000000, 0.000000)
add r0.xyz, |r0.xyzx|, l(-0.500000, -0.500000, -0.500000, 0.000000)
lt r1.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r0.xyzx
lt r2.xyz, r0.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000)
iadd r1.xyz, -r1.xyzx, r2.xyzx
itof r1.xyz, r1.xyzx
add r2.xyz, -|r0.xyzx|, l(0.500000, 0.500000, 0.500000, 0.000000)
add r0.xyz, -|r0.xyzx|, l(1.000000, 1.000000, 1.000000, 0.000000)
mad r2.xyz, -r2.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(1.000000, 1.000000, 1.000000, 0.000000)
mul r0.xyz, r0.xyzx, r2.xyzx
mul r0.xyz, r1.xyzx, r0.xyzx
add r1.xyz, v2.xyzx, l(-0.501961, -0.501961, -0.501961, 0.000000)
mul r2.xyz, r1.xyzx, l(2.007840, 2.007840, 2.007840, 0.000000)
mad r1.xyz, -r1.xyzx, l(2.007840, 2.007840, 2.007840, 0.000000), v0.xyzx
mad r1.xyz, r2.xyzx, cb3[4].xyzx, r1.xyzx
mad r1.xyz, -v0.xyzx, cb3[4].xyzx, r1.xyzx
mul r2.xyz, v0.xyzx, cb3[4].xyzx
mad r1.xyz, cb3[2].xxxx, r1.xyzx, r2.xyzx
mad r0.xyz, r0.xyzx, cb3[3].xyzx, r1.xyzx
iadd r1.x, v5.x, cb9[0].x
ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r1.x, r1.x, l(0), t53.xxxx
ishl r1.y, r1.x, l(3)
mov o7.x, r1.x
ushr r1.x, r1.y, l(2)
iadd r1.x, r1.x, cb9[0].y
ld_indexable(buffer)(float,float,float,float) r1.x, r1.xxxx, t19.yxzw
iadd r1.yzw, r1.xxxx, l(0, 1, 2, 3)
ld_indexable(buffer)(float,float,float,float) r2.xyzw, r1.xxxx, t19.xyzw
ld_indexable(buffer)(float,float,float,float) r3.xyzw, r1.wwww, t19.xyzw
mov r4.w, r3.w
mov r5.x, r2.w
ld_indexable(buffer)(float,float,float,float) r6.xyzw, r1.yyyy, t19.xyzw
ld_indexable(buffer)(float,float,float,float) r1.xyzw, r1.zzzz, t19.xyzw
mov r5.y, r6.w
mov r5.z, r1.w
add r4.xyz, r5.xyzx, -cb2[22].xyzx
dp4 r5.w, r4.xyzw, cb2[18].xyzw
mov r0.w, l(1.000000)
mov r7.w, r3.x
mov r7.y, r6.x
mov r7.z, r1.x
mov r7.x, r2.x
dp4 r5.x, r7.xyzw, cb2[18].xyzw
mov r8.w, r3.y
mov r8.y, r6.y
mov r8.z, r1.y
mov r8.x, r2.y
dp4 r5.y, r8.xyzw, cb2[18].xyzw
mov r9.w, r3.z
mov r9.y, r6.z
mov r9.z, r1.z
mov r9.x, r2.z
dp4 r5.z, r9.xyzw, cb2[18].xyzw

//dp4 o0.x, r0.xyzw, r5.xyzw
dp4 r24.x, r0.xyzw, r5.xyzw


dp4 r5.w, r4.xyzw, cb2[19].xyzw
dp4 r5.x, r7.xyzw, cb2[19].xyzw
dp4 r5.y, r8.xyzw, cb2[19].xyzw
dp4 r5.z, r9.xyzw, cb2[19].xyzw

//dp4 o0.y, r0.xyzw, r5.xyzw
dp4 r24.y, r0.xyzw, r5.xyzw



dp4 r5.w, r4.xyzw, cb2[20].xyzw
dp4 r4.w, r4.xyzw, cb2[21].xyzw
dp4 r5.x, r7.xyzw, cb2[20].xyzw
dp4 r4.x, r7.xyzw, cb2[21].xyzw
dp4 r5.y, r8.xyzw, cb2[20].xyzw
dp4 r4.y, r8.xyzw, cb2[21].xyzw
dp4 r5.z, r9.xyzw, cb2[20].xyzw
dp4 r4.z, r9.xyzw, cb2[21].xyzw
//dp4 o0.w, r0.xyzw, r4.xyzw
//dp4 o0.z, r0.xyzw, r5.xyzw

dp4 r24.w, r0.xyzw, r4.xyzw
dp4 r24.z, r0.xyzw, r5.xyzw

//w position minus convergence.
add r27.w, r24.w, -r27.y

//The previous calculation is multiplied by separation and then substracted from the x axis.
mad r24.x, r27.x, -r27.w, r24.x

//If 25.x is what you use as a depth multiplier.
mad r24.x, r27.x, l(1.5), r24.x
mul r24.xyzw, r24.xyzw, r26.z
//3
//Copying r24 to o0 as a last step.
mov o0.xyzw, r24.xyzw

mov r0.xy, v3.xyxx
mov r0.zw, l(0,0,1.000000,1.000000)
dp3 o1.x, r0.xyzx, cb3[5].xyzx
dp3 o1.y, r0.xyzx, cb3[6].xyzx
dp3 o1.z, r0.xyzx, cb3[8].xyzx
dp3 o1.w, r0.xyzx, cb3[9].xyzx
mov o2.xyzw, v2.xyzw
mov r0.xyz, v0.xyzx
dp4 o3.w, r0.xyzw, r3.xyzw
dp4 o3.y, r0.xyzw, r6.xyzw
dp4 o3.z, r0.xyzw, r1.xyzw
dp4 o3.x, r0.xyzw, r2.xyzw
mov o4.y, r8.y
mov o4.z, r1.y
mov o4.x, r2.y
mov o4.w, l(0)
mov o5.y, r6.x
dp3 o6.y, v1.xyzx, r6.xyzx
mov o5.z, r1.x
dp3 o6.z, v1.xyzx, r1.xyzx
mov o5.x, r7.x
dp3 o6.x, v1.xyzx, r2.xyzx
mov o5.w, l(0)
mov o6.w, l(0)
ret
