//HUD VS 2. Text shadow.
// ---- Created with 3Dmigoto v0.6.163 on Fri Aug 22 22:00:40 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 float4 o4 : TEXCOORD3,
//  out float2 o5 : TEXCOORD4,
//  out int p5 : TEXCOORD5)
//{
//// 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;
//  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].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;
//  o3.xyz = r0.yzw;
//  r0.x = (int)r0.x & 256;
//  o5.y = r0.x ? 1 : 0;
//  r0.x = instances_g[r1.x].uv.x;
//  r0.y = instances_g[r1.x].uv.y;
//  o4.zw = r0.xy + r2.zw;
//  o4.xy = r2.xy;
//  r0.x = instances_g[r1.x].param.w;
//  r0.y = instances_g[r1.x].param.x;
//  p5.x = (int)r0.y;
//  o5.x = 10 * 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 22:00:40 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   xy          1     NONE   float   xy
// TEXCOORD                 1   xyzw        2     NONE   float   xyzw
// TEXCOORD                 2   xyz         3     NONE   float   xyz
// TEXCOORD                 3   xyzw        4     NONE   float   xyzw
// TEXCOORD                 4   xy          5     NONE   float   xy
// TEXCOORD                 5     z         5     NONE     int     z
//
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.xy
dcl_output o2.xyzw
dcl_output o3.xyz
dcl_output o4.xyzw
dcl_output o5.xy
dcl_output o5.z
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) o2.xyzw, r1.x, l(64), t15.xyzw
ld_structured_indexable(structured_buffer, stride=128)(mixed,mixed,mixed,mixed) r0.xyzw, r1.x, l(112), t15.xyzw
mov o3.xyz, r0.yzwy
and r0.x, r0.x, l(256)
movc o5.y, r0.x, l(1.000000), l(0)
ld_structured_indexable(structured_buffer, stride=128)(mixed,mixed,mixed,mixed) r0.xy, r1.x, l(80), t15.xyxx
add o4.zw, r2.zzzw, r0.xxxy
mov o4.xy, r2.xyxx
ld_structured_indexable(structured_buffer, stride=128)(mixed,mixed,mixed,mixed) r0.x, r1.x, l(108), t15.xxxx
ld_structured_indexable(structured_buffer, stride=128)(mixed,mixed,mixed,mixed) r0.y, r1.x, l(96), t15.xxxx
ftoi o5.z, r0.y
mul o5.x, r0.x, l(10.000000)

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 27 instruction slots used
