1617a3babSopenharmony_ci// Test passing split structs to functions. 2617a3babSopenharmony_ci 3617a3babSopenharmony_cistruct VS_INPUT 4617a3babSopenharmony_ci{ 5617a3babSopenharmony_ci int x0_in : foo0; 6617a3babSopenharmony_ci float4 Pos_in : SV_Position; 7617a3babSopenharmony_ci int x1_in : foo1; 8617a3babSopenharmony_ci}; 9617a3babSopenharmony_ci 10617a3babSopenharmony_cistruct VS_OUTPUT 11617a3babSopenharmony_ci{ 12617a3babSopenharmony_ci int x0_out : foo0; 13617a3babSopenharmony_ci float4 Pos_out : SV_Position; 14617a3babSopenharmony_ci int x1_out : foo1; 15617a3babSopenharmony_ci}; 16617a3babSopenharmony_ci 17617a3babSopenharmony_civoid Fn1(VS_INPUT fn1_in, VS_OUTPUT fn1_out) { 18617a3babSopenharmony_ci fn1_in.Pos_in + fn1_out.Pos_out; 19617a3babSopenharmony_ci} 20617a3babSopenharmony_ci 21617a3babSopenharmony_ciVS_OUTPUT main(VS_INPUT vsin) 22617a3babSopenharmony_ci{ 23617a3babSopenharmony_ci VS_OUTPUT vsout; 24617a3babSopenharmony_ci 25617a3babSopenharmony_ci vsout.x0_out = vsin.x0_in; 26617a3babSopenharmony_ci vsout.Pos_out = vsin.Pos_in; 27617a3babSopenharmony_ci vsout.x1_out = vsin.x1_in; 28617a3babSopenharmony_ci 29617a3babSopenharmony_ci Fn1(vsin, vsout); 30617a3babSopenharmony_ci 31617a3babSopenharmony_ci return vsout; 32617a3babSopenharmony_ci} 33