//mainscreen hud lines
//
// Generated by Microsoft (R) D3D Shader Disassembler
//
//   using 3Dmigoto v1.3.11 on Tue Aug 07 19:26:22 2018
//
//
// Input signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// POSITION                 0   x           0     NONE    uint   x
// SV_VertexID              0   x           1   VERTID    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.x
dcl_input_sgv v1.x, vertex_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

ishl r0.x, v0.x, l(3)
ushr r0.x, r0.x, l(2)
iadd r0.x, r0.x, cb9[0].y
iadd r0.y, r0.x, l(1)
ld_indexable(buffer)(float,float,float,float) r0.x, r0.xxxx, t19.yxzw
ld_indexable(buffer)(float,float,float,float) r0.y, r0.yyyy, t19.xyzw
imad r0.y, v1.x, l(7), r0.y
iadd r1.xyzw, r0.yyyy, l(1, 2, 3, 4)
ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r2.x, r1.w, l(0), t53.xxxx
ushr r2.yzw, r2.xxxx, l(0, 8, 16, 24)
and r2.xyzw, r2.xyzw, l(255, 255, 255, 255)
utof r2.xyzw, r2.xyzw
mad r3.xyzw, r2.xyzw, l(0.00392156886, 0.00392156886, 0.00392156886, 0.00392156886), l(300.000000, 300.000000, 300.000000, 300.000000)
mul r4.xyzw, r3.xyzx, l(20.000000, 20.000000, 20.000000, 182.738831)
mul r3.xyz, r3.yzwy, l(199.933701, 260.349670, 161.970963, 0.000000)
sincos r3.xyz, null, r3.xyzx
sincos r0.z, null, r4.w
dp3 r0.w, r4.xyzx, r4.xyzx
sqrt r0.w, r0.w
add r0.w, r0.w, l(3.63522172)
add r0.z, r3.x, r0.z
add r0.z, r3.y, r0.z
add r0.z, r3.z, r0.z
add r0.z, r0.z, r0.w
mul r0.w, r0.z, l(3000.000000)
sincos r0.w, null, r0.w
mad r0.w, cb3[1].x, r0.w, cb3[1].x
add r1.w, cb1[0].x, l(85.000000)
mad r0.z, r1.w, r0.w, r0.z
mul r3.xyz, r0.zzzz, l(0.475000, 0.793000, 0.375000, 0.000000)
frc r3.xyz, r3.xyzx
mad r3.xyz, r3.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(-0.500000, -0.500000, -0.500000, 0.000000)
frc r3.xyz, r3.xyzx
mad r3.xyz, r3.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(-1.000000, -1.000000, -1.000000, 0.000000)
add r3.xyz, |r3.xyzx|, l(-0.500000, -0.500000, -0.500000, 0.000000)
lt r4.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r3.xyzx
lt r5.xyz, r3.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000)
iadd r4.xyz, -r4.xyzx, r5.xyzx
itof r4.xyz, r4.xyzx
add r5.xyz, -|r3.xyzx|, l(0.500000, 0.500000, 0.500000, 0.000000)
add r3.xyz, -|r3.xyzx|, l(1.000000, 1.000000, 1.000000, 0.000000)
mad r5.xyz, -r5.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(1.000000, 1.000000, 1.000000, 0.000000)
mul r3.xyz, r3.xyzx, r5.xyzx
mul r3.xyz, r4.xyzx, r3.xyzx
ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r4.y, r0.y, l(0), t53.xxxx
iadd r0.y, r0.y, l(5)
ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r5.y, r0.y, l(0), t53.xxxx
ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r4.w, r1.x, l(0), t53.xxxx
ishl r4.xz, r4.yywy, l(16, 0, 16, 0)
ishr r4.xyzw, r4.xyzw, l(16, 16, 16, 16)
imul null, r0.yzw, r4.wwww, r4.xxyz
itof r0.yzw, r0.yyzw
mad r4.xyz, r2.xyzx, l(0.00392156886, 0.00392156886, 0.00392156886, 0.000000), l(-0.501961, -0.501961, -0.501961, 0.000000)
mul r2.xyzw, r2.xyzw, l(0.00392156886, 0.00392156886, 0.00392156886, 0.00392156886)
mov o2.xyzw, r2.xyzw
mul r2.xyz, r4.xyzx, l(2.007840, 2.007840, 2.007840, 0.000000)
mad r4.xyz, r0.yzwy, l(0.0000305175781, 0.0000305175781, 0.0000305175781, 0.000000), -r2.xyzx
mul r6.xyz, r0.yzwy, l(0.0000305175781, 0.0000305175781, 0.0000305175781, 0.000000)
mad r0.yzw, r2.xxyz, cb3[4].xxyz, r4.xxyz
mad r0.yzw, -r6.xxyz, cb3[4].xxyz, r0.yyzw
mul r2.xyz, r6.xyzx, cb3[4].xyzx
mad r0.yzw, cb3[2].xxxx, r0.yyzw, r2.xxyz
mad r2.xyz, r3.xyzx, cb3[3].xyzx, r0.yzwy
mov r2.w, l(1.000000)

//fix Hud Depth
//mul r2.xyzw, r2.xyzw, r26.z


