1// Test passing split structs to functions. 2 3struct VS_INPUT 4{ 5 int x0_in : foo0; 6 float4 Pos_in : SV_Position; 7 int x1_in : foo1; 8}; 9 10struct VS_OUTPUT 11{ 12 int x0_out : foo0; 13 float4 Pos_out : SV_Position; 14 int x1_out : foo1; 15}; 16 17void Fn1(VS_INPUT fn1_in, VS_OUTPUT fn1_out) { 18 fn1_in.Pos_in + fn1_out.Pos_out; 19} 20 21VS_OUTPUT main(VS_INPUT vsin) 22{ 23 VS_OUTPUT vsout; 24 25 vsout.x0_out = vsin.x0_in; 26 vsout.Pos_out = vsin.Pos_in; 27 vsout.x1_out = vsin.x1_in; 28 29 Fn1(vsin, vsout); 30 31 return vsout; 32} 33