1hlsl.struct.split.trivial.geom
2Shader version: 500
3invocations = -1
4max_vertices = 3
5input primitive = triangles
6output primitive = triangle_strip
70:? Sequence
80:14  Function Definition: @main(struct-PS_IN-vf41[3];struct-GS_OUT-vf41; ( temp void)
90:14    Function Parameters:
100:14      'i' ( in 3-element array of structure{ temp 4-component vector of float pos})
110:14      'ts' ( out structure{ temp 4-component vector of float pos})
120:?     Sequence
130:17      Sequence
140:17        move second child to first child ( temp int)
150:17          'x' ( temp int)
160:17          Constant:
170:17            0 (const int)
180:17        Loop with condition tested first
190:17          Loop Condition
200:17          Compare Less Than ( temp bool)
210:17            'x' ( temp int)
220:17            Constant:
230:17              3 (const int)
240:17          Loop Body
250:?           Sequence
260:18            move second child to first child ( temp 4-component vector of float)
270:18              pos: direct index for structure ( temp 4-component vector of float)
280:18                'o' ( temp structure{ temp 4-component vector of float pos})
290:18                Constant:
300:18                  0 (const int)
310:18              pos: direct index for structure ( temp 4-component vector of float)
320:18                indirect index ( temp structure{ temp 4-component vector of float pos})
330:18                  'i' ( in 3-element array of structure{ temp 4-component vector of float pos})
340:18                  'x' ( temp int)
350:18                Constant:
360:18                  0 (const int)
370:19            Sequence
380:19              Sequence
390:19                move second child to first child ( temp 4-component vector of float)
400:?                   'ts.pos' ( out 4-component vector of float Position)
410:19                  pos: direct index for structure ( temp 4-component vector of float)
420:19                    'o' ( temp structure{ temp 4-component vector of float pos})
430:19                    Constant:
440:19                      0 (const int)
450:19              EmitVertex ( temp void)
460:17          Loop Terminal Expression
470:17          Pre-Increment ( temp int)
480:17            'x' ( temp int)
490:14  Function Definition: main( ( temp void)
500:14    Function Parameters:
510:?     Sequence
520:14      Sequence
530:14        move second child to first child ( temp 4-component vector of float)
540:14          pos: direct index for structure ( temp 4-component vector of float)
550:14            direct index ( temp structure{ temp 4-component vector of float pos})
560:?               'i' ( temp 3-element array of structure{ temp 4-component vector of float pos})
570:14              Constant:
580:14                0 (const int)
590:14            Constant:
600:14              0 (const int)
610:14          direct index ( in 4-component vector of float Position)
620:?             'i.pos' ( in 3-element array of 4-component vector of float Position)
630:14            Constant:
640:14              0 (const int)
650:14        move second child to first child ( temp 4-component vector of float)
660:14          pos: direct index for structure ( temp 4-component vector of float)
670:14            direct index ( temp structure{ temp 4-component vector of float pos})
680:?               'i' ( temp 3-element array of structure{ temp 4-component vector of float pos})
690:14              Constant:
700:14                1 (const int)
710:14            Constant:
720:14              0 (const int)
730:14          direct index ( in 4-component vector of float Position)
740:?             'i.pos' ( in 3-element array of 4-component vector of float Position)
750:14            Constant:
760:14              1 (const int)
770:14        move second child to first child ( temp 4-component vector of float)
780:14          pos: direct index for structure ( temp 4-component vector of float)
790:14            direct index ( temp structure{ temp 4-component vector of float pos})
800:?               'i' ( temp 3-element array of structure{ temp 4-component vector of float pos})
810:14              Constant:
820:14                2 (const int)
830:14            Constant:
840:14              0 (const int)
850:14          direct index ( in 4-component vector of float Position)
860:?             'i.pos' ( in 3-element array of 4-component vector of float Position)
870:14            Constant:
880:14              2 (const int)
890:14      Function Call: @main(struct-PS_IN-vf41[3];struct-GS_OUT-vf41; ( temp void)
900:?         'i' ( temp 3-element array of structure{ temp 4-component vector of float pos})
910:?         'ts' ( temp structure{ temp 4-component vector of float pos})
920:?   Linker Objects
930:?     'i.pos' ( in 3-element array of 4-component vector of float Position)
940:?     'ts.pos' ( out 4-component vector of float Position)
95
96
97Linked geometry stage:
98
99
100Shader version: 500
101invocations = 1
102max_vertices = 3
103input primitive = triangles
104output primitive = triangle_strip
1050:? Sequence
1060:14  Function Definition: @main(struct-PS_IN-vf41[3];struct-GS_OUT-vf41; ( temp void)
1070:14    Function Parameters:
1080:14      'i' ( in 3-element array of structure{ temp 4-component vector of float pos})
1090:14      'ts' ( out structure{ temp 4-component vector of float pos})
1100:?     Sequence
1110:17      Sequence
1120:17        move second child to first child ( temp int)
1130:17          'x' ( temp int)
1140:17          Constant:
1150:17            0 (const int)
1160:17        Loop with condition tested first
1170:17          Loop Condition
1180:17          Compare Less Than ( temp bool)
1190:17            'x' ( temp int)
1200:17            Constant:
1210:17              3 (const int)
1220:17          Loop Body
1230:?           Sequence
1240:18            move second child to first child ( temp 4-component vector of float)
1250:18              pos: direct index for structure ( temp 4-component vector of float)
1260:18                'o' ( temp structure{ temp 4-component vector of float pos})
1270:18                Constant:
1280:18                  0 (const int)
1290:18              pos: direct index for structure ( temp 4-component vector of float)
1300:18                indirect index ( temp structure{ temp 4-component vector of float pos})
1310:18                  'i' ( in 3-element array of structure{ temp 4-component vector of float pos})
1320:18                  'x' ( temp int)
1330:18                Constant:
1340:18                  0 (const int)
1350:19            Sequence
1360:19              Sequence
1370:19                move second child to first child ( temp 4-component vector of float)
1380:?                   'ts.pos' ( out 4-component vector of float Position)
1390:19                  pos: direct index for structure ( temp 4-component vector of float)
1400:19                    'o' ( temp structure{ temp 4-component vector of float pos})
1410:19                    Constant:
1420:19                      0 (const int)
1430:19              EmitVertex ( temp void)
1440:17          Loop Terminal Expression
1450:17          Pre-Increment ( temp int)
1460:17            'x' ( temp int)
1470:14  Function Definition: main( ( temp void)
1480:14    Function Parameters:
1490:?     Sequence
1500:14      Sequence
1510:14        move second child to first child ( temp 4-component vector of float)
1520:14          pos: direct index for structure ( temp 4-component vector of float)
1530:14            direct index ( temp structure{ temp 4-component vector of float pos})
1540:?               'i' ( temp 3-element array of structure{ temp 4-component vector of float pos})
1550:14              Constant:
1560:14                0 (const int)
1570:14            Constant:
1580:14              0 (const int)
1590:14          direct index ( in 4-component vector of float Position)
1600:?             'i.pos' ( in 3-element array of 4-component vector of float Position)
1610:14            Constant:
1620:14              0 (const int)
1630:14        move second child to first child ( temp 4-component vector of float)
1640:14          pos: direct index for structure ( temp 4-component vector of float)
1650:14            direct index ( temp structure{ temp 4-component vector of float pos})
1660:?               'i' ( temp 3-element array of structure{ temp 4-component vector of float pos})
1670:14              Constant:
1680:14                1 (const int)
1690:14            Constant:
1700:14              0 (const int)
1710:14          direct index ( in 4-component vector of float Position)
1720:?             'i.pos' ( in 3-element array of 4-component vector of float Position)
1730:14            Constant:
1740:14              1 (const int)
1750:14        move second child to first child ( temp 4-component vector of float)
1760:14          pos: direct index for structure ( temp 4-component vector of float)
1770:14            direct index ( temp structure{ temp 4-component vector of float pos})
1780:?               'i' ( temp 3-element array of structure{ temp 4-component vector of float pos})
1790:14              Constant:
1800:14                2 (const int)
1810:14            Constant:
1820:14              0 (const int)
1830:14          direct index ( in 4-component vector of float Position)
1840:?             'i.pos' ( in 3-element array of 4-component vector of float Position)
1850:14            Constant:
1860:14              2 (const int)
1870:14      Function Call: @main(struct-PS_IN-vf41[3];struct-GS_OUT-vf41; ( temp void)
1880:?         'i' ( temp 3-element array of structure{ temp 4-component vector of float pos})
1890:?         'ts' ( temp structure{ temp 4-component vector of float pos})
1900:?   Linker Objects
1910:?     'i.pos' ( in 3-element array of 4-component vector of float Position)
1920:?     'ts.pos' ( out 4-component vector of float Position)
193
194// Module Version 10000
195// Generated by (magic number): 80007
196// Id's are bound by 67
197
198                              Capability Geometry
199               1:             ExtInstImport  "GLSL.std.450"
200                              MemoryModel Logical GLSL450
201                              EntryPoint Geometry 4  "main" 40 49
202                              ExecutionMode 4 Triangles
203                              ExecutionMode 4 Invocations 1
204                              ExecutionMode 4 OutputTriangleStrip
205                              ExecutionMode 4 OutputVertices 3
206                              Source HLSL 500
207                              Name 4  "main"
208                              Name 8  "PS_IN"
209                              MemberName 8(PS_IN) 0  "pos"
210                              Name 13  "GS_OUT"
211                              MemberName 13(GS_OUT) 0  "pos"
212                              Name 18  "@main(struct-PS_IN-vf41[3];struct-GS_OUT-vf41;"
213                              Name 16  "i"
214                              Name 17  "ts"
215                              Name 22  "x"
216                              Name 33  "o"
217                              Name 40  "ts.pos"
218                              Name 46  "i"
219                              Name 49  "i.pos"
220                              Name 61  "ts"
221                              Name 62  "param"
222                              Name 64  "param"
223                              Decorate 40(ts.pos) BuiltIn Position
224                              Decorate 49(i.pos) BuiltIn Position
225               2:             TypeVoid
226               3:             TypeFunction 2
227               6:             TypeFloat 32
228               7:             TypeVector 6(float) 4
229        8(PS_IN):             TypeStruct 7(fvec4)
230               9:             TypeInt 32 0
231              10:      9(int) Constant 3
232              11:             TypeArray 8(PS_IN) 10
233              12:             TypePointer Function 11
234      13(GS_OUT):             TypeStruct 7(fvec4)
235              14:             TypePointer Function 13(GS_OUT)
236              15:             TypeFunction 2 12(ptr) 14(ptr)
237              20:             TypeInt 32 1
238              21:             TypePointer Function 20(int)
239              23:     20(int) Constant 0
240              30:     20(int) Constant 3
241              31:             TypeBool
242              35:             TypePointer Function 7(fvec4)
243              39:             TypePointer Output 7(fvec4)
244      40(ts.pos):     39(ptr) Variable Output
245              44:     20(int) Constant 1
246              47:             TypeArray 7(fvec4) 10
247              48:             TypePointer Input 47
248       49(i.pos):     48(ptr) Variable Input
249              50:             TypePointer Input 7(fvec4)
250              57:     20(int) Constant 2
251         4(main):           2 Function None 3
252               5:             Label
253           46(i):     12(ptr) Variable Function
254          61(ts):     14(ptr) Variable Function
255       62(param):     12(ptr) Variable Function
256       64(param):     14(ptr) Variable Function
257              51:     50(ptr) AccessChain 49(i.pos) 23
258              52:    7(fvec4) Load 51
259              53:     35(ptr) AccessChain 46(i) 23 23
260                              Store 53 52
261              54:     50(ptr) AccessChain 49(i.pos) 44
262              55:    7(fvec4) Load 54
263              56:     35(ptr) AccessChain 46(i) 44 23
264                              Store 56 55
265              58:     50(ptr) AccessChain 49(i.pos) 57
266              59:    7(fvec4) Load 58
267              60:     35(ptr) AccessChain 46(i) 57 23
268                              Store 60 59
269              63:          11 Load 46(i)
270                              Store 62(param) 63
271              65:           2 FunctionCall 18(@main(struct-PS_IN-vf41[3];struct-GS_OUT-vf41;) 62(param) 64(param)
272              66:  13(GS_OUT) Load 64(param)
273                              Store 61(ts) 66
274                              Return
275                              FunctionEnd
27618(@main(struct-PS_IN-vf41[3];struct-GS_OUT-vf41;):           2 Function None 15
277           16(i):     12(ptr) FunctionParameter
278          17(ts):     14(ptr) FunctionParameter
279              19:             Label
280           22(x):     21(ptr) Variable Function
281           33(o):     14(ptr) Variable Function
282                              Store 22(x) 23
283                              Branch 24
284              24:             Label
285                              LoopMerge 26 27 None
286                              Branch 28
287              28:             Label
288              29:     20(int) Load 22(x)
289              32:    31(bool) SLessThan 29 30
290                              BranchConditional 32 25 26
291              25:               Label
292              34:     20(int)   Load 22(x)
293              36:     35(ptr)   AccessChain 16(i) 34 23
294              37:    7(fvec4)   Load 36
295              38:     35(ptr)   AccessChain 33(o) 23
296                                Store 38 37
297              41:     35(ptr)   AccessChain 33(o) 23
298              42:    7(fvec4)   Load 41
299                                Store 40(ts.pos) 42
300                                EmitVertex
301                                Branch 27
302              27:               Label
303              43:     20(int)   Load 22(x)
304              45:     20(int)   IAdd 43 44
305                                Store 22(x) 45
306                                Branch 24
307              26:             Label
308                              Return
309                              FunctionEnd
310