spv.150.geom
// Module Version 10000
// Generated by (magic number): 80008
// Id's are bound by 71

                              Capability Geometry
                              Capability GeometryPointSize
                              Capability GeometryStreams
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Geometry 4  "main" 10 18 29 33 47 49 51 70
                              ExecutionMode 4 InputTrianglesAdjacency
                              ExecutionMode 4 Invocations 1
                              ExecutionMode 4 OutputTriangleStrip
                              ExecutionMode 4 OutputVertices 30
                              Source GLSL 150
                              Name 4  "main"
                              Name 8  "fromVertex"
                              MemberName 8(fromVertex) 0  "color"
                              Name 10  ""
                              Name 13  "fromVertex"
                              MemberName 13(fromVertex) 0  "color"
                              Name 18  "fromV"
                              Name 27  "gl_PerVertex"
                              MemberName 27(gl_PerVertex) 0  "gl_Position"
                              MemberName 27(gl_PerVertex) 1  "gl_PointSize"
                              MemberName 27(gl_PerVertex) 2  "gl_ClipDistance"
                              Name 29  ""
                              Name 30  "gl_PerVertex"
                              MemberName 30(gl_PerVertex) 0  "gl_Position"
                              MemberName 30(gl_PerVertex) 1  "gl_PointSize"
                              MemberName 30(gl_PerVertex) 2  "gl_ClipDistance"
                              Name 33  "gl_in"
                              Name 47  "gl_PrimitiveID"
                              Name 49  "gl_PrimitiveIDIn"
                              Name 51  "gl_Layer"
                              Name 68  "toFragment"
                              MemberName 68(toFragment) 0  "color"
                              Name 70  "toF"
                              Decorate 8(fromVertex) Block
                              Decorate 10 Stream 3
                              Decorate 13(fromVertex) Block
                              MemberDecorate 27(gl_PerVertex) 0 BuiltIn Position
                              MemberDecorate 27(gl_PerVertex) 1 BuiltIn PointSize
                              MemberDecorate 27(gl_PerVertex) 2 BuiltIn ClipDistance
                              Decorate 27(gl_PerVertex) Block
                              Decorate 29 Stream 0
                              MemberDecorate 30(gl_PerVertex) 0 BuiltIn Position
                              MemberDecorate 30(gl_PerVertex) 1 BuiltIn PointSize
                              MemberDecorate 30(gl_PerVertex) 2 BuiltIn ClipDistance
                              Decorate 30(gl_PerVertex) Block
                              Decorate 47(gl_PrimitiveID) Stream 0
                              Decorate 47(gl_PrimitiveID) BuiltIn PrimitiveId
                              Decorate 49(gl_PrimitiveIDIn) BuiltIn PrimitiveId
                              Decorate 51(gl_Layer) Stream 0
                              Decorate 51(gl_Layer) BuiltIn Layer
                              Decorate 68(toFragment) Block
                              Decorate 70(toF) Stream 3
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 3
   8(fromVertex):             TypeStruct 7(fvec3)
               9:             TypePointer Output 8(fromVertex)
              10:      9(ptr) Variable Output
              11:             TypeInt 32 1
              12:     11(int) Constant 0
  13(fromVertex):             TypeStruct 7(fvec3)
              14:             TypeInt 32 0
              15:     14(int) Constant 6
              16:             TypeArray 13(fromVertex) 15
              17:             TypePointer Input 16
       18(fromV):     17(ptr) Variable Input
              19:             TypePointer Input 7(fvec3)
              22:             TypePointer Output 7(fvec3)
              24:             TypeVector 6(float) 4
              25:     14(int) Constant 1
              26:             TypeArray 6(float) 25
27(gl_PerVertex):             TypeStruct 24(fvec4) 6(float) 26
              28:             TypePointer Output 27(gl_PerVertex)
              29:     28(ptr) Variable Output
30(gl_PerVertex):             TypeStruct 24(fvec4) 6(float) 26
              31:             TypeArray 30(gl_PerVertex) 15
              32:             TypePointer Input 31
       33(gl_in):     32(ptr) Variable Input
              34:             TypePointer Input 24(fvec4)
              37:             TypePointer Output 24(fvec4)
              39:     11(int) Constant 1
              40:     11(int) Constant 3
              41:             TypePointer Input 6(float)
              44:             TypePointer Output 6(float)
              46:             TypePointer Output 11(int)
47(gl_PrimitiveID):     46(ptr) Variable Output
              48:             TypePointer Input 11(int)
49(gl_PrimitiveIDIn):     48(ptr) Variable Input
    51(gl_Layer):     46(ptr) Variable Output
              52:     11(int) Constant 2
              53:    6(float) Constant 1073741824
  68(toFragment):             TypeStruct 7(fvec3)
              69:             TypePointer Output 68(toFragment)
         70(toF):     69(ptr) Variable Output
         4(main):           2 Function None 3
               5:             Label
              20:     19(ptr) AccessChain 18(fromV) 12 12
              21:    7(fvec3) Load 20
              23:     22(ptr) AccessChain 10 12
                              Store 23 21
              35:     34(ptr) AccessChain 33(gl_in) 12 12
              36:   24(fvec4) Load 35
              38:     37(ptr) AccessChain 29 12
                              Store 38 36
              42:     41(ptr) AccessChain 33(gl_in) 40 39
              43:    6(float) Load 42
              45:     44(ptr) AccessChain 29 39
                              Store 45 43
              50:     11(int) Load 49(gl_PrimitiveIDIn)
                              Store 47(gl_PrimitiveID) 50
                              Store 51(gl_Layer) 52
                              EmitVertex
              54:     19(ptr) AccessChain 18(fromV) 12 12
              55:    7(fvec3) Load 54
              56:    7(fvec3) VectorTimesScalar 55 53
              57:     22(ptr) AccessChain 10 12
                              Store 57 56
              58:     34(ptr) AccessChain 33(gl_in) 12 12
              59:   24(fvec4) Load 58
              60:   24(fvec4) VectorTimesScalar 59 53
              61:     37(ptr) AccessChain 29 12
                              Store 61 60
              62:     41(ptr) AccessChain 33(gl_in) 40 39
              63:    6(float) Load 62
              64:    6(float) FMul 53 63
              65:     44(ptr) AccessChain 29 39
                              Store 65 64
              66:     11(int) Load 49(gl_PrimitiveIDIn)
              67:     11(int) IAdd 66 39
                              Store 47(gl_PrimitiveID) 67
                              Store 51(gl_Layer) 40
                              EmitVertex
                              EndPrimitive
                              Return
                              FunctionEnd
