spv.1.4.texture.frag
// Module Version 10400
// Generated by (magic number): 80008
// Id's are bound by 79

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 15 19 28 40 51 54 76 78
                              ExecutionMode 4 OriginUpperLeft
                              Source GLSL 450
                              Name 4  "main"
                              Name 9  "color"
                              Name 15  "texSampler2D"
                              Name 19  "coords2D"
                              Name 28  "itexSampler2D"
                              Name 40  "utexSampler2D"
                              Name 51  "iCoords2D"
                              Name 54  "iLod"
                              Name 76  "t"
                              Name 78  "color"
                              Decorate 15(texSampler2D) DescriptorSet 0
                              Decorate 15(texSampler2D) Binding 0
                              Decorate 28(itexSampler2D) DescriptorSet 0
                              Decorate 28(itexSampler2D) Binding 0
                              Decorate 40(utexSampler2D) DescriptorSet 0
                              Decorate 40(utexSampler2D) Binding 0
                              Decorate 51(iCoords2D) Flat
                              Decorate 54(iLod) Flat
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 4
               8:             TypePointer Function 7(fvec4)
              10:    6(float) Constant 0
              11:    7(fvec4) ConstantComposite 10 10 10 10
              12:             TypeImage 6(float) 2D sampled format:Unknown
              13:             TypeSampledImage 12
              14:             TypePointer UniformConstant 13
15(texSampler2D):     14(ptr) Variable UniformConstant
              17:             TypeVector 6(float) 2
              18:             TypePointer Input 17(fvec2)
    19(coords2D):     18(ptr) Variable Input
              24:             TypeInt 32 1
              25:             TypeImage 24(int) 2D sampled format:Unknown
              26:             TypeSampledImage 25
              27:             TypePointer UniformConstant 26
28(itexSampler2D):     27(ptr) Variable UniformConstant
              31:             TypeVector 24(int) 4
              36:             TypeInt 32 0
              37:             TypeImage 36(int) 2D sampled format:Unknown
              38:             TypeSampledImage 37
              39:             TypePointer UniformConstant 38
40(utexSampler2D):     39(ptr) Variable UniformConstant
              43:             TypeVector 36(int) 4
              49:             TypeVector 24(int) 2
              50:             TypePointer Input 49(ivec2)
   51(iCoords2D):     50(ptr) Variable Input
              53:             TypePointer Input 24(int)
        54(iLod):     53(ptr) Variable Input
           76(t):     18(ptr) Variable Input
              77:             TypePointer Output 7(fvec4)
       78(color):     77(ptr) Variable Output
         4(main):           2 Function None 3
               5:             Label
        9(color):      8(ptr) Variable Function
                              Store 9(color) 11
              16:          13 Load 15(texSampler2D)
              20:   17(fvec2) Load 19(coords2D)
              21:    7(fvec4) ImageSampleImplicitLod 16 20
              22:    7(fvec4) Load 9(color)
              23:    7(fvec4) FAdd 22 21
                              Store 9(color) 23
              29:          26 Load 28(itexSampler2D)
              30:   17(fvec2) Load 19(coords2D)
              32:   31(ivec4) ImageSampleImplicitLod 29 30 SignExtend 
              33:    7(fvec4) ConvertSToF 32
              34:    7(fvec4) Load 9(color)
              35:    7(fvec4) FAdd 34 33
                              Store 9(color) 35
              41:          38 Load 40(utexSampler2D)
              42:   17(fvec2) Load 19(coords2D)
              44:   43(ivec4) ImageSampleImplicitLod 41 42 ZeroExtend 
              45:    7(fvec4) ConvertUToF 44
              46:    7(fvec4) Load 9(color)
              47:    7(fvec4) FAdd 46 45
                              Store 9(color) 47
              48:          13 Load 15(texSampler2D)
              52:   49(ivec2) Load 51(iCoords2D)
              55:     24(int) Load 54(iLod)
              56:          12 Image 48
              57:    7(fvec4) ImageFetch 56 52 Lod 55
              58:    7(fvec4) Load 9(color)
              59:    7(fvec4) FAdd 58 57
                              Store 9(color) 59
              60:          26 Load 28(itexSampler2D)
              61:   49(ivec2) Load 51(iCoords2D)
              62:     24(int) Load 54(iLod)
              63:          25 Image 60
              64:   31(ivec4) ImageFetch 63 61 Lod SignExtend 62
              65:    7(fvec4) ConvertSToF 64
              66:    7(fvec4) Load 9(color)
              67:    7(fvec4) FAdd 66 65
                              Store 9(color) 67
              68:          38 Load 40(utexSampler2D)
              69:   49(ivec2) Load 51(iCoords2D)
              70:     24(int) Load 54(iLod)
              71:          37 Image 68
              72:   43(ivec4) ImageFetch 71 69 Lod ZeroExtend 70
              73:    7(fvec4) ConvertUToF 72
              74:    7(fvec4) Load 9(color)
              75:    7(fvec4) FAdd 74 73
                              Store 9(color) 75
                              Return
                              FunctionEnd