iadd r0.yzw, r0.xxxx, l(0, 1, 2, 3)
ld_indexable(buffer)(float,float,float,float) r3.xyzw, r0.xxxx, t19.xyzw
ld_indexable(buffer)(float,float,float,float) r7.xyzw, r0.wwww, t19.xyzw
mov r8.w, r7.w
mov r4.x, r3.w
ld_indexable(buffer)(float,float,float,float) r9.xyzw, r0.yyyy, t19.xyzw
ld_indexable(buffer)(float,float,float,float) r0.xyzw, r0.zzzz, t19.xyzw
mov r4.y, r9.w
mov r4.z, r0.w
add r8.xyz, r4.xyzx, -cb2[22].xyzx
dp4 r10.w, r8.xyzw, cb2[18].xyzw
mov r11.w, r7.x
mov r11.y, r9.x
mov r11.z, r0.x
mov r11.x, r3.x
dp4 r10.x, r11.xyzw, cb2[18].xyzw
mov r12.w, r7.y
mov r12.y, r9.y
mov r12.z, r0.y
mov r12.x, r3.y
dp4 r10.y, r12.xyzw, cb2[18].xyzw
mov r13.w, r7.z
mov r13.y, r9.z
mov r13.z, r0.z
mov r13.x, r3.z
dp4 r10.z, r13.xyzw, cb2[18].xyzw
dp4 o0.x, r2.xyzw, r10.xyzw

//save o0.x to r24.x
dp4 r24.x, r2.xyzw, r10.xyzw

dp4 r10.w, r8.xyzw, cb2[19].xyzw
dp4 r10.x, r11.xyzw, cb2[19].xyzw
dp4 r10.y, r12.xyzw, cb2[19].xyzw
dp4 r10.z, r13.xyzw, cb2[19].xyzw
dp4 o0.y, r2.xyzw, r10.xyzw

//save o0.y to r24.y
dp4 r24.y, r2.xyzw, r10.xyzw

dp4 r10.w, r8.xyzw, cb2[20].xyzw
dp4 r8.w, r8.xyzw, cb2[21].xyzw
dp4 r10.x, r11.xyzw, cb2[20].xyzw
dp4 r8.x, r11.xyzw, cb2[21].xyzw
dp4 r10.y, r12.xyzw, cb2[20].xyzw
dp4 r8.y, r12.xyzw, cb2[21].xyzw
dp4 r10.z, r13.xyzw, cb2[20].xyzw
dp4 r8.z, r13.xyzw, cb2[21].xyzw
dp4 o0.w, r2.xyzw, r8.xyzw
dp4 o0.z, r2.xyzw, r10.xyzw

//save o0.w to r24.w
//save o0.z to r24.z
dp4 r24.w, r2.xyzw, r8.xyzw
dp4 24.z, r2.xyzw, r10.xyzw


//save o0.w to r24.w
//save o0.z to r24.z
dp4 r24.w, r4.xyzw, r7.xyzw
dp4 r24.z, r4.xyzw, r11.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

//Copying r24 to o0 as a last step.
mov o0.xyzw, r24.xyzw

ishl r5.x, r5.y, l(16)
ishr r1.xw, r5.xxxy, l(16, 0, 0, 16)
itof r1.xw, r1.xxxw
mul r2.xy, r1.xwxx, l(0.000488288701, 0.000488288701, 0.000000, 0.000000)
mov r2.z, l(1.000000)
dp3 o1.x, r2.xyzx, cb3[5].xyzx
dp3 o1.y, r2.xyzx, cb3[6].xyzx
dp3 o1.z, r2.xyzx, cb3[8].xyzx
dp3 o1.w, r2.xyzx, cb3[9].xyzx
mov r6.w, l(1.000000)
dp4 o3.w, r6.xyzw, r7.xyzw
dp4 o3.y, r6.xyzw, r9.xyzw
dp4 o3.z, r6.xyzw, r0.xyzw
dp4 o3.x, r6.xyzw, r3.xyzw
ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r2.x, r1.z, l(0), t53.xxxx
ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r1.x, r1.y, l(0), t53.xxxx
ushr r2.yz, r2.xxxx, l(0, 8, 16, 0)
and r2.xyz, r2.xyzx, l(255, 255, 255, 0)
utof r2.xyz, r2.xyzx
add r2.xyz, r2.xyzx, l(-127.000000, -127.000000, -127.000000, 0.000000)
mul r2.xyz, r2.xyzx, l(0.00787401572, 0.00787401572, 0.00787401572, 0.000000)
dp3 o4.y, r2.xyzx, r9.xyzx
dp3 o4.z, r2.xyzx, r0.xyzx
dp3 o4.x, r2.xyzx, r3.xyzx
mov o4.w, l(0)
ilt r0.w, l(0), r4.w
ilt r1.w, r4.w, l(0)
iadd r0.w, -r0.w, r1.w
itof r0.w, r0.w
ushr r1.yz, r1.xxxx, l(0, 8, 16, 0)
and r1.xyz, r1.xyzx, l(255, 255, 255, 0)
utof r1.xyz, r1.xyzx
add r1.xyz, r1.xyzx, l(-127.000000, -127.000000, -127.000000, 0.000000)
mul r1.xyz, r1.xyzx, l(0.00787401572, 0.00787401572, 0.00787401572, 0.000000)
mul r4.xyz, r2.yzxy, r1.zxyz
mad r2.xyz, r1.yzxy, r2.zxyz, -r4.xyzx
mul r2.xyz, r0.wwww, r2.xyzx
dp3 o5.x, r2.xyzx, r3.xyzx
dp3 o6.x, r1.xyzx, r3.xyzx
dp3 o5.y, r2.xyzx, r9.xyzx
dp3 o6.y, r1.xyzx, r9.xyzx
dp3 o6.z, r1.xyzx, r0.xyzx
dp3 o5.z, r2.xyzx, r0.xyzx
mov o5.w, l(0)
mov o6.w, l(0)
mov o7.x, v0.x
ret
// Approximately 0 instruction slots used