spv.imageLoadStoreLod.frag
error: SPIRV-Tools Validation Errors
error: Image Operand Lod can only be used with ExplicitLod opcodes and OpImageFetch
  %19 = OpImageRead %v4float %15 %int_1 Lod %int_3

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

                              Capability Shader
                              Capability ImageCubeArray
                              Capability SparseResidency
                              Capability Image1D
                              Capability ImageReadWriteLodAMD
                              Extension  "SPV_AMD_shader_image_load_store_lod"
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 77
                              ExecutionMode 4 OriginUpperLeft
                              Source GLSL 450
                              SourceExtension  "GL_AMD_shader_image_load_store_lod"
                              Name 4  "main"
                              Name 9  "f4"
                              Name 14  "i1D"
                              Name 24  "i2D"
                              Name 34  "i3D"
                              Name 46  "iiCube"
                              Name 53  "ii1DArray"
                              Name 60  "ui2DArray"
                              Name 64  "u4"
                              Name 65  "ResType"
                              Name 71  "uiCubeArray"
                              Name 77  "fragColor"
                              Decorate 14(i1D) DescriptorSet 0
                              Decorate 14(i1D) Binding 0
                              Decorate 24(i2D) DescriptorSet 0
                              Decorate 24(i2D) Binding 1
                              Decorate 34(i3D) DescriptorSet 0
                              Decorate 34(i3D) Binding 2
                              Decorate 46(iiCube) DescriptorSet 0
                              Decorate 46(iiCube) Binding 3
                              Decorate 53(ii1DArray) DescriptorSet 0
                              Decorate 53(ii1DArray) Binding 4
                              Decorate 60(ui2DArray) DescriptorSet 0
                              Decorate 60(ui2DArray) Binding 5
                              Decorate 71(uiCubeArray) DescriptorSet 0
                              Decorate 71(uiCubeArray) Binding 6
                              Decorate 77(fragColor) Location 0
               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) 1D nonsampled format:Rgba32f
              13:             TypePointer UniformConstant 12
         14(i1D):     13(ptr) Variable UniformConstant
              16:             TypeInt 32 1
              17:     16(int) Constant 1
              18:     16(int) Constant 3
              22:             TypeImage 6(float) 2D nonsampled format:Rgba32f
              23:             TypePointer UniformConstant 22
         24(i2D):     23(ptr) Variable UniformConstant
              26:             TypeVector 16(int) 2
              27:     16(int) Constant 2
              28:   26(ivec2) ConstantComposite 27 18
              32:             TypeImage 6(float) 3D nonsampled format:Rgba32f
              33:             TypePointer UniformConstant 32
         34(i3D):     33(ptr) Variable UniformConstant
              36:             TypeVector 16(int) 3
              37:     16(int) Constant 4
              38:     16(int) Constant 5
              39:     16(int) Constant 6
              40:   36(ivec3) ConstantComposite 37 38 39
              44:             TypeImage 16(int) Cube nonsampled format:Rgba32i
              45:             TypePointer UniformConstant 44
      46(iiCube):     45(ptr) Variable UniformConstant
              49:             TypeVector 16(int) 4
              51:             TypeImage 16(int) 1D array nonsampled format:Rgba32i
              52:             TypePointer UniformConstant 51
   53(ii1DArray):     52(ptr) Variable UniformConstant
              57:             TypeInt 32 0
              58:             TypeImage 57(int) 2D array nonsampled format:Rgba32ui
              59:             TypePointer UniformConstant 58
   60(ui2DArray):     59(ptr) Variable UniformConstant
              62:             TypeVector 57(int) 4
              63:             TypePointer Function 62(ivec4)
     65(ResType):             TypeStruct 16(int) 62(ivec4)
              69:             TypeImage 57(int) Cube array nonsampled format:Rgba32ui
              70:             TypePointer UniformConstant 69
 71(uiCubeArray):     70(ptr) Variable UniformConstant
              76:             TypePointer Output 7(fvec4)
   77(fragColor):     76(ptr) Variable Output
         4(main):           2 Function None 3
               5:             Label
           9(f4):      8(ptr) Variable Function
          64(u4):     63(ptr) Variable Function
                              Store 9(f4) 11
              15:          12 Load 14(i1D)
              19:    7(fvec4) ImageRead 15 17 Lod 18
              20:    7(fvec4) Load 9(f4)
              21:    7(fvec4) FAdd 20 19
                              Store 9(f4) 21
              25:          22 Load 24(i2D)
              29:    7(fvec4) ImageRead 25 28 Lod 18
              30:    7(fvec4) Load 9(f4)
              31:    7(fvec4) FAdd 30 29
                              Store 9(f4) 31
              35:          32 Load 34(i3D)
              41:    7(fvec4) ImageRead 35 40 Lod 18
              42:    7(fvec4) Load 9(f4)
              43:    7(fvec4) FAdd 42 41
                              Store 9(f4) 43
              47:          44 Load 46(iiCube)
              48:    7(fvec4) Load 9(f4)
              50:   49(ivec4) ConvertFToS 48
                              ImageWrite 47 40 50 Lod 18
              54:          51 Load 53(ii1DArray)
              55:    7(fvec4) Load 9(f4)
              56:   49(ivec4) ConvertFToS 55
                              ImageWrite 54 28 56 Lod 18
              61:          58 Load 60(ui2DArray)
              66: 65(ResType) ImageSparseRead 61 40 Lod 18
              67:   62(ivec4) CompositeExtract 66 1
                              Store 64(u4) 67
              68:     16(int) CompositeExtract 66 0
              72:          69 Load 71(uiCubeArray)
              73: 65(ResType) ImageSparseRead 72 40 Lod 18
              74:   62(ivec4) CompositeExtract 73 1
                              Store 64(u4) 74
              75:     16(int) CompositeExtract 73 0
              78:    7(fvec4) Load 9(f4)
              79:   62(ivec4) Load 64(u4)
              80:    7(fvec4) ConvertUToF 79
              81:    7(fvec4) FAdd 78 80
                              Store 77(fragColor) 81
                              Return
                              FunctionEnd
