spv.textureBuffer.vert
// Module Version 10000
// Generated by (magic number): 80006
// Id's are bound by 42

                              Capability Shader
                              Capability SampledBuffer
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Vertex 4  "main"
                              Source GLSL 450
                              Name 4  "main"
                              Name 9  "tBuf"
                              Name 13  "s"
                              Name 23  "sBuf"
                              Name 32  "utBuf"
                              Name 38  "itBuf"
                              Decorate 9(tBuf) DescriptorSet 0
                              Decorate 13(s) DescriptorSet 0
                              Decorate 23(sBuf) DescriptorSet 0
                              Decorate 32(utBuf) DescriptorSet 0
                              Decorate 38(itBuf) DescriptorSet 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeImage 6(float) Buffer sampled format:Unknown
               8:             TypePointer UniformConstant 7
         9(tBuf):      8(ptr) Variable UniformConstant
              11:             TypeSampler
              12:             TypePointer UniformConstant 11
           13(s):     12(ptr) Variable UniformConstant
              15:             TypeSampledImage 7
              17:             TypeInt 32 1
              18:     17(int) Constant 13
              20:             TypeVector 6(float) 4
              22:             TypePointer UniformConstant 15
        23(sBuf):     22(ptr) Variable UniformConstant
              29:             TypeInt 32 0
              30:             TypeImage 29(int) Buffer sampled format:Unknown
              31:             TypePointer UniformConstant 30
       32(utBuf):     31(ptr) Variable UniformConstant
              34:             TypeVector 29(int) 4
              36:             TypeImage 17(int) Buffer sampled format:Unknown
              37:             TypePointer UniformConstant 36
       38(itBuf):     37(ptr) Variable UniformConstant
              40:             TypeVector 17(int) 4
         4(main):           2 Function None 3
               5:             Label
              10:           7 Load 9(tBuf)
              14:          11 Load 13(s)
              16:          15 SampledImage 10 14
              19:           7 Image 16
              21:   20(fvec4) ImageFetch 19 18
              24:          15 Load 23(sBuf)
              25:           7 Image 24
              26:   20(fvec4) ImageFetch 25 18
              27:           7 Load 9(tBuf)
              28:   20(fvec4) ImageFetch 27 18
              33:          30 Load 32(utBuf)
              35:   34(ivec4) ImageFetch 33 18
              39:          36 Load 38(itBuf)
              41:   40(ivec4) ImageFetch 39 18
                              Return
                              FunctionEnd
