//
// Generated by Microsoft (R) HLSL Shader Compiler 10.1
//
//   using 3Dmigoto v0.6.132 on Mon Mar 20 19:09:20 2023
//
//
//
// Input signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_VertexID              0   x           0   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
// TEXCOORD                 1   xy          2     NONE   float   xy
// P                        0   x           3  RTINDEX    uint   x
//
vs_5_0
dcl_resource_buffer (float,float,float,float) t125
dcl_output_siv o3.x, rendertarget_array_index
dcl_globalFlags refactoringAllowed
dcl_input_sgv v0.x, vertex_id
dcl_output_siv o0.xyzw, position
dcl_output o1.xyzw
dcl_output o2.xy
dcl_temps 4
ld_indexable(buffer)(float,float,float,float) r3.xyzw, l(0, 0, 0, 0), t125.xyzw
mov o3.x, r3.z
switch v0.x
  case l(0)
  mov r0.xy, l(-1.000000,-1.000000,0,0)
  break
  case l(1)
  mov r0.xy, l(-1.000000,1.000000,0,0)
  break
  case l(2)
  mov r0.xy, l(1.000000,-1.000000,0,0)
  break
  case l(3)
  mov r0.xy, l(1.000000,1.000000,0,0)
  break
  default
  mov r0.xy, l(0,0,0,0)
  break
endswitch
mad o2.xy, r0.xyxx, l(0.500000, -0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000)
mov r1.xy, r0.xyxx
mov r1.zw, l(0,0,0,1.000000)
mov o1.xy, r0.xyxx
mov o1.zw, l(0,0,0,1.000000)
add r2.x, -r3.y, r1.w
mul r2.y, r3.x, r3.w
mad r2.x, r2.x, r2.y, r1.x
ne r2.y, l(1.000000), r1.w
movc r1.x, r2.y, r2.x, r1.x
mov o0.xyzw, r1.xyzw
ret
// Approximately 23 instruction slots used

///////////////////////////////// HLSL Code /////////////////////////////////
// // ---- Created with 3Dmigoto v0.6.132 on Mon Mar 20 19:09:20 2023
//
//
//
// // 3Dmigoto declarations
// #define cmp -
// Texture1D<float4> IniParams : register(t120);
// Buffer<float4> StereoParams : register(t125);
//
//
// void main(
//   uint v0 : SV_VertexID0,
//   out float4 o0 : SV_Position0,
//   out float4 o1 : TEXCOORD0,
//   out float2 o2 : TEXCOORD1,
//   out uint o3 : P0)
// {
// // Needs manual fix for instruction:
// // unknown dcl_: dcl_input_sgv v0.x, vertex_id
//   float4 r0,r1,r2,r3;
//   uint4 bitmask, uiDest;
//   float4 fDest;
//
//   r3.xyzw = StereoParams.Load(float4(0,0,0,0)).xyzw;
//   o3.x = r3.z;
//   switch (v0.x) {
//     case 0 :    r0.xy = float2(-1,-1);
//     break;
//     case 1 :    r0.xy = float2(-1,1);
//     break;
//     case 2 :    r0.xy = float2(1,-1);
//     break;
//     case 3 :    r0.xy = float2(1,1);
//     break;
//     default :
//     r0.xy = float2(0,0);
//     break;
//   }
//   o2.xy = r0.xy * float2(0.5,-0.5) + float2(0.5,0.5);
//   r1.xy = r0.xy;
//   r1.zw = float2(0,1);
//   o1.xy = r0.xy;
//   o1.zw = float2(0,1);
//   r2.x = r1.w + -r3.y;
//   r2.y = r3.w * r3.x;
//   r2.x = r2.x * r2.y + r1.x;
//   r2.y = cmp(1.000000 != r1.w);
//   r1.x = r2.y ? r2.x : r1.x;
//   o0.xyzw = r1.xyzw;
//   return;
// }
/////////////////////////////////////////////////////////////////////////////
