1hlsl.struct.split.array.geom
2Shader version: 500
3invocations = -1
4max_vertices = 4
5input primitive = points
6output primitive = triangle_strip
70:? Sequence
80:13  Function Definition: @main(u1[1];struct-PSInput-vf4-vf2-vf3-u11; ( temp void)
90:13    Function Parameters:
100:13      'v' ( in 1-element array of uint)
110:13      'OutputStream' ( out structure{ temp 4-component vector of float Pos,  temp 2-component vector of float TexCoord,  temp 3-component vector of float TerrainPos,  temp uint VertexID})
120:?     Sequence
130:16      Sequence
140:16        move second child to first child ( temp structure{ temp 4-component vector of float Pos,  temp 2-component vector of float TexCoord,  temp 3-component vector of float TerrainPos,  temp uint VertexID})
150:16          'Out' ( temp structure{ temp 4-component vector of float Pos,  temp 2-component vector of float TexCoord,  temp 3-component vector of float TerrainPos,  temp uint VertexID})
160:16          Constant:
170:16            0.000000
180:16            0.000000
190:16            0.000000
200:16            0.000000
210:16            0.000000
220:16            0.000000
230:16            0.000000
240:16            0.000000
250:16            0.000000
260:16            0 (const uint)
270:18      Sequence
280:18        move second child to first child ( temp int)
290:18          'x' ( temp int)
300:18          Constant:
310:18            0 (const int)
320:18        Loop with condition tested first
330:18          Loop Condition
340:18          Compare Less Than ( temp bool)
350:18            'x' ( temp int)
360:18            Constant:
370:18              2 (const int)
380:18          Loop Body
390:19          Sequence
400:19            move second child to first child ( temp int)
410:19              'y' ( temp int)
420:19              Constant:
430:19                0 (const int)
440:19            Loop with condition tested first
450:19              Loop Condition
460:19              Compare Less Than ( temp bool)
470:19                'y' ( temp int)
480:19                Constant:
490:19                  2 (const int)
500:19              Loop Body
510:20              move second child to first child ( temp structure{ temp 4-component vector of float Pos,  temp 2-component vector of float TexCoord,  temp 3-component vector of float TerrainPos,  temp uint VertexID})
520:20                indirect index ( temp structure{ temp 4-component vector of float Pos,  temp 2-component vector of float TexCoord,  temp 3-component vector of float TerrainPos,  temp uint VertexID})
530:20                  indirect index ( temp 3-element array of structure{ temp 4-component vector of float Pos,  temp 2-component vector of float TexCoord,  temp 3-component vector of float TerrainPos,  temp uint VertexID})
540:20                    'Verts' ( temp 2-element array of 3-element array of structure{ temp 4-component vector of float Pos,  temp 2-component vector of float TexCoord,  temp 3-component vector of float TerrainPos,  temp uint VertexID})
550:20                    'x' ( temp int)
560:20                  'y' ( temp int)
570:20                'Out' ( temp structure{ temp 4-component vector of float Pos,  temp 2-component vector of float TexCoord,  temp 3-component vector of float TerrainPos,  temp uint VertexID})
580:19              Loop Terminal Expression
590:19              Pre-Increment ( temp int)
600:19                'y' ( temp int)
610:18          Loop Terminal Expression
620:18          Pre-Increment ( temp int)
630:18            'x' ( temp int)
640:13  Function Definition: main( ( temp void)
650:13    Function Parameters:
660:?     Sequence
670:13      move second child to first child ( temp 1-element array of uint)
680:?         'v' ( temp 1-element array of uint)
690:?         'v' (layout( location=0) in 1-element array of uint)
700:13      Function Call: @main(u1[1];struct-PSInput-vf4-vf2-vf3-u11; ( temp void)
710:?         'v' ( temp 1-element array of uint)
720:?         'OutputStream' ( temp structure{ temp 4-component vector of float Pos,  temp 2-component vector of float TexCoord,  temp 3-component vector of float TerrainPos,  temp uint VertexID})
730:?   Linker Objects
740:?     'v' (layout( location=0) in 1-element array of uint)
750:?     'OutputStream.Pos' ( out 4-component vector of float Position)
760:?     'OutputStream.TexCoord' (layout( location=0) out 2-component vector of float)
770:?     'OutputStream.TerrainPos' (layout( location=1) out 3-component vector of float)
780:?     'OutputStream.VertexID' (layout( location=2) out uint)
79
80
81Linked geometry stage:
82
83
84Shader version: 500
85invocations = 1
86max_vertices = 4
87input primitive = points
88output primitive = triangle_strip
890:? Sequence
900:13  Function Definition: @main(u1[1];struct-PSInput-vf4-vf2-vf3-u11; ( temp void)
910:13    Function Parameters:
920:13      'v' ( in 1-element array of uint)
930:13      'OutputStream' ( out structure{ temp 4-component vector of float Pos,  temp 2-component vector of float TexCoord,  temp 3-component vector of float TerrainPos,  temp uint VertexID})
940:?     Sequence
950:16      Sequence
960:16        move second child to first child ( temp structure{ temp 4-component vector of float Pos,  temp 2-component vector of float TexCoord,  temp 3-component vector of float TerrainPos,  temp uint VertexID})
970:16          'Out' ( temp structure{ temp 4-component vector of float Pos,  temp 2-component vector of float TexCoord,  temp 3-component vector of float TerrainPos,  temp uint VertexID})
980:16          Constant:
990:16            0.000000
1000:16            0.000000
1010:16            0.000000
1020:16            0.000000
1030:16            0.000000
1040:16            0.000000
1050:16            0.000000
1060:16            0.000000
1070:16            0.000000
1080:16            0 (const uint)
1090:18      Sequence
1100:18        move second child to first child ( temp int)
1110:18          'x' ( temp int)
1120:18          Constant:
1130:18            0 (const int)
1140:18        Loop with condition tested first
1150:18          Loop Condition
1160:18          Compare Less Than ( temp bool)
1170:18            'x' ( temp int)
1180:18            Constant:
1190:18              2 (const int)
1200:18          Loop Body
1210:19          Sequence
1220:19            move second child to first child ( temp int)
1230:19              'y' ( temp int)
1240:19              Constant:
1250:19                0 (const int)
1260:19            Loop with condition tested first
1270:19              Loop Condition
1280:19              Compare Less Than ( temp bool)
1290:19                'y' ( temp int)
1300:19                Constant:
1310:19                  2 (const int)
1320:19              Loop Body
1330:20              move second child to first child ( temp structure{ temp 4-component vector of float Pos,  temp 2-component vector of float TexCoord,  temp 3-component vector of float TerrainPos,  temp uint VertexID})
1340:20                indirect index ( temp structure{ temp 4-component vector of float Pos,  temp 2-component vector of float TexCoord,  temp 3-component vector of float TerrainPos,  temp uint VertexID})
1350:20                  indirect index ( temp 3-element array of structure{ temp 4-component vector of float Pos,  temp 2-component vector of float TexCoord,  temp 3-component vector of float TerrainPos,  temp uint VertexID})
1360:20                    'Verts' ( temp 2-element array of 3-element array of structure{ temp 4-component vector of float Pos,  temp 2-component vector of float TexCoord,  temp 3-component vector of float TerrainPos,  temp uint VertexID})
1370:20                    'x' ( temp int)
1380:20                  'y' ( temp int)
1390:20                'Out' ( temp structure{ temp 4-component vector of float Pos,  temp 2-component vector of float TexCoord,  temp 3-component vector of float TerrainPos,  temp uint VertexID})
1400:19              Loop Terminal Expression
1410:19              Pre-Increment ( temp int)
1420:19                'y' ( temp int)
1430:18          Loop Terminal Expression
1440:18          Pre-Increment ( temp int)
1450:18            'x' ( temp int)
1460:13  Function Definition: main( ( temp void)
1470:13    Function Parameters:
1480:?     Sequence
1490:13      move second child to first child ( temp 1-element array of uint)
1500:?         'v' ( temp 1-element array of uint)
1510:?         'v' (layout( location=0) in 1-element array of uint)
1520:13      Function Call: @main(u1[1];struct-PSInput-vf4-vf2-vf3-u11; ( temp void)
1530:?         'v' ( temp 1-element array of uint)
1540:?         'OutputStream' ( temp structure{ temp 4-component vector of float Pos,  temp 2-component vector of float TexCoord,  temp 3-component vector of float TerrainPos,  temp uint VertexID})
1550:?   Linker Objects
1560:?     'v' (layout( location=0) in 1-element array of uint)
1570:?     'OutputStream.Pos' ( out 4-component vector of float Position)
1580:?     'OutputStream.TexCoord' (layout( location=0) out 2-component vector of float)
1590:?     'OutputStream.TerrainPos' (layout( location=1) out 3-component vector of float)
1600:?     'OutputStream.VertexID' (layout( location=2) out uint)
161
162// Module Version 10000
163// Generated by (magic number): 80008
164// Id's are bound by 82
165
166                              Capability Geometry
167               1:             ExtInstImport  "GLSL.std.450"
168                              MemoryModel Logical GLSL450
169                              EntryPoint Geometry 4  "main" 66 75 77 79 81
170                              ExecutionMode 4 InputPoints
171                              ExecutionMode 4 Invocations 1
172                              ExecutionMode 4 OutputTriangleStrip
173                              ExecutionMode 4 OutputVertices 4
174                              Source HLSL 500
175                              Name 4  "main"
176                              Name 14  "PSInput"
177                              MemberName 14(PSInput) 0  "Pos"
178                              MemberName 14(PSInput) 1  "TexCoord"
179                              MemberName 14(PSInput) 2  "TerrainPos"
180                              MemberName 14(PSInput) 3  "VertexID"
181                              Name 19  "@main(u1[1];struct-PSInput-vf4-vf2-vf3-u11;"
182                              Name 17  "v"
183                              Name 18  "OutputStream"
184                              Name 21  "Out"
185                              Name 30  "x"
186                              Name 41  "y"
187                              Name 54  "Verts"
188                              Name 64  "v"
189                              Name 66  "v"
190                              Name 68  "OutputStream"
191                              Name 69  "param"
192                              Name 71  "param"
193                              Name 75  "OutputStream.Pos"
194                              Name 77  "OutputStream.TexCoord"
195                              Name 79  "OutputStream.TerrainPos"
196                              Name 81  "OutputStream.VertexID"
197                              Decorate 66(v) Location 0
198                              Decorate 75(OutputStream.Pos) BuiltIn Position
199                              Decorate 77(OutputStream.TexCoord) Location 0
200                              Decorate 79(OutputStream.TerrainPos) Location 1
201                              Decorate 81(OutputStream.VertexID) Location 2
202               2:             TypeVoid
203               3:             TypeFunction 2
204               6:             TypeInt 32 0
205               7:      6(int) Constant 1
206               8:             TypeArray 6(int) 7
207               9:             TypePointer Function 8
208              10:             TypeFloat 32
209              11:             TypeVector 10(float) 4
210              12:             TypeVector 10(float) 2
211              13:             TypeVector 10(float) 3
212     14(PSInput):             TypeStruct 11(fvec4) 12(fvec2) 13(fvec3) 6(int)
213              15:             TypePointer Function 14(PSInput)
214              16:             TypeFunction 2 9(ptr) 15(ptr)
215              22:   10(float) Constant 0
216              23:   11(fvec4) ConstantComposite 22 22 22 22
217              24:   12(fvec2) ConstantComposite 22 22
218              25:   13(fvec3) ConstantComposite 22 22 22
219              26:      6(int) Constant 0
220              27: 14(PSInput) ConstantComposite 23 24 25 26
221              28:             TypeInt 32 1
222              29:             TypePointer Function 28(int)
223              31:     28(int) Constant 0
224              38:     28(int) Constant 2
225              39:             TypeBool
226              49:      6(int) Constant 3
227              50:             TypeArray 14(PSInput) 49
228              51:      6(int) Constant 2
229              52:             TypeArray 50 51
230              53:             TypePointer Function 52
231              60:     28(int) Constant 1
232              65:             TypePointer Input 8
233           66(v):     65(ptr) Variable Input
234              74:             TypePointer Output 11(fvec4)
23575(OutputStream.Pos):     74(ptr) Variable Output
236              76:             TypePointer Output 12(fvec2)
23777(OutputStream.TexCoord):     76(ptr) Variable Output
238              78:             TypePointer Output 13(fvec3)
23979(OutputStream.TerrainPos):     78(ptr) Variable Output
240              80:             TypePointer Output 6(int)
24181(OutputStream.VertexID):     80(ptr) Variable Output
242         4(main):           2 Function None 3
243               5:             Label
244           64(v):      9(ptr) Variable Function
24568(OutputStream):     15(ptr) Variable Function
246       69(param):      9(ptr) Variable Function
247       71(param):     15(ptr) Variable Function
248              67:           8 Load 66(v)
249                              Store 64(v) 67
250              70:           8 Load 64(v)
251                              Store 69(param) 70
252              72:           2 FunctionCall 19(@main(u1[1];struct-PSInput-vf4-vf2-vf3-u11;) 69(param) 71(param)
253              73: 14(PSInput) Load 71(param)
254                              Store 68(OutputStream) 73
255                              Return
256                              FunctionEnd
25719(@main(u1[1];struct-PSInput-vf4-vf2-vf3-u11;):           2 Function None 16
258           17(v):      9(ptr) FunctionParameter
25918(OutputStream):     15(ptr) FunctionParameter
260              20:             Label
261         21(Out):     15(ptr) Variable Function
262           30(x):     29(ptr) Variable Function
263           41(y):     29(ptr) Variable Function
264       54(Verts):     53(ptr) Variable Function
265                              Store 21(Out) 27
266                              Store 30(x) 31
267                              Branch 32
268              32:             Label
269                              LoopMerge 34 35 None
270                              Branch 36
271              36:             Label
272              37:     28(int) Load 30(x)
273              40:    39(bool) SLessThan 37 38
274                              BranchConditional 40 33 34
275              33:               Label
276                                Store 41(y) 31
277                                Branch 42
278              42:               Label
279                                LoopMerge 44 45 None
280                                Branch 46
281              46:               Label
282              47:     28(int)   Load 41(y)
283              48:    39(bool)   SLessThan 47 38
284                                BranchConditional 48 43 44
285              43:                 Label
286              55:     28(int)     Load 30(x)
287              56:     28(int)     Load 41(y)
288              57: 14(PSInput)     Load 21(Out)
289              58:     15(ptr)     AccessChain 54(Verts) 55 56
290                                  Store 58 57
291                                  Branch 45
292              45:                 Label
293              59:     28(int)     Load 41(y)
294              61:     28(int)     IAdd 59 60
295                                  Store 41(y) 61
296                                  Branch 42
297              44:               Label
298                                Branch 35
299              35:               Label
300              62:     28(int)   Load 30(x)
301              63:     28(int)   IAdd 62 60
302                                Store 30(x) 63
303                                Branch 32
304              34:             Label
305                              Return
306                              FunctionEnd
307