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      Sequence
0:16        move second child to first child ( temp 4-component vector of float)
0:16          position: direct index for structure ( temp 4-component vector of float)
0:16            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:?               '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:16              Constant:
0:16                0 (const int)
0:16            Constant:
0:16              0 (const int)
0:16          direct index (layout( location=0) in 4-component vector of float)
0:?             'vin.position' (layout( location=0) in 2-element array of 4-component vector of float)
0:16            Constant:
0:16              0 (const int)
0:16        move second child to first child ( temp 4-component vector of float)
0:16          color: direct index for structure ( temp 4-component vector of float)
0:16            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:?               '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:16              Constant:
0:16                0 (const int)
0:16            Constant:
0:16              1 (const int)
0:16          direct index (layout( location=1) in 4-component vector of float)
0:?             'vin.color' (layout( location=1) in 2-element array of 4-component vector of float)
0:16            Constant:
0:16              0 (const int)
0:16        move second child to first child ( temp 2-component vector of float)
0:16          uv: direct index for structure ( temp 2-component vector of float)
0:16            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:?               '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:16              Constant:
0:16                0 (const int)
0:16            Constant:
0:16              2 (const int)
0:16          direct index (layout( location=2) in 2-component vector of float)
0:?             'vin.uv' (layout( location=2) in 2-element array of 2-component vector of float)
0:16            Constant:
0:16              0 (const int)
0:16        move second child to first child ( temp 4-component vector of float)
0:16          position: direct index for structure ( temp 4-component vector of float)
0:16            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:?               '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:16              Constant:
0:16                1 (const int)
0:16            Constant:
0:16              0 (const int)
0:16          direct index (layout( location=0) in 4-component vector of float)
0:?             'vin.position' (layout( location=0) in 2-element array of 4-component vector of float)
0:16            Constant:
0:16              1 (const int)
0:16        move second child to first child ( temp 4-component vector of float)
0:16          color: direct index for structure ( temp 4-component vector of float)
0:16            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:?               '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:16              Constant:
0:16                1 (const int)
0:16            Constant:
0:16              1 (const int)
0:16          direct index (layout( location=1) in 4-component vector of float)
0:?             'vin.color' (layout( location=1) in 2-element array of 4-component vector of float)
0:16            Constant:
0:16              1 (const int)
0:16        move second child to first child ( temp 2-component vector of float)
0:16          uv: direct index for structure ( temp 2-component vector of float)
0:16            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:?               '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:16              Constant:
0:16                1 (const int)
0:16            Constant:
0:16              2 (const int)
0:16          direct index (layout( location=2) in 2-component vector of float)
0:?             'vin.uv' (layout( location=2) in 2-element array of 2-component vector of float)
0:16            Constant:
0:16              1 (const int)
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.position' (layout( location=0) in 2-element array of 4-component vector of float)
0:?     'vin.color' (layout( location=1) in 2-element array of 4-component vector of float)
0:?     'vin.uv' (layout( location=2) in 2-element array of 2-component vector of float)
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      Sequence
0:16        move second child to first child ( temp 4-component vector of float)
0:16          position: direct index for structure ( temp 4-component vector of float)
0:16            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:?               '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:16              Constant:
0:16                0 (const int)
0:16            Constant:
0:16              0 (const int)
0:16          direct index (layout( location=0) in 4-component vector of float)
0:?             'vin.position' (layout( location=0) in 2-element array of 4-component vector of float)
0:16            Constant:
0:16              0 (const int)
0:16        move second child to first child ( temp 4-component vector of float)
0:16          color: direct index for structure ( temp 4-component vector of float)
0:16            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:?               '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:16              Constant:
0:16                0 (const int)
0:16            Constant:
0:16              1 (const int)
0:16          direct index (layout( location=1) in 4-component vector of float)
0:?             'vin.color' (layout( location=1) in 2-element array of 4-component vector of float)
0:16            Constant:
0:16              0 (const int)
0:16        move second child to first child ( temp 2-component vector of float)
0:16          uv: direct index for structure ( temp 2-component vector of float)
0:16            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:?               '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:16              Constant:
0:16                0 (const int)
0:16            Constant:
0:16              2 (const int)
0:16          direct index (layout( location=2) in 2-component vector of float)
0:?             'vin.uv' (layout( location=2) in 2-element array of 2-component vector of float)
0:16            Constant:
0:16              0 (const int)
0:16        move second child to first child ( temp 4-component vector of float)
0:16          position: direct index for structure ( temp 4-component vector of float)
0:16            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:?               '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:16              Constant:
0:16                1 (const int)
0:16            Constant:
0:16              0 (const int)
0:16          direct index (layout( location=0) in 4-component vector of float)
0:?             'vin.position' (layout( location=0) in 2-element array of 4-component vector of float)
0:16            Constant:
0:16              1 (const int)
0:16        move second child to first child ( temp 4-component vector of float)
0:16          color: direct index for structure ( temp 4-component vector of float)
0:16            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:?               '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:16              Constant:
0:16                1 (const int)
0:16            Constant:
0:16              1 (const int)
0:16          direct index (layout( location=1) in 4-component vector of float)
0:?             'vin.color' (layout( location=1) in 2-element array of 4-component vector of float)
0:16            Constant:
0:16              1 (const int)
0:16        move second child to first child ( temp 2-component vector of float)
0:16          uv: direct index for structure ( temp 2-component vector of float)
0:16            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:?               '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:16              Constant:
0:16                1 (const int)
0:16            Constant:
0:16              2 (const int)
0:16          direct index (layout( location=2) in 2-component vector of float)
0:?             'vin.uv' (layout( location=2) in 2-element array of 2-component vector of float)
0:16            Constant:
0:16              1 (const int)
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.position' (layout( location=0) in 2-element array of 4-component vector of float)
0:?     'vin.color' (layout( location=1) in 2-element array of 4-component vector of float)
0:?     'vin.uv' (layout( location=2) in 2-element array of 2-component vector of float)
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): 8000a
// Id's are bound by 82

                              Capability Geometry
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Geometry 4  "main" 38 41 45 51 56 62
                              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 51  "vin.position"
                              Name 56  "vin.color"
                              Name 62  "vin.uv"
                              Name 76  "outStream"
                              Name 77  "param"
                              Name 79  "param"
                              Decorate 38(outStream.position) BuiltIn Position
                              Decorate 41(outStream.color) Location 0
                              Decorate 45(outStream.uv) Location 1
                              Decorate 51(vin.position) Location 0
                              Decorate 56(vin.color) Location 1
                              Decorate 62(vin.uv) Location 2
               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:             TypeArray 7(fvec4) 11
              50:             TypePointer Input 49
