spv.paramMemory.frag
error: SPIRV-Tools Validation Errors
error: OpFunctionCall Argument <id> '38[image1]'s type does not match Function <id> '8's parameter type.
  %41 = OpFunctionCall %v4float %image_load_I21_vi2_ %image1 %param

// Module Version 10000
// Generated by (magic number): 80007
// Id's are bound by 69

                              Capability Shader
                              Capability StorageImageReadWithoutFormat
                              Capability StorageImageWriteWithoutFormat
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 27 66
                              ExecutionMode 4 OriginUpperLeft
                              Source ESSL 310
                              Name 4  "main"
                              Name 16  "image_load(I21;vi2;"
                              Name 14  "image"
                              Name 15  "coords"
                              Name 23  "image_store(I21;vi2;vf4;"
                              Name 20  "image"
                              Name 21  "coords"
                              Name 22  "data"
                              Name 27  "in_coords"
                              Name 35  "read1"
                              Name 38  "image1"
                              Name 39  "param"
                              Name 42  "read2"
                              Name 45  "image2"
                              Name 46  "param"
                              Name 49  "image3"
                              Name 53  "param"
                              Name 55  "param"
                              Name 57  "image4"
                              Name 61  "param"
                              Name 63  "param"
                              Name 66  "out_color"
                              Decorate 14(image) Coherent
                              Decorate 14(image) NonWritable
                              Decorate 20(image) Coherent
                              Decorate 20(image) NonReadable
                              Decorate 27(in_coords) Flat
                              Decorate 27(in_coords) Location 0
                              Decorate 38(image1) DescriptorSet 0
                              Decorate 38(image1) Binding 0
                              Decorate 38(image1) Coherent
                              Decorate 38(image1) NonWritable
                              Decorate 45(image2) DescriptorSet 0
                              Decorate 45(image2) Binding 2
                              Decorate 45(image2) NonWritable
                              Decorate 49(image3) DescriptorSet 0
                              Decorate 49(image3) Binding 1
                              Decorate 49(image3) Coherent
                              Decorate 49(image3) NonReadable
                              Decorate 57(image4) DescriptorSet 0
                              Decorate 57(image4) Binding 3
                              Decorate 57(image4) NonReadable
                              Decorate 66(out_color) Location 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeImage 6(float) 2D nonsampled format:Unknown
               8:             TypePointer UniformConstant 7
               9:             TypeInt 32 1
              10:             TypeVector 9(int) 2
              11:             TypePointer Function 10(ivec2)
              12:             TypeVector 6(float) 4
              13:             TypeFunction 12(fvec4) 8(ptr) 11(ptr)
              18:             TypePointer Function 12(fvec4)
              19:             TypeFunction 2 8(ptr) 11(ptr) 18(ptr)
              26:             TypePointer Input 10(ivec2)
   27(in_coords):     26(ptr) Variable Input
              36:             TypeImage 6(float) 2D nonsampled format:Rgba32f
              37:             TypePointer UniformConstant 36
      38(image1):     37(ptr) Variable UniformConstant
              43:             TypeImage 6(float) 2D nonsampled format:Rgba16f
              44:             TypePointer UniformConstant 43
      45(image2):     44(ptr) Variable UniformConstant
      49(image3):     37(ptr) Variable UniformConstant
              51:    6(float) Constant 1056964608
      57(image4):     44(ptr) Variable UniformConstant
              59:    6(float) Constant 1073741824
              65:             TypePointer Output 12(fvec4)
   66(out_color):     65(ptr) Variable Output
              67:    6(float) Constant 0
              68:   12(fvec4) ConstantComposite 67 67 67 67
         4(main):           2 Function None 3
               5:             Label
       35(read1):     18(ptr) Variable Function
       39(param):     11(ptr) Variable Function
       42(read2):     18(ptr) Variable Function
       46(param):     11(ptr) Variable Function
       53(param):     11(ptr) Variable Function
       55(param):     18(ptr) Variable Function
       61(param):     11(ptr) Variable Function
       63(param):     18(ptr) Variable Function
              40:   10(ivec2) Load 27(in_coords)
                              Store 39(param) 40
              41:   12(fvec4) FunctionCall 16(image_load(I21;vi2;) 38(image1) 39(param)
                              Store 35(read1) 41
              47:   10(ivec2) Load 27(in_coords)
                              Store 46(param) 47
              48:   12(fvec4) FunctionCall 16(image_load(I21;vi2;) 45(image2) 46(param)
                              Store 42(read2) 48
              50:   12(fvec4) Load 35(read1)
              52:   12(fvec4) VectorTimesScalar 50 51
              54:   10(ivec2) Load 27(in_coords)
                              Store 53(param) 54
                              Store 55(param) 52
              56:           2 FunctionCall 23(image_store(I21;vi2;vf4;) 49(image3) 53(param) 55(param)
              58:   12(fvec4) Load 42(read2)
              60:   12(fvec4) VectorTimesScalar 58 59
              62:   10(ivec2) Load 27(in_coords)
                              Store 61(param) 62
                              Store 63(param) 60
              64:           2 FunctionCall 23(image_store(I21;vi2;vf4;) 57(image4) 61(param) 63(param)
                              Store 66(out_color) 68
                              Return
                              FunctionEnd
16(image_load(I21;vi2;):   12(fvec4) Function None 13
       14(image):      8(ptr) FunctionParameter
      15(coords):     11(ptr) FunctionParameter
              17:             Label
              25:           7 Load 14(image)
              28:   10(ivec2) Load 27(in_coords)
              29:   12(fvec4) ImageRead 25 28
                              ReturnValue 29
                              FunctionEnd
23(image_store(I21;vi2;vf4;):           2 Function None 19
       20(image):      8(ptr) FunctionParameter
      21(coords):     11(ptr) FunctionParameter
        22(data):     18(ptr) FunctionParameter
              24:             Label
              32:           7 Load 20(image)
              33:   10(ivec2) Load 27(in_coords)
              34:   12(fvec4) Load 22(data)
                              ImageWrite 32 33 34
                              Return
                              FunctionEnd
