Texture2D tex; struct Packed { Texture2D tex; float3 pos[3]; float2 uv[2]; float x; int n; }; float4 main(float4 pos : POSITION) : SV_POSITION { Packed packed; packed.tex = tex; packed.pos[0] = float3(0, 0, 0); packed.uv[0] = float2(0, 1); packed.x = 1.0; packed.n = 3; for (int i = 0; i < 1; ++i) { packed.pos[i].xy += packed.uv[i]; } Packed packed2 = packed; return pos + float4(packed2.pos[0], 0); }