spv.tpipSampleWeighted.frag
// Module Version 10000
// Generated by (magic number): 8000b
// Id's are bound by 43

                              Capability Shader
                              Capability TextureSampleWeightedQCOM
                              Extension  "SPV_QCOM_image_processing"
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 9 21
                              ExecutionMode 4 OriginUpperLeft
                              Source GLSL 450
                              SourceExtension  "GL_QCOM_image_processing"
                              Name 4  "main"
                              Name 9  "fragColor"
                              Name 12  "tex2D_src1"
                              Name 16  "samp"
                              Name 21  "v_texcoord"
                              Name 27  "tex2DArray_weights"
                              Name 34  "tex_samp"
                              Name 39  "tex_samp_array"
                              Name 42  "tex2D_src2"
                              Decorate 9(fragColor) Location 0
                              Decorate 12(tex2D_src1) DescriptorSet 0
                              Decorate 12(tex2D_src1) Binding 1
                              Decorate 16(samp) DescriptorSet 0
                              Decorate 16(samp) Binding 3
                              Decorate 21(v_texcoord) Location 0
                              Decorate 27(tex2DArray_weights) DescriptorSet 0
                              Decorate 27(tex2DArray_weights) Binding 0
                              Decorate 27(tex2DArray_weights) DecorationWeightTextureQCOM
                              Decorate 34(tex_samp) DescriptorSet 0
                              Decorate 34(tex_samp) Binding 4
                              Decorate 39(tex_samp_array) DescriptorSet 0
                              Decorate 39(tex_samp_array) Binding 5
                              Decorate 39(tex_samp_array) DecorationWeightTextureQCOM
                              Decorate 42(tex2D_src2) DescriptorSet 0
                              Decorate 42(tex2D_src2) Binding 2
               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) 2D sampled format:Unknown
              11:             TypePointer UniformConstant 10
  12(tex2D_src1):     11(ptr) Variable UniformConstant
              14:             TypeSampler
              15:             TypePointer UniformConstant 14
        16(samp):     15(ptr) Variable UniformConstant
              18:             TypeSampledImage 10
              20:             TypePointer Input 7(fvec4)
  21(v_texcoord):     20(ptr) Variable Input
              22:             TypeVector 6(float) 2
              25:             TypeImage 6(float) 2D array sampled format:Unknown
              26:             TypePointer UniformConstant 25
27(tex2DArray_weights):     26(ptr) Variable UniformConstant
              30:             TypeSampledImage 25
              33:             TypePointer UniformConstant 18
    34(tex_samp):     33(ptr) Variable UniformConstant
              38:             TypePointer UniformConstant 30
39(tex_samp_array):     38(ptr) Variable UniformConstant
  42(tex2D_src2):     11(ptr) Variable UniformConstant
         4(main):           2 Function None 3
               5:             Label
              13:          10 Load 12(tex2D_src1)
              17:          14 Load 16(samp)
              19:          18 SampledImage 13 17
              23:    7(fvec4) Load 21(v_texcoord)
              24:   22(fvec2) VectorShuffle 23 23 0 1
              28:          25 Load 27(tex2DArray_weights)
              29:          14 Load 16(samp)
              31:          30 SampledImage 28 29
              32:    7(fvec4) ImageSampleWeightedQCOM 19 24 31
                              Store 9(fragColor) 32
              35:          18 Load 34(tex_samp)
              36:    7(fvec4) Load 21(v_texcoord)
              37:   22(fvec2) VectorShuffle 36 36 0 1
              40:          30 Load 39(tex_samp_array)
              41:    7(fvec4) ImageSampleWeightedQCOM 35 37 40
                              Store 9(fragColor) 41
                              Return
                              FunctionEnd
