Merge pull request #656 from TiemoJung/overload_fix
[platform/upstream/glslang.git] / Test / hlsl.struct.split.call.vert
1 // Test passing split structs to functions.
2
3 struct VS_INPUT
4 {
5     int    x0_in  : foo0;
6     float4 Pos_in : SV_Position;
7     int    x1_in  : foo1;
8 };
9
10 struct VS_OUTPUT
11 {
12     int    x0_out  : foo0;
13     float4 Pos_out : SV_Position;
14     int    x1_out  : foo1;
15 };
16
17 void Fn1(VS_INPUT fn1_in, VS_OUTPUT fn1_out) {
18     fn1_in.Pos_in + fn1_out.Pos_out;
19 }
20
21 VS_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 }