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      move second child to first child ( temp 3-element array of structure{})
0:?         'input' ( temp 3-element array of structure{})
0:?         'input' ( in 3-element array of structure{})
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      move second child to first child ( temp 3-element array of structure{})
0:?         'input' ( temp 3-element array of structure{})
0:?         'input' ( in 3-element array of structure{})
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

error: SPIRV-Tools Validation Errors
error: Output variable id <23> is used by entry point 'main' id <4>, but is not listed as an interface
  %TriStream_1 = OpVariable %_ptr_Output_GSPS_INPUT Output

// Module Version 10000
// Generated by (magic number): 80007
// Id's are bound by 57

                              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 51  "TriStream"
                              Name 52  "param"
                              Name 54  "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
         4(main):           2 Function None 3
               5:             Label
       47(input):     16(ptr) Variable Function
   51(TriStream):      7(ptr) Variable Function
       52(param):     16(ptr) Variable Function
       54(param):      7(ptr) Variable Function
              50:          15 Load 49(input)
                              Store 47(input) 50
              53:          15 Load 47(input)
                              Store 52(param) 53
              55:           2 FunctionCall 20(@main(struct-GSPS_INPUT1[3];struct-GSPS_INPUT1;) 52(param) 54(param)
              56:6(GSPS_INPUT) Load 54(param)
                              Store 51(TriStream) 56
                              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
