spv.1.3.8bitstorage-ubo.vert
// Module Version 10300
// Generated by (magic number): 80007
// Id's are bound by 29

                              Capability Shader
                              Capability CapabilityUniformAndStorageBuffer8BitAccess
                              Extension  "SPV_KHR_8bit_storage"
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Vertex 4  "main" 9 20
                              Source GLSL 450
                              SourceExtension  "GL_EXT_shader_8bit_storage"
                              Name 4  "main"
                              Name 9  "color"
                              Name 14  "Vertices"
                              MemberName 14(Vertices) 0  "vertices"
                              Name 16  ""
                              Name 20  "gl_VertexIndex"
                              Decorate 9(color) Location 0
                              Decorate 13 ArrayStride 16
                              MemberDecorate 14(Vertices) 0 Offset 0
                              Decorate 14(Vertices) Block
                              Decorate 16 DescriptorSet 0
                              Decorate 16 Binding 0
                              Decorate 20(gl_VertexIndex) BuiltIn VertexIndex
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 4
               8:             TypePointer Output 7(fvec4)
        9(color):      8(ptr) Variable Output
              10:             TypeInt 8 0
              11:             TypeInt 32 0
              12:     11(int) Constant 512
              13:             TypeArray 10(int8_t) 12
    14(Vertices):             TypeStruct 13
              15:             TypePointer Uniform 14(Vertices)
              16:     15(ptr) Variable Uniform
              17:             TypeInt 32 1
              18:     17(int) Constant 0
              19:             TypePointer Input 17(int)
20(gl_VertexIndex):     19(ptr) Variable Input
              22:             TypePointer Uniform 10(int8_t)
         4(main):           2 Function None 3
               5:             Label
              21:     17(int) Load 20(gl_VertexIndex)
              23:     22(ptr) AccessChain 16 18 21
              24:  10(int8_t) Load 23
              25:     11(int) UConvert 24
              26:     17(int) Bitcast 25
              27:    6(float) ConvertSToF 26
              28:    7(fvec4) CompositeConstruct 27 27 27 27
                              Store 9(color) 28
                              Return
                              FunctionEnd