51(vin.position):     50(ptr) Variable Input
              52:             TypePointer Input 7(fvec4)
   56(vin.color):     50(ptr) Variable Input
              60:             TypeArray 8(fvec2) 11
              61:             TypePointer Input 60
      62(vin.uv):     61(ptr) Variable Input
              63:             TypePointer Input 8(fvec2)
         4(main):           2 Function None 3
               5:             Label
         48(vin):     13(ptr) Variable Function
   76(outStream):     15(ptr) Variable Function
       77(param):     13(ptr) Variable Function
       79(param):     15(ptr) Variable Function
              53:     52(ptr) AccessChain 51(vin.position) 33
              54:    7(fvec4) Load 53
              55:     24(ptr) AccessChain 48(vin) 33 33
                              Store 55 54
              57:     52(ptr) AccessChain 56(vin.color) 33
              58:    7(fvec4) Load 57
              59:     24(ptr) AccessChain 48(vin) 33 23
                              Store 59 58
              64:     63(ptr) AccessChain 62(vin.uv) 33
              65:    8(fvec2) Load 64
              66:     29(ptr) AccessChain 48(vin) 33 28
                              Store 66 65
              67:     52(ptr) AccessChain 51(vin.position) 23
              68:    7(fvec4) Load 67
              69:     24(ptr) AccessChain 48(vin) 23 33
                              Store 69 68
              70:     52(ptr) AccessChain 56(vin.color) 23
              71:    7(fvec4) Load 70
              72:     24(ptr) AccessChain 48(vin) 23 23
                              Store 72 71
              73:     63(ptr) AccessChain 62(vin.uv) 23
              74:    8(fvec2) Load 73
              75:     29(ptr) AccessChain 48(vin) 23 28
                              Store 75 74
              78:          12 Load 48(vin)
                              Store 77(param) 78
              80:           2 FunctionCall 19(@main(struct-VertexData-vf4-vf4-vf21[2];struct-PS_IN-vf4-vf4-vf21;) 77(param) 79(param)
              81:   14(PS_IN) Load 79(param)
                              Store 76(outStream) 81
                              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
