//HUD VS 1.
// ---- Created with 3Dmigoto v0.6.163 on Fri Aug 22 20:14:57 2025
//
//struct InstanceParam
//{
//    float4x4 world;                // Offset:    0
//    float4 color;                  // Offset:   64
//    float4 uv;                     // Offset:   80
//    float4 param;                  // Offset:   96
//    uint boneAddress;              // Offset:  112
//    float3 param2;                 // Offset:  116
//};
//
//cbuffer cb_instance : register(b1)
//{
//  int instanceOffset_g : packoffset(c0);
//}
//
//StructuredBuffer<InstanceParam> instances_g : register(t15);
//
//
//// SLT declarations
//#define cmp -
//Texture1D<float4> IniParams : register(t120);
//Texture2D<float4> StereoParams : register(t125);
//
//
//void main(
//  float3 v0 : POSITION0,
//  float2 v1 : TEXCOORD0,
//  uint v2 : SV_InstanceID0,
//  out float4 o0 : SV_Position0,
//  out float4 o1 : TEXCOORD0,
//  out float4 o2 : TEXCOORD1,
//  out float4 o3 : TEXCOORD2,
//  out int o4 : TEXCOORD3)
//{
//// Needs manual fix for instruction:
//// unknown dcl_: dcl_input_sgv v2.x, instance_id
//  float4 r0,r1,r2;
//  uint4 bitmask, uiDest;
//  float4 fDest;
//  
//  float4 stereo = StereoParams.Load(0);
//  float4 iniparams3 = IniParams.Load(int2(3,0));
//  
//  r0.xyz = v0.xyz;
//  r0.w = 1;
//  r1.x = (int)v2.x + instanceOffset_g;
//  r2.x = instances_g[r1.x].world._m00;
//  r2.y = instances_g[r1.x].world._m10;
//  r2.z = instances_g[r1.x].world._m20;
//  r2.w = instances_g[r1.x].world._m30;
//  o0.x = dot(r0.xyzw, r2.xyzw);
//  r2.x = instances_g[r1.x].world._m01;
//  r2.y = instances_g[r1.x].world._m11;
//  r2.z = instances_g[r1.x].world._m21;
//  r2.w = instances_g[r1.x].world._m31;
//  o0.y = dot(r0.xyzw, r2.xyzw);
//  r2.x = instances_g[r1.x].world._m02;
//  r2.y = instances_g[r1.x].world._m12;
//  r2.z = instances_g[r1.x].world._m22;
//  r2.w = instances_g[r1.x].world._m32;
//  o0.z = dot(r0.xyzw, r2.xyzw);
//  r2.x = instances_g[r1.x].world._m03;
//  r2.y = instances_g[r1.x].world._m13;
//  r2.z = instances_g[r1.x].world._m23;
//  r2.w = instances_g[r1.x].world._m33;
//  o0.w = dot(r0.xyzw, r2.xyzw);
//  r0.xy = v1.xy * float2(1,-1) + float2(0,1);
//  r2.x = instances_g[r1.x].uv.x;
//  r2.y = instances_g[r1.x].uv.y;
//  r2.z = instances_g[r1.x].uv.z;
//  r2.w = instances_g[r1.x].uv.w;
//  o1.xy = r0.xy * r2.zw + r2.xy;
//  r0.x = instances_g[r1.x].boneAddress;
//  r0.y = instances_g[r1.x].param2.x;
//  r0.z = instances_g[r1.x].param2.y;
//  r0.w = instances_g[r1.x].param2.z;
//  r0.x = (int)r0.x & 256;
//  o3.xyz = r0.yzw;
//  o1.z = r0.x ? 1 : 0;
//  o2.x = instances_g[r1.x].color.x;
//  o2.y = instances_g[r1.x].color.y;
//  o2.z = instances_g[r1.x].color.z;
//  o2.w = instances_g[r1.x].color.w;
//  r0.x = instances_g[r1.x].param.x;
//  o4.x = (int)r0.x;
//  if (o0.w==1 && iniparams3.w!=10) {
//    o0.x+=stereo.x*0.3;
//  }
//  return;
//}
//
///*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
// Generated by Microsoft (R) HLSL Shader Compiler 10.1
//
//   using 3Dmigoto v0.6.163 on Fri Aug 22 20:14:57 2025
//
//
// Buffer Definitions:
//
// cbuffer cb_instance
// {
//
//   int instanceOffset_g;              // Offset:    0 Size:     4
//
// }
//
// Resource bind info for instances_g
// {
//
//   struct InstanceParam
//   {
//
//       float4x4 world;                // Offset:    0
//       float4 color;                  // Offset:   64
//       float4 uv;                     // Offset:   80
//       float4 param;                  // Offset:   96
//       uint boneAddress;              // Offset:  112
//       float3 param2;                 // Offset:  116
//
//   } $Element;                        // Offset:    0 Size:   128
//
// }
//
//
// Resource Bindings:
//
// Name                                 Type  Format         Dim Slot Elements
// ------------------------------ ---------- ------- ----------- ---- --------
// instances_g                       texture  struct         r/o   15        1
// cb_instance                       cbuffer      NA          NA    1        1
//
//
//
// Input signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// POSITION                 0   xyz         0     NONE   float   xyz
// TEXCOORD                 0   xy          1     NONE   float   xy
// SV_InstanceID            0   x           2   INSTID    uint   x
//
//
// Output signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_Position              0   xyzw        0      POS   float   xyzw
// TEXCOORD                 0   xyz         1     NONE   float   xyz
// TEXCOORD                 1   xyzw        2     NONE   float   xyzw
// TEXCOORD                 2   xyz         3     NONE   float   xyz
// TEXCOORD                 3   x           4     NONE     int   x
//
vs_5_0
dcl_globalFlags refactoringAllowed
dcl_constantbuffer CB1[1], immediateIndexed
dcl_resource_structured t15, 128
dcl_input v0.xyz
dcl_input v1.xy
dcl_input_sgv v2.x, instance_id
dcl_output_siv o0.xyzw, position
dcl_output o1.xyz
dcl_output o2.xyzw
dcl_output o3.xyz
dcl_output o4.x
dcl_temps 33
dcl_resource_texture2d (float,float,float,float) t125
dcl_resource_texture1d (float,float,float,float) t120
ld_indexable(texture2d)(float,float,float,float) r25.xyzw, l(0, 0, 0, 0), t125.xyzw
ld_indexable(texture1d)(float,float,float,float) r23.xyzw, l(3, 0, 0, 0), t120.xyzw
ld_indexable(texture1d)(float,float,float,float) r31.xyzw, l(11, 0, 0, 0), t120.xyzw
mov r0.xyz, v0.xyzx
mov r0.w, l(1.000000)
iadd r1.x, v2.x, cb1[0].x
ld_structured_indexable(structured_buffer, stride=128)(mixed,mixed,mixed,mixed) r2.xyzw, r1.x, l(0), t15.xyzw
dp4 r10.x, r0.xyzw, r2.xyzw
ld_structured_indexable(structured_buffer, stride=128)(mixed,mixed,mixed,mixed) r2.xyzw, r1.x, l(16), t15.xyzw
dp4 r10.y, r0.xyzw, r2.xyzw
ld_structured_indexable(structured_buffer, stride=128)(mixed,mixed,mixed,mixed) r2.xyzw, r1.x, l(32), t15.xyzw
dp4 r10.z, r0.xyzw, r2.xyzw
ld_structured_indexable(structured_buffer, stride=128)(mixed,mixed,mixed,mixed) r2.xyzw, r1.x, l(48), t15.xyzw
dp4 r10.w, r0.xyzw, r2.xyzw
mad r0.xy, v1.xyxx, l(1.000000, -1.000000, 0.000000, 0.000000), l(0.000000, 1.000000, 0.000000, 0.000000)
ld_structured_indexable(structured_buffer, stride=128)(mixed,mixed,mixed,mixed) r2.xyzw, r1.x, l(80), t15.xyzw
mad o1.xy, r0.xyxx, r2.zwzz, r2.xyxx
ld_structured_indexable(structured_buffer, stride=128)(mixed,mixed,mixed,mixed) r0.xyzw, r1.x, l(112), t15.xyzw
and r0.x, r0.x, l(256)
mov o3.xyz, r0.yzwy
movc o1.z, r0.x, l(1.000000), l(0)
ld_structured_indexable(structured_buffer, stride=128)(mixed,mixed,mixed,mixed) o2.xyzw, r1.x, l(64), t15.xyzw
ld_structured_indexable(structured_buffer, stride=128)(mixed,mixed,mixed,mixed) r0.x, r1.x, l(96), t15.xxxx
ftoi o4.x, r0.x

eq r11.x r10.w, l(1.0)
ne r11.y, r23.w, l(10.0)
eq r11.z, r31.y, l(0.0)
eq r11.w, r31.x, l(1.0)
and r12.x, r11.x, r11.y
and r12.x, r12.x, r11.z
and r12.x, r12.x, r11.w
if_nz r12.x
mad r10.x, r25.x, l(0.3), r10.x
endif

mov o0.xyzw, r10.xyzw
ret
// Approximately 22 instruction slots used
