hlsl.structarray.flatten.geom
Shader version: 500
invocations = -1
max_vertices = 4
input primitive = lines
output primitive = triangle_strip
0:? Sequence
0:16  Function Definition: @main(struct-VertexData-vf4-vf4-vf21[2];struct-PS_IN-vf4-vf4-vf21; ( temp void)
0:16    Function Parameters: 
0:16      'vin' ( in 2-element array of structure{ temp 4-component vector of float position,  temp 4-component vector of float color,  temp 2-component vector of float uv})
0:16      'outStream' ( out structure{ temp 4-component vector of float position,  temp 4-component vector of float color,  temp 2-component vector of float uv})
0:?     Sequence
0:19      move second child to first child ( temp 4-component vector of float)
0:19        color: direct index for structure ( temp 4-component vector of float)
0:19          'vout' ( temp structure{ temp 4-component vector of float position,  temp 4-component vector of float color,  temp 2-component vector of float uv})
0:19          Constant:
0:19            1 (const int)
0:19        color: direct index for structure ( temp 4-component vector of float)
0:19          direct index ( temp structure{ temp 4-component vector of float position,  temp 4-component vector of float color,  temp 2-component vector of float uv})
0:19            'vin' ( in 2-element array of structure{ temp 4-component vector of float position,  temp 4-component vector of float color,  temp 2-component vector of float uv})
0:19            Constant:
0:19              1 (const int)
0:19          Constant:
0:19            1 (const int)
0:20      move second child to first child ( temp 2-component vector of float)
0:20        uv: direct index for structure ( temp 2-component vector of float)
0:20          'vout' ( temp structure{ temp 4-component vector of float position,  temp 4-component vector of float color,  temp 2-component vector of float uv})
0:20          Constant:
0:20            2 (const int)
0:20        uv: direct index for structure ( temp 2-component vector of float)
0:20          direct index ( temp structure{ temp 4-component vector of float position,  temp 4-component vector of float color,  temp 2-component vector of float uv})
0:20            'vin' ( in 2-element array of structure{ temp 4-component vector of float position,  temp 4-component vector of float color,  temp 2-component vector of float uv})
0:20            Constant:
0:20              1 (const int)
0:20          Constant:
0:20            2 (const int)
0:21      move second child to first child ( temp 4-component vector of float)
0:21        position: direct index for structure ( temp 4-component vector of float)
0:21          'vout' ( temp structure{ temp 4-component vector of float position,  temp 4-component vector of float color,  temp 2-component vector of float uv})
0:21          Constant:
0:21            0 (const int)
0:21        position: direct index for structure ( temp 4-component vector of float)
0:21          direct index ( temp structure{ temp 4-component vector of float position,  temp 4-component vector of float color,  temp 2-component vector of float uv})
0:21            'vin' ( in 2-element array of structure{ temp 4-component vector of float position,  temp 4-component vector of float color,  temp 2-component vector of float uv})
0:21            Constant:
0:21              1 (const int)
0:21          Constant:
0:21            0 (const int)
0:22      Sequence
0:22        Sequence
0:22          move second child to first child ( temp 4-component vector of float)
0:?             'outStream_position' ( out 4-component vector of float Position)
0:22            position: direct index for structure ( temp 4-component vector of float)
0:22              'vout' ( temp structure{ temp 4-component vector of float position,  temp 4-component vector of float color,  temp 2-component vector of float uv})
0:22              Constant:
0:22                0 (const int)
0:22          move second child to first child ( temp 4-component vector of float)
0:22            color: direct index for structure ( temp 4-component vector of float)
0:22              'outStream' (layout( location=0) out structure{ temp 4-component vector of float color,  temp 2-component vector of float uv})
0:22              Constant:
0:22                0 (const int)
0:22            color: direct index for structure ( temp 4-component vector of float)
0:22              'vout' ( temp structure{ temp 4-component vector of float position,  temp 4-component vector of float color,  temp 2-component vector of float uv})
0:22              Constant:
0:22                1 (const int)
0:22          move second child to first child ( temp 2-component vector of float)
0:22            uv: direct index for structure ( temp 2-component vector of float)
0:22              'outStream' (layout( location=0) out structure{ temp 4-component vector of float color,  temp 2-component vector of float uv})
0:22              Constant:
0:22                1 (const int)
0:22            uv: direct index for structure ( temp 2-component vector of float)
0:22              'vout' ( temp structure{ temp 4-component vector of float position,  temp 4-component vector of float color,  temp 2-component vector of float uv})
0:22              Constant:
0:22                2 (const int)
0:22        EmitVertex ( temp void)
0:16  Function Definition: main( ( temp void)
0:16    Function Parameters: 
0:?     Sequence
0:16      move second child to first child ( temp 2-element array of structure{ temp 4-component vector of float position,  temp 4-component vector of float color,  temp 2-component vector of float uv})
0:?         'vin' ( temp 2-element array of structure{ temp 4-component vector of float position,  temp 4-component vector of float color,  temp 2-component vector of float uv})
0:?         'vin' (layout( location=0) in 2-element array of structure{ temp 4-component vector of float position,  temp 4-component vector of float color,  temp 2-component vector of float uv})
0:16      Function Call: @main(struct-VertexData-vf4-vf4-vf21[2];struct-PS_IN-vf4-vf4-vf21; ( temp void)
0:?         'vin' ( temp 2-element array of structure{ temp 4-component vector of float position,  temp 4-component vector of float color,  temp 2-component vector of float uv})
0:?         'outStream' ( temp structure{ temp 4-component vector of float position,  temp 4-component vector of float color,  temp 2-component vector of float uv})
0:?   Linker Objects
0:?     'vin' (layout( location=0) in 2-element array of structure{ temp 4-component vector of float position,  temp 4-component vector of float color,  temp 2-component vector of float uv})
0:?     'outStream' (layout( location=0) out structure{ temp 4-component vector of float color,  temp 2-component vector of float uv})


Linked geometry stage:


Shader version: 500
invocations = 1
max_vertices = 4
input primitive = lines
output primitive = triangle_strip
0:? Sequence
0:16  Function Definition: @main(struct-VertexData-vf4-vf4-vf21[2];struct-PS_IN-vf4-vf4-vf21; ( temp void)
0:16    Function Parameters: 
0:16      'vin' ( in 2-element array of structure{ temp 4-component vector of float position,  temp 4-component vector of float color,  temp 2-component vector of float uv})
0:16      'outStream' ( out structure{ temp 4-component vector of float position,  temp 4-component vector of float color,  temp 2-component vector of float uv})
0:?     Sequence
0:19      move second child to first child ( temp 4-component vector of float)
0:19        color: direct index for structure ( temp 4-component vector of float)
0:19          'vout' ( temp structure{ temp 4-component vector of float position,  temp 4-component vector of float color,  temp 2-component vector of float uv})
0:19          Constant:
0:19            1 (const int)
0:19        color: direct index for structure ( temp 4-component vector of float)
0:19          direct index ( temp structure{ temp 4-component vector of float position,  temp 4-component vector of float color,  temp 2-component vector of float uv})
0:19            'vin' ( in 2-element array of structure{ temp 4-component vector of float position,  temp 4-component vector of float color,  temp 2-component vector of float uv})
0:19            Constant:
0:19              1 (const int)
0:19          Constant:
0:19            1 (const int)
0:20      move second child to first child ( temp 2-component vector of float)
0:20        uv: direct index for structure ( temp 2-component vector of float)
0:20          'vout' ( temp structure{ temp 4-component vector of float position,  temp 4-component vector of float color,  temp 2-component vector of float uv})
0:20          Constant:
0:20            2 (const int)
0:20        uv: direct index for structure ( temp 2-component vector of float)
0:20          direct index ( temp structure{ temp 4-component vector of float position,  temp 4-component vector of float color,  temp 2-component vector of float uv})
0:20            'vin' ( in 2-element array of structure{ temp 4-component vector of float position,  temp 4-component vector of float color,  temp 2-component vector of float uv})
0:20            Constant:
0:20              1 (const int)
0:20          Constant:
0:20            2 (const int)
0:21      move second child to first child ( temp 4-component vector of float)
0:21        position: direct index for structure ( temp 4-component vector of float)
0:21          'vout' ( temp structure{ temp 4-component vector of float position,  temp 4-component vector of float color,  temp 2-component vector of float uv})
0:21          Constant:
0:21            0 (const int)
0:21        position: direct index for structure ( temp 4-component vector of float)
0:21          direct index ( temp structure{ temp 4-component vector of float position,  temp 4-component vector of float color,  temp 2-component vector of float uv})
0:21            'vin' ( in 2-element array of structure{ temp 4-component vector of float position,  temp 4-component vector of float color,  temp 2-component vector of float uv})
0:21            Constant:
0:21              1 (const int)
0:21          Constant:
0:21            0 (const int)
0:22      Sequence
0:22        Sequence
0:22          move second child to first child ( temp 4-component vector of float)
0:?             'outStream_position' ( out 4-component vector of float Position)
0:22            position: direct index for structure ( temp 4-component vector of float)
0:22              'vout' ( temp structure{ temp 4-component vector of float position,  temp 4-component vector of float color,  temp 2-component vector of float uv})
0:22              Constant:
0:22                0 (const int)
0:22          move second child to first child ( temp 4-component vector of float)
0:22            color: direct index for structure ( temp 4-component vector of float)
0:22              'outStream' (layout( location=0) out structure{ temp 4-component vector of float color,  temp 2-component vector of float uv})
0:22              Constant:
0:22                0 (const int)
0:22            color: direct index for structure ( temp 4-component vector of float)
0:22              'vout' ( temp structure{ temp 4-component vector of float position,  temp 4-component vector of float color,  temp 2-component vector of float uv})
0:22              Constant:
0:22                1 (const int)
0:22          move second child to first child ( temp 2-component vector of float)
0:22            uv: direct index for structure ( temp 2-component vector of float)
0:22              'outStream' (layout( location=0) out structure{ temp 4-component vector of float color,  temp 2-component vector of float uv})
0:22              Constant:
0:22                1 (const int)
0:22            uv: direct index for structure ( temp 2-component vector of float)
0:22              'vout' ( temp structure{ temp 4-component vector of float position,  temp 4-component vector of float color,  temp 2-component vector of float uv})
0:22              Constant:
0:22                2 (const int)
0:22        EmitVertex ( temp void)
0:16  Function Definition: main( ( temp void)
0:16    Function Parameters: 
0:?     Sequence
0:16      move second child to first child ( temp 2-element array of structure{ temp 4-component vector of float position,  temp 4-component vector of float color,  temp 2-component vector of float uv})
0:?         'vin' ( temp 2-element array of structure{ temp 4-component vector of float position,  temp 4-component vector of float color,  temp 2-component vector of float uv})
0:?         'vin' (layout( location=0) in 2-element array of structure{ temp 4-component vector of float position,  temp 4-component vector of float color,  temp 2-component vector of float uv})
0:16      Function Call: @main(struct-VertexData-vf4-vf4-vf21[2];struct-PS_IN-vf4-vf4-vf21; ( temp void)
0:?         'vin' ( temp 2-element array of structure{ temp 4-component vector of float position,  temp 4-component vector of float color,  temp 2-component vector of float uv})
0:?         'outStream' ( temp structure{ temp 4-component vector of float position,  temp 4-component vector of float color,  temp 2-component vector of float uv})
0:?   Linker Objects
0:?     'vin' (layout( location=0) in 2-element array of structure{ temp 4-component vector of float position,  temp 4-component vector of float color,  temp 2-component vector of float uv})
0:?     'outStream' (layout( location=0) out structure{ temp 4-component vector of float color,  temp 2-component vector of float uv})

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

                              Capability Geometry
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Geometry 4  "main" 38 43 53
                              ExecutionMode 4 InputLines
                              ExecutionMode 4 Invocations 1
                              ExecutionMode 4 OutputTriangleStrip
                              ExecutionMode 4 OutputVertices 4
                              Source HLSL 500
                              Name 4  "main"
                              Name 9  "VertexData"
                              MemberName 9(VertexData) 0  "position"
                              MemberName 9(VertexData) 1  "color"
                              MemberName 9(VertexData) 2  "uv"
                              Name 14  "PS_IN"
                              MemberName 14(PS_IN) 0  "position"
                              MemberName 14(PS_IN) 1  "color"
                              MemberName 14(PS_IN) 2  "uv"
                              Name 19  "@main(struct-VertexData-vf4-vf4-vf21[2];struct-PS_IN-vf4-vf4-vf21;"
                              Name 17  "vin"
                              Name 18  "outStream"
                              Name 21  "vout"
                              Name 38  "outStream_position"
                              Name 41  "PS_IN"
                              MemberName 41(PS_IN) 0  "color"
                              MemberName 41(PS_IN) 1  "uv"
                              Name 43  "outStream"
                              Name 51  "vin"
                              Name 53  "vin"
                              Name 55  "outStream"
                              Name 56  "param"
                              Name 58  "param"
                              Decorate 38(outStream_position) BuiltIn Position
                              Decorate 43(outStream) Location 0
                              Decorate 53(vin) Location 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 4
               8:             TypeVector 6(float) 2
   9(VertexData):             TypeStruct 7(fvec4) 7(fvec4) 8(fvec2)
              10:             TypeInt 32 0
              11:     10(int) Constant 2
              12:             TypeArray 9(VertexData) 11
              13:             TypePointer Function 12
       14(PS_IN):             TypeStruct 7(fvec4) 7(fvec4) 8(fvec2)
              15:             TypePointer Function 14(PS_IN)
              16:             TypeFunction 2 13(ptr) 15(ptr)
              22:             TypeInt 32 1
              23:     22(int) Constant 1
              24:             TypePointer Function 7(fvec4)
              28:     22(int) Constant 2
              29:             TypePointer Function 8(fvec2)
              33:     22(int) Constant 0
              37:             TypePointer Output 7(fvec4)
38(outStream_position):     37(ptr) Variable Output
       41(PS_IN):             TypeStruct 7(fvec4) 8(fvec2)
              42:             TypePointer Output 41(PS_IN)
   43(outStream):     42(ptr) Variable Output
              49:             TypePointer Output 8(fvec2)
              52:             TypePointer Input 12
         53(vin):     52(ptr) Variable Input
         4(main):           2 Function None 3
               5:             Label
         51(vin):     13(ptr) Variable Function
   55(outStream):     15(ptr) Variable Function
       56(param):     13(ptr) Variable Function
       58(param):     15(ptr) Variable Function
              54:          12 Load 53(vin)
                              Store 51(vin) 54
              57:          12 Load 51(vin)
                              Store 56(param) 57
              59:           2 FunctionCall 19(@main(struct-VertexData-vf4-vf4-vf21[2];struct-PS_IN-vf4-vf4-vf21;) 56(param) 58(param)
              60:   14(PS_IN) Load 58(param)
                              Store 55(outStream) 60
                              Return
                              FunctionEnd
19(@main(struct-VertexData-vf4-vf4-vf21[2];struct-PS_IN-vf4-vf4-vf21;):           2 Function None 16
         17(vin):     13(ptr) FunctionParameter
   18(outStream):     15(ptr) FunctionParameter
              20:             Label
        21(vout):     15(ptr) Variable Function
              25:     24(ptr) AccessChain 17(vin) 23 23
              26:    7(fvec4) Load 25
              27:     24(ptr) AccessChain 21(vout) 23
                              Store 27 26
              30:     29(ptr) AccessChain 17(vin) 23 28
              31:    8(fvec2) Load 30
              32:     29(ptr) AccessChain 21(vout) 28
                              Store 32 31
              34:     24(ptr) AccessChain 17(vin) 23 33
              35:    7(fvec4) Load 34
              36:     24(ptr) AccessChain 21(vout) 33
                              Store 36 35
              39:     24(ptr) AccessChain 21(vout) 33
              40:    7(fvec4) Load 39
                              Store 38(outStream_position) 40
              44:     24(ptr) AccessChain 21(vout) 23
              45:    7(fvec4) Load 44
              46:     37(ptr) AccessChain 43(outStream) 33
                              Store 46 45
              47:     29(ptr) AccessChain 21(vout) 28
              48:    8(fvec2) Load 47
              50:     49(ptr) AccessChain 43(outStream) 23
                              Store 50 48
                              EmitVertex
                              Return
                              FunctionEnd
