hlsl.basic.geom
Shader version: 500
invocations = -1
max_vertices = 4
input primitive = triangles
output primitive = line_strip
0:? Sequence
0:16  Function Definition: @main(u1[3];u1[3];struct-PSInput-f1-i11; ( temp void)
0:16    Function Parameters: 
0:16      'VertexID' ( in 3-element array of uint)
0:16      'test' ( in 3-element array of uint)
0:16      'OutputStream' ( out structure{ temp float myfloat,  temp int something})
0:?     Sequence
0:19      move second child to first child ( temp float)
0:19        myfloat: direct index for structure ( temp float)
0:19          'Vert' ( temp structure{ temp float myfloat,  temp int something})
0:19          Constant:
0:19            0 (const int)
0:19        Convert uint to float ( temp float)
0:19          add ( temp uint)
0:19            add ( temp uint)
0:19              direct index ( temp uint)
0:19                'test' ( in 3-element array of uint)
0:19                Constant:
0:19                  0 (const int)
0:19              direct index ( temp uint)
0:19                'test' ( in 3-element array of uint)
0:19                Constant:
0:19                  1 (const int)
0:19            direct index ( temp uint)
0:19              'test' ( in 3-element array of uint)
0:19              Constant:
0:19                2 (const int)
0:20      move second child to first child ( temp int)
0:20        something: direct index for structure ( temp int)
0:20          'Vert' ( temp structure{ temp float myfloat,  temp int something})
0:20          Constant:
0:20            1 (const int)
0:20        Convert uint to int ( temp int)
0:20          direct index ( temp uint)
0:20            'VertexID' ( in 3-element array of uint)
0:20            Constant:
0:20              0 (const int)
0:22      Sequence
0:22        Sequence
0:22          move second child to first child ( temp float)
0:?             'OutputStream.myfloat' (layout( location=0) out float)
0:22            myfloat: direct index for structure ( temp float)
0:22              'Vert' ( temp structure{ temp float myfloat,  temp int something})
0:22              Constant:
0:22                0 (const int)
0:22          move second child to first child ( temp int)
0:?             'OutputStream.something' (layout( location=1) out int)
0:22            something: direct index for structure ( temp int)
0:22              'Vert' ( temp structure{ temp float myfloat,  temp int something})
0:22              Constant:
0:22                1 (const int)
0:22        EmitVertex ( temp void)
0:23      Sequence
0:23        Sequence
0:23          move second child to first child ( temp float)
0:?             'OutputStream.myfloat' (layout( location=0) out float)
0:23            myfloat: direct index for structure ( temp float)
0:23              'Vert' ( temp structure{ temp float myfloat,  temp int something})
0:23              Constant:
0:23                0 (const int)
0:23          move second child to first child ( temp int)
0:?             'OutputStream.something' (layout( location=1) out int)
0:23            something: direct index for structure ( temp int)
0:23              'Vert' ( temp structure{ temp float myfloat,  temp int something})
0:23              Constant:
0:23                1 (const int)
0:23        EmitVertex ( temp void)
0:24      EndPrimitive ( temp void)
0:16  Function Definition: main( ( temp void)
0:16    Function Parameters: 
0:?     Sequence
0:16      move second child to first child ( temp 3-element array of uint)
0:?         'VertexID' ( temp 3-element array of uint)
0:?         'VertexID' (layout( location=0) in 3-element array of uint)
0:16      move second child to first child ( temp 3-element array of uint)
0:?         'test' ( temp 3-element array of uint)
0:?         'test' (layout( location=1) in 3-element array of uint)
0:16      Function Call: @main(u1[3];u1[3];struct-PSInput-f1-i11; ( temp void)
0:?         'VertexID' ( temp 3-element array of uint)
0:?         'test' ( temp 3-element array of uint)
0:?         'OutputStream' ( temp structure{ temp float myfloat,  temp int something})
0:?   Linker Objects
0:?     'VertexID' (layout( location=0) in 3-element array of uint)
0:?     'test' (layout( location=1) in 3-element array of uint)
0:?     'OutputStream.myfloat' (layout( location=0) out float)
0:?     'OutputStream.something' (layout( location=1) out int)


Linked geometry stage:


Shader version: 500
invocations = 1
max_vertices = 4
input primitive = triangles
output primitive = line_strip
0:? Sequence
0:16  Function Definition: @main(u1[3];u1[3];struct-PSInput-f1-i11; ( temp void)
0:16    Function Parameters: 
0:16      'VertexID' ( in 3-element array of uint)
0:16      'test' ( in 3-element array of uint)
0:16      'OutputStream' ( out structure{ temp float myfloat,  temp int something})
0:?     Sequence
0:19      move second child to first child ( temp float)
0:19        myfloat: direct index for structure ( temp float)
0:19          'Vert' ( temp structure{ temp float myfloat,  temp int something})
0:19          Constant:
0:19            0 (const int)
0:19        Convert uint to float ( temp float)
0:19          add ( temp uint)
0:19            add ( temp uint)
0:19              direct index ( temp uint)
0:19                'test' ( in 3-element array of uint)
0:19                Constant:
0:19                  0 (const int)
0:19              direct index ( temp uint)
0:19                'test' ( in 3-element array of uint)
0:19                Constant:
0:19                  1 (const int)
0:19            direct index ( temp uint)
0:19              'test' ( in 3-element array of uint)
0:19              Constant:
0:19                2 (const int)
0:20      move second child to first child ( temp int)
0:20        something: direct index for structure ( temp int)
0:20          'Vert' ( temp structure{ temp float myfloat,  temp int something})
0:20          Constant:
0:20            1 (const int)
0:20        Convert uint to int ( temp int)
0:20          direct index ( temp uint)
0:20            'VertexID' ( in 3-element array of uint)
0:20            Constant:
0:20              0 (const int)
0:22      Sequence
0:22        Sequence
0:22          move second child to first child ( temp float)
0:?             'OutputStream.myfloat' (layout( location=0) out float)
0:22            myfloat: direct index for structure ( temp float)
0:22              'Vert' ( temp structure{ temp float myfloat,  temp int something})
0:22              Constant:
0:22                0 (const int)
0:22          move second child to first child ( temp int)
0:?             'OutputStream.something' (layout( location=1) out int)
0:22            something: direct index for structure ( temp int)
0:22              'Vert' ( temp structure{ temp float myfloat,  temp int something})
0:22              Constant:
0:22                1 (const int)
0:22        EmitVertex ( temp void)
0:23      Sequence
0:23        Sequence
0:23          move second child to first child ( temp float)
0:?             'OutputStream.myfloat' (layout( location=0) out float)
0:23            myfloat: direct index for structure ( temp float)
0:23              'Vert' ( temp structure{ temp float myfloat,  temp int something})
0:23              Constant:
0:23                0 (const int)
0:23          move second child to first child ( temp int)
0:?             'OutputStream.something' (layout( location=1) out int)
0:23            something: direct index for structure ( temp int)
0:23              'Vert' ( temp structure{ temp float myfloat,  temp int something})
0:23              Constant:
0:23                1 (const int)
0:23        EmitVertex ( temp void)
0:24      EndPrimitive ( temp void)
0:16  Function Definition: main( ( temp void)
0:16    Function Parameters: 
0:?     Sequence
0:16      move second child to first child ( temp 3-element array of uint)
0:?         'VertexID' ( temp 3-element array of uint)
0:?         'VertexID' (layout( location=0) in 3-element array of uint)
0:16      move second child to first child ( temp 3-element array of uint)
0:?         'test' ( temp 3-element array of uint)
0:?         'test' (layout( location=1) in 3-element array of uint)
0:16      Function Call: @main(u1[3];u1[3];struct-PSInput-f1-i11; ( temp void)
0:?         'VertexID' ( temp 3-element array of uint)
0:?         'test' ( temp 3-element array of uint)
0:?         'OutputStream' ( temp structure{ temp float myfloat,  temp int something})
0:?   Linker Objects
0:?     'VertexID' (layout( location=0) in 3-element array of uint)
0:?     'test' (layout( location=1) in 3-element array of uint)
0:?     'OutputStream.myfloat' (layout( location=0) out float)
0:?     'OutputStream.something' (layout( location=1) out int)

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

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