spv.qualifiers.vert
Warning, version 430 is not yet complete; most version-specific features are present, but some are missing.


Linked vertex stage:


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

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Vertex 4  "main" 9 11 13 15 17 19
                              Source GLSL 430
                              Name 4  "main"
                              Name 9  "outVc"
                              Name 11  "inV"
                              Name 13  "outVs"
                              Name 15  "outVf"
                              Name 17  "outVn"
                              Name 19  "outVcn"
                              Decorate 9(outVc) Centroid
                              Decorate 15(outVf) Flat
                              Decorate 17(outVn) NoPerspective
                              Decorate 19(outVcn) NoPerspective
                              Decorate 19(outVcn) Centroid
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 4
               8:             TypePointer Output 7(fvec4)
        9(outVc):      8(ptr) Variable Output
              10:             TypePointer Input 7(fvec4)
         11(inV):     10(ptr) Variable Input
       13(outVs):      8(ptr) Variable Output
       15(outVf):      8(ptr) Variable Output
       17(outVn):      8(ptr) Variable Output
      19(outVcn):      8(ptr) Variable Output
         4(main):           2 Function None 3
               5:             Label
              12:    7(fvec4) Load 11(inV)
                              Store 9(outVc) 12
              14:    7(fvec4) Load 11(inV)
                              Store 13(outVs) 14
              16:    7(fvec4) Load 11(inV)
                              Store 15(outVf) 16
              18:    7(fvec4) Load 11(inV)
                              Store 17(outVn) 18
              20:    7(fvec4) Load 11(inV)
                              Store 19(outVcn) 20
                              Return
                              FunctionEnd
