spv.450.geom
// Module Version 10000
// Generated by (magic number): 80005
// Id's are bound by 31

                              Capability Geometry
                              Capability GeometryPointSize
                              Capability MultiViewport
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Geometry 4  "main" 13 20 27 29
                              ExecutionMode 4 Triangles
                              ExecutionMode 4 Invocations 4
                              ExecutionMode 4 OutputLineStrip
                              ExecutionMode 4 OutputVertices 127
                              Source GLSL 450
                              Name 4  "main"
                              Name 11  "gl_PerVertex"
                              MemberName 11(gl_PerVertex) 0  "gl_Position"
                              MemberName 11(gl_PerVertex) 1  "gl_PointSize"
                              MemberName 11(gl_PerVertex) 2  "gl_ClipDistance"
                              MemberName 11(gl_PerVertex) 3  "gl_CullDistance"
                              Name 13  ""
                              Name 16  "gl_PerVertex"
                              MemberName 16(gl_PerVertex) 0  "gl_Position"
                              MemberName 16(gl_PerVertex) 1  "gl_PointSize"
                              MemberName 16(gl_PerVertex) 2  "gl_ClipDistance"
                              MemberName 16(gl_PerVertex) 3  "gl_CullDistance"
                              Name 20  "gl_in"
                              Name 27  "gl_Layer"
                              Name 29  "gl_ViewportIndex"
                              MemberDecorate 11(gl_PerVertex) 0 BuiltIn Position
                              MemberDecorate 11(gl_PerVertex) 1 BuiltIn PointSize
                              MemberDecorate 11(gl_PerVertex) 2 BuiltIn ClipDistance
                              MemberDecorate 11(gl_PerVertex) 3 BuiltIn CullDistance
                              Decorate 11(gl_PerVertex) Block
                              MemberDecorate 16(gl_PerVertex) 0 BuiltIn Position
                              MemberDecorate 16(gl_PerVertex) 1 BuiltIn PointSize
                              MemberDecorate 16(gl_PerVertex) 2 BuiltIn ClipDistance
                              MemberDecorate 16(gl_PerVertex) 3 BuiltIn CullDistance
                              Decorate 16(gl_PerVertex) Block
                              Decorate 27(gl_Layer) BuiltIn Layer
                              Decorate 29(gl_ViewportIndex) BuiltIn ViewportIndex
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 4
               8:             TypeInt 32 0
               9:      8(int) Constant 1
              10:             TypeArray 6(float) 9
11(gl_PerVertex):             TypeStruct 7(fvec4) 6(float) 10 10
              12:             TypePointer Output 11(gl_PerVertex)
              13:     12(ptr) Variable Output
              14:             TypeInt 32 1
              15:     14(int) Constant 1
16(gl_PerVertex):             TypeStruct 7(fvec4) 6(float) 10 10
              17:      8(int) Constant 3
              18:             TypeArray 16(gl_PerVertex) 17
              19:             TypePointer Input 18
       20(gl_in):     19(ptr) Variable Input
              21:             TypePointer Input 6(float)
              24:             TypePointer Output 6(float)
              26:             TypePointer Output 14(int)
    27(gl_Layer):     26(ptr) Variable Output
              28:     14(int) Constant 2
29(gl_ViewportIndex):     26(ptr) Variable Output
              30:     14(int) Constant 3
         4(main):           2 Function None 3
               5:             Label
              22:     21(ptr) AccessChain 20(gl_in) 15 15
              23:    6(float) Load 22
              25:     24(ptr) AccessChain 13 15
                              Store 25 23
                              Store 27(gl_Layer) 28
                              Store 29(gl_ViewportIndex) 30
                              Return
                              FunctionEnd
