spv.330.geom

Linked geometry stage:


// Module Version 99
// Generated by (magic number): 51a00bb
// Id's are bound by 33

                              Source GLSL 330
                              SourceExtension  "GL_ARB_separate_shader_objects"
                              Capability Geometry
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Geometry 4  "main"
                              ExecutionMode 4 InputTriangles
                              ExecutionMode 4 Invocations 0
                              ExecutionMode 4 OutputTriangleStrip
                              ExecutionMode 4 OutputVertices 3
                              Name 4  "main"
                              Name 12  "gl_PerVertex"
                              MemberName 12(gl_PerVertex) 0  "gl_Position"
                              MemberName 12(gl_PerVertex) 1  "gl_ClipDistance"
                              Name 14  ""
                              Name 17  "gl_PerVertex"
                              MemberName 17(gl_PerVertex) 0  "gl_Position"
                              MemberName 17(gl_PerVertex) 1  "gl_ClipDistance"
                              Name 21  "gl_in"
                              MemberDecorate 12(gl_PerVertex) 0 BuiltIn Position
                              MemberDecorate 12(gl_PerVertex) 1 BuiltIn ClipDistance
                              Decorate 12(gl_PerVertex) Block
                              Decorate 12(gl_PerVertex) Stream 0
                              Decorate 14 Stream 0
                              MemberDecorate 17(gl_PerVertex) 0 BuiltIn Position
                              MemberDecorate 17(gl_PerVertex) 1 BuiltIn ClipDistance
                              Decorate 17(gl_PerVertex) Block
               2:             TypeVoid
               3:             TypeFunction 2
               7:             TypeFloat 32
               8:             TypeVector 7(float) 4
               9:             TypeInt 32 0
              10:      9(int) Constant 1
              11:             TypeArray 7(float) 10
12(gl_PerVertex):             TypeStruct 8(fvec4) 11
              13:             TypePointer Output 12(gl_PerVertex)
              14:     13(ptr) Variable Output
              15:             TypeInt 32 1
              16:     15(int) Constant 0
17(gl_PerVertex):             TypeStruct 8(fvec4) 11
              18:      9(int) Constant 3
              19:             TypeArray 17(gl_PerVertex) 18
              20:             TypePointer Input 19
       21(gl_in):     20(ptr) Variable Input
              22:     15(int) Constant 1
              23:             TypePointer Input 8(fvec4)
              26:             TypePointer Output 8(fvec4)
              28:             TypePointer Input 7(float)
              31:             TypePointer Output 7(float)
         4(main):           2 Function None 3
               5:             Label
              24:     23(ptr) AccessChain 21(gl_in) 22 16
              25:    8(fvec4) Load 24
              27:     26(ptr) AccessChain 14 16
                              Store 27 25
              29:     28(ptr) AccessChain 21(gl_in) 22 22 16
              30:    7(float) Load 29
              32:     31(ptr) AccessChain 14 22 16
                              Store 32 30
                              EmitVertex
                              EndPrimitive
                              Branch 6
               6:             Label
                              Return
                              FunctionEnd
