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

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 17 21
                              ExecutionMode 4 OriginUpperLeft
                              Source GLSL 460
                              Name 4  "main"
                              Name 9  "color"
                              Name 13  "u_Tex"
                              Name 17  "in_UV"
                              Name 21  "out_Color"
                              Decorate 13(u_Tex) DescriptorSet 0
                              Decorate 13(u_Tex) Binding 0
                              Decorate 17(in_UV) Location 0
                              Decorate 21(out_Color) Location 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 4
               8:             TypePointer Function 7(fvec4)
              10:             TypeImage 6(float) 2D sampled format:Unknown
              11:             TypeSampledImage 10
              12:             TypePointer UniformConstant 11
       13(u_Tex):     12(ptr) Variable UniformConstant
              15:             TypeVector 6(float) 2
              16:             TypePointer Input 15(fvec2)
       17(in_UV):     16(ptr) Variable Input
              20:             TypePointer Output 7(fvec4)
   21(out_Color):     20(ptr) Variable Output
         4(main):           2 Function None 3
               5:             Label
        9(color):      8(ptr) Variable Function
              14:          11 Load 13(u_Tex)
              18:   15(fvec2) Load 17(in_UV)
              19:    7(fvec4) ImageSampleImplicitLod 14 18
                              Store 9(color) 19
              22:    7(fvec4) Load 9(color)
                              Store 21(out_Color) 22
                              Return
                              FunctionEnd
