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:?             'outStream.color' (layout( location=0) out 4-component vector of float)
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:?             'outStream.uv' (layout( location=1) out 2-component vector of float)
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.position' ( out 4-component vector of float Position)
0:?     'outStream.color' (layout( location=0) out 4-component vector of float)
0:?     'outStream.uv' (layout( location=1) out 2-component vector of float)


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:?             'outStream.color' (layout( location=0) out 4-component vector of float)
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:?             'outStream.uv' (layout( location=1) out 2-component vector of float)
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.position' ( out 4-component vector of float Position)
0:?     'outStream.color' (layout( location=0) out 4-component vector of float)
0:?     'outStream.uv' (layout( location=1) out 2-component vector of float)

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

                              Capability Geometry
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Geometry 4  "main" 38 41 45 50
                              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  "outStream.color"
                              Name 45  "outStream.uv"
                              Name 48  "vin"
                              Name 50  "vin"
                              Name 52  "outStream"
                              Name 53  "param"
                              Name 55  "param"
                              Decorate 38(outStream.position) BuiltIn Position
                              Decorate 41(outStream.color) Location 0
                              Decorate 45(outStream.uv) Location 1
                              Decorate 50(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(outStream.color):     37(ptr) Variable Output
              44:             TypePointer Output 8(fvec2)
45(outStream.uv):     44(ptr) Variable Output
              49:             TypePointer Input 12
         50(vin):     49(ptr) Variable Input
         4(main):           2 Function None 3
               5:             Label
         48(vin):     13(ptr) Variable Function
   52(outStream):     15(ptr) Variable Function
       53(param):     13(ptr) Variable Function
       55(param):     15(ptr) Variable Function
              51:          12 Load 50(vin)
                              Store 48(vin) 51
              54:          12 Load 48(vin)
                              Store 53(param) 54
              56:           2 FunctionCall 19(@main(struct-VertexData-vf4-vf4-vf21[2];struct-PS_IN-vf4-vf4-vf21;) 53(param) 55(param)
              57:   14(PS_IN) Load 55(param)
                              Store 52(outStream) 57
                              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
              42:     24(ptr) AccessChain 21(vout) 23
              43:    7(fvec4) Load 42
                              Store 41(outStream.color) 43
              46:     29(ptr) AccessChain 21(vout) 28
              47:    8(fvec2) Load 46
                              Store 45(outStream.uv) 47
                              EmitVertex
                              Return
                              FunctionEnd
