hlsl.tristream-append.geom
Shader version: 500
invocations = -1
max_vertices = 3
input primitive = triangles
output primitive = triangle_strip
0:? Sequence
0:8  Function Definition: EmitVertex(struct-GSPS_INPUT1;struct-GSPS_INPUT1; ( temp void)
0:8    Function Parameters: 
0:8      'output' ( in structure{})
0:8      'TriStream' ( out structure{})
0:?     Sequence
0:9      Sequence
0:9        Sequence
0:9          move second child to first child ( temp structure{})
0:9            'TriStream' ( out structure{})
0:9            'output' ( in structure{})
0:9        EmitVertex ( temp void)
0:14  Function Definition: @main(struct-GSPS_INPUT1[3];struct-GSPS_INPUT1; ( temp void)
0:14    Function Parameters: 
0:14      'input' ( in 3-element array of structure{})
0:14      'TriStream' ( out structure{})
0:?     Sequence
0:15      Function Call: EmitVertex(struct-GSPS_INPUT1;struct-GSPS_INPUT1; ( temp void)
0:15        direct index ( temp structure{})
0:15          'input' ( in 3-element array of structure{})
0:15          Constant:
0:15            0 (const int)
0:15        'TriStream' ( out structure{})
0:16      Function Call: EmitVertex(struct-GSPS_INPUT1;struct-GSPS_INPUT1; ( temp void)
0:16        direct index ( temp structure{})
0:16          'input' ( in 3-element array of structure{})
0:16          Constant:
0:16            1 (const int)
0:16        'TriStream' ( out structure{})
0:17      Function Call: EmitVertex(struct-GSPS_INPUT1;struct-GSPS_INPUT1; ( temp void)
0:17        direct index ( temp structure{})
0:17          'input' ( in 3-element array of structure{})
0:17          Constant:
0:17            2 (const int)
0:17        'TriStream' ( out structure{})
0:14  Function Definition: main( ( temp void)
0:14    Function Parameters: 
0:?     Sequence
0:14      Sequence
0:14        move second child to first child ( temp structure{})
0:14          direct index ( temp structure{})
0:?             'input' ( temp 3-element array of structure{})
0:14            Constant:
0:14              0 (const int)
0:14          direct index ( in structure{})
0:?             'input' ( in 3-element array of structure{})
0:14            Constant:
0:14              0 (const int)
0:14        move second child to first child ( temp structure{})
0:14          direct index ( temp structure{})
0:?             'input' ( temp 3-element array of structure{})
0:14            Constant:
0:14              1 (const int)
0:14          direct index ( in structure{})
0:?             'input' ( in 3-element array of structure{})
0:14            Constant:
0:14              1 (const int)
0:14        move second child to first child ( temp structure{})
0:14          direct index ( temp structure{})
0:?             'input' ( temp 3-element array of structure{})
0:14            Constant:
0:14              2 (const int)
0:14          direct index ( in structure{})
0:?             'input' ( in 3-element array of structure{})
0:14            Constant:
0:14              2 (const int)
0:14      Function Call: @main(struct-GSPS_INPUT1[3];struct-GSPS_INPUT1; ( temp void)
0:?         'input' ( temp 3-element array of structure{})
0:?         'TriStream' ( temp structure{})
0:?   Linker Objects


Linked geometry stage:


Shader version: 500
invocations = 1
max_vertices = 3
input primitive = triangles
output primitive = triangle_strip
0:? Sequence
0:8  Function Definition: EmitVertex(struct-GSPS_INPUT1;struct-GSPS_INPUT1; ( temp void)
0:8    Function Parameters: 
0:8      'output' ( in structure{})
0:8      'TriStream' ( out structure{})
0:?     Sequence
0:9      Sequence
0:9        Sequence
0:9          move second child to first child ( temp structure{})
0:9            'TriStream' ( out structure{})
0:9            'output' ( in structure{})
0:9        EmitVertex ( temp void)
0:14  Function Definition: @main(struct-GSPS_INPUT1[3];struct-GSPS_INPUT1; ( temp void)
0:14    Function Parameters: 
0:14      'input' ( in 3-element array of structure{})
0:14      'TriStream' ( out structure{})
0:?     Sequence
0:15      Function Call: EmitVertex(struct-GSPS_INPUT1;struct-GSPS_INPUT1; ( temp void)
0:15        direct index ( temp structure{})
0:15          'input' ( in 3-element array of structure{})
0:15          Constant:
0:15            0 (const int)
0:15        'TriStream' ( out structure{})
0:16      Function Call: EmitVertex(struct-GSPS_INPUT1;struct-GSPS_INPUT1; ( temp void)
0:16        direct index ( temp structure{})
0:16          'input' ( in 3-element array of structure{})
0:16          Constant:
0:16            1 (const int)
0:16        'TriStream' ( out structure{})
0:17      Function Call: EmitVertex(struct-GSPS_INPUT1;struct-GSPS_INPUT1; ( temp void)
0:17        direct index ( temp structure{})
0:17          'input' ( in 3-element array of structure{})
0:17          Constant:
0:17            2 (const int)
0:17        'TriStream' ( out structure{})
0:14  Function Definition: main( ( temp void)
0:14    Function Parameters: 
0:?     Sequence
0:14      Sequence
0:14        move second child to first child ( temp structure{})
0:14          direct index ( temp structure{})
0:?             'input' ( temp 3-element array of structure{})
0:14            Constant:
0:14              0 (const int)
0:14          direct index ( in structure{})
0:?             'input' ( in 3-element array of structure{})
0:14            Constant:
0:14              0 (const int)
0:14        move second child to first child ( temp structure{})
0:14          direct index ( temp structure{})
0:?             'input' ( temp 3-element array of structure{})
0:14            Constant:
0:14              1 (const int)
0:14          direct index ( in structure{})
0:?             'input' ( in 3-element array of structure{})
0:14            Constant:
0:14              1 (const int)
0:14        move second child to first child ( temp structure{})
0:14          direct index ( temp structure{})
0:?             'input' ( temp 3-element array of structure{})
0:14            Constant:
0:14              2 (const int)
0:14          direct index ( in structure{})
0:?             'input' ( in 3-element array of structure{})
0:14            Constant:
0:14              2 (const int)
0:14      Function Call: @main(struct-GSPS_INPUT1[3];struct-GSPS_INPUT1; ( temp void)
0:?         'input' ( temp 3-element array of structure{})
0:?         'TriStream' ( temp structure{})
0:?   Linker Objects

Validation failed
// Module Version 10000
// Generated by (magic number): 8000a
// Id's are bound by 66

                              Capability Geometry
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Geometry 4  "main"
                              ExecutionMode 4 Triangles
                              ExecutionMode 4 Invocations 1
                              ExecutionMode 4 OutputTriangleStrip
                              ExecutionMode 4 OutputVertices 3
                              Source HLSL 500
                              Name 4  "main"
                              Name 6  "GSPS_INPUT"
                              Name 11  "EmitVertex(struct-GSPS_INPUT1;struct-GSPS_INPUT1;"
                              Name 9  "output"
                              Name 10  "TriStream"
                              Name 20  "@main(struct-GSPS_INPUT1[3];struct-GSPS_INPUT1;"
                              Name 18  "input"
                              Name 19  "TriStream"
                              Name 23  "TriStream"
                              Name 27  "param"
                              Name 30  "param"
                              Name 34  "param"
                              Name 37  "param"
                              Name 41  "param"
                              Name 44  "param"
                              Name 47  "input"
                              Name 49  "input"
                              Name 60  "TriStream"
                              Name 61  "param"
                              Name 63  "param"
               2:             TypeVoid
               3:             TypeFunction 2
   6(GSPS_INPUT):             TypeStruct
               7:             TypePointer Function 6(GSPS_INPUT)
               8:             TypeFunction 2 7(ptr) 7(ptr)
              13:             TypeInt 32 0
              14:     13(int) Constant 3
              15:             TypeArray 6(GSPS_INPUT) 14
              16:             TypePointer Function 15
              17:             TypeFunction 2 16(ptr) 7(ptr)
              22:             TypePointer Output 6(GSPS_INPUT)
   23(TriStream):     22(ptr) Variable Output
              25:             TypeInt 32 1
              26:     25(int) Constant 0
              33:     25(int) Constant 1
              40:     25(int) Constant 2
              48:             TypePointer Input 15
       49(input):     48(ptr) Variable Input
              50:             TypePointer Input 6(GSPS_INPUT)
         4(main):           2 Function None 3
               5:             Label
       47(input):     16(ptr) Variable Function
   60(TriStream):      7(ptr) Variable Function
       61(param):     16(ptr) Variable Function
       63(param):      7(ptr) Variable Function
              51:     50(ptr) AccessChain 49(input) 26
              52:6(GSPS_INPUT) Load 51
              53:      7(ptr) AccessChain 47(input) 26
                              Store 53 52
              54:     50(ptr) AccessChain 49(input) 33
              55:6(GSPS_INPUT) Load 54
              56:      7(ptr) AccessChain 47(input) 33
                              Store 56 55
              57:     50(ptr) AccessChain 49(input) 40
              58:6(GSPS_INPUT) Load 57
              59:      7(ptr) AccessChain 47(input) 40
                              Store 59 58
              62:          15 Load 47(input)
                              Store 61(param) 62
              64:           2 FunctionCall 20(@main(struct-GSPS_INPUT1[3];struct-GSPS_INPUT1;) 61(param) 63(param)
              65:6(GSPS_INPUT) Load 63(param)
                              Store 60(TriStream) 65
                              Return
                              FunctionEnd
11(EmitVertex(struct-GSPS_INPUT1;struct-GSPS_INPUT1;):           2 Function None 8
       9(output):      7(ptr) FunctionParameter
   10(TriStream):      7(ptr) FunctionParameter
              12:             Label
              24:6(GSPS_INPUT) Load 9(output)
                              Store 23(TriStream) 24
                              EmitVertex
                              Return
                              FunctionEnd
20(@main(struct-GSPS_INPUT1[3];struct-GSPS_INPUT1;):           2 Function None 17
       18(input):     16(ptr) FunctionParameter
   19(TriStream):      7(ptr) FunctionParameter
              21:             Label
       27(param):      7(ptr) Variable Function
       30(param):      7(ptr) Variable Function
       34(param):      7(ptr) Variable Function
       37(param):      7(ptr) Variable Function
       41(param):      7(ptr) Variable Function
       44(param):      7(ptr) Variable Function
              28:      7(ptr) AccessChain 18(input) 26
              29:6(GSPS_INPUT) Load 28
                              Store 27(param) 29
              31:           2 FunctionCall 11(EmitVertex(struct-GSPS_INPUT1;struct-GSPS_INPUT1;) 27(param) 30(param)
              32:6(GSPS_INPUT) Load 30(param)
                              Store 19(TriStream) 32
              35:      7(ptr) AccessChain 18(input) 33
              36:6(GSPS_INPUT) Load 35
                              Store 34(param) 36
              38:           2 FunctionCall 11(EmitVertex(struct-GSPS_INPUT1;struct-GSPS_INPUT1;) 34(param) 37(param)
              39:6(GSPS_INPUT) Load 37(param)
                              Store 19(TriStream) 39
              42:      7(ptr) AccessChain 18(input) 40
              43:6(GSPS_INPUT) Load 42
                              Store 41(param) 43
              45:           2 FunctionCall 11(EmitVertex(struct-GSPS_INPUT1;struct-GSPS_INPUT1;) 41(param) 44(param)
              46:6(GSPS_INPUT) Load 44(param)
                              Store 19(TriStream) 46
                              Return
                              FunctionEnd
