spv.nonuniform5.frag
// Module Version 10000
// Generated by (magic number): 8000a
// Id's are bound by 23

                              Capability Shader
                              Capability ShaderNonUniformEXT
                              Capability RuntimeDescriptorArrayEXT
                              Capability UniformBufferArrayNonUniformIndexingEXT
                              Extension  "SPV_EXT_descriptor_indexing"
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 9 16
                              ExecutionMode 4 OriginUpperLeft
                              Source GLSL 450
                              SourceExtension  "GL_EXT_nonuniform_qualifier"
                              Name 4  "main"
                              Name 9  "FragColor"
                              Name 10  "UBO"
                              MemberName 10(UBO) 0  "v"
                              Name 13  "ubos"
                              Name 16  "Index"
                              Decorate 9(FragColor) Location 0
                              MemberDecorate 10(UBO) 0 Offset 0
                              Decorate 10(UBO) Block
                              Decorate 13(ubos) DescriptorSet 0
                              Decorate 13(ubos) Binding 0
                              Decorate 16(Index) Flat
                              Decorate 16(Index) Location 0
                              Decorate 18 DecorationNonUniformEXT
                              Decorate 21 DecorationNonUniformEXT
                              Decorate 22 DecorationNonUniformEXT
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 4
               8:             TypePointer Output 7(fvec4)
    9(FragColor):      8(ptr) Variable Output
         10(UBO):             TypeStruct 7(fvec4)
              11:             TypeRuntimeArray 10(UBO)
              12:             TypePointer Uniform 11
        13(ubos):     12(ptr) Variable Uniform
              14:             TypeInt 32 1
              15:             TypePointer Input 14(int)
       16(Index):     15(ptr) Variable Input
              19:     14(int) Constant 0
              20:             TypePointer Uniform 7(fvec4)
         4(main):           2 Function None 3
               5:             Label
              17:     14(int) Load 16(Index)
              18:     14(int) CopyObject 17
              21:     20(ptr) AccessChain 13(ubos) 18 19
              22:    7(fvec4) Load 21
                              Store 9(FragColor) 22
                              Return
                              FunctionEnd
