spv.nonuniform2.frag
// Module Version 10000
// Generated by (magic number): 80008
// Id's are bound by 24

                              Capability Shader
                              Capability ImageBuffer
                              Capability ShaderNonUniformEXT
                              Capability RuntimeDescriptorArrayEXT
                              Capability StorageTexelBufferArrayNonUniformIndexingEXT
                              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 13  "data"
                              Name 16  "rIndex"
                              Decorate 9(FragColor) Location 0
                              Decorate 13(data) DescriptorSet 0
                              Decorate 13(data) Binding 4
                              Decorate 16(rIndex) Flat
                              Decorate 16(rIndex) Location 3
                              Decorate 18 DecorationNonUniformEXT
                              Decorate 21 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:             TypeImage 6(float) Buffer nonsampled format:Rgba32f
              11:             TypeRuntimeArray 10
              12:             TypePointer UniformConstant 11
        13(data):     12(ptr) Variable UniformConstant
              14:             TypeInt 32 1
              15:             TypePointer Input 14(int)
      16(rIndex):     15(ptr) Variable Input
              19:             TypePointer UniformConstant 10
              22:     14(int) Constant 0
         4(main):           2 Function None 3
               5:             Label
              17:     14(int) Load 16(rIndex)
              18:     14(int) CopyObject 17
              20:     19(ptr) AccessChain 13(data) 18
              21:          10 Load 20
              23:    7(fvec4) ImageRead 21 22
                              Store 9(FragColor) 23
                              Return
                              FunctionEnd
