spv.130.frag
WARNING: 0:31: '#extension' : extension is only partially supported: GL_ARB_gpu_shader5

Validation failed
// Module Version 10000
// Generated by (magic number): 8000a
// Id's are bound by 205

                              Capability Shader
                              Capability ClipDistance
                              Capability SampledRect
                              Capability Sampled1D
                              Capability SampledCubeArray
                              Capability ImageQuery
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 17 68 79 99 173 184 185 186
                              ExecutionMode 4 OriginUpperLeft
                              Source GLSL 140
                              SourceExtension  "GL_ARB_gpu_shader5"
                              SourceExtension  "GL_ARB_shader_texture_lod"
                              SourceExtension  "GL_ARB_shading_language_420pack"
                              SourceExtension  "GL_ARB_texture_cube_map_array"
                              SourceExtension  "GL_ARB_texture_gather"
                              SourceExtension  "GL_ARB_texture_rectangle"
                              Name 4  "main"
                              Name 6  "bar3("
                              Name 8  "bar4("
                              Name 10  "bar5("
                              Name 12  "bar6("
                              Name 17  "o"
                              Name 21  "samp2D"
                              Name 37  "samp2DA"
                              Name 47  "samp2DR"
                              Name 55  "samp2DS"
                              Name 68  "io"
                              Name 72  "Sca"
                              Name 79  "i"
                              Name 87  "Isca"
                              Name 99  "uo"
                              Name 103  "Usca"
                              Name 114  "a"
                              Name 118  "Scas"
                              Name 124  "f"
                              Name 133  "c"
                              Name 154  "a1"
                              Name 157  "m43"
                              Name 160  "b"
                              Name 167  "sampC"
                              Name 173  "gl_ClipDistance"
                              Name 183  "b"
                              Name 184  "fflat"
                              Name 185  "fsmooth"
                              Name 186  "fnop"
                              Name 193  "bounds"
                              Name 194  "s2D"
                              Name 195  "s2DR"
                              Name 199  "s2DRS"
                              Name 203  "s1D"
                              Name 204  "s2DS"
                              Decorate 17(o) Location 0
                              Decorate 21(samp2D) DescriptorSet 0
                              Decorate 21(samp2D) Binding 2
                              Decorate 37(samp2DA) DescriptorSet 0
                              Decorate 37(samp2DA) Binding 5
                              Decorate 47(samp2DR) DescriptorSet 0
                              Decorate 47(samp2DR) Binding 4
                              Decorate 55(samp2DS) DescriptorSet 0
                              Decorate 55(samp2DS) Binding 3
                              Decorate 68(io) Location 1
                              Decorate 72(Sca) DescriptorSet 0
                              Decorate 72(Sca) Binding 6
                              Decorate 79(i) Location 0
                              Decorate 87(Isca) DescriptorSet 0
                              Decorate 87(Isca) Binding 7
                              Decorate 99(uo) Location 2
                              Decorate 103(Usca) DescriptorSet 0
                              Decorate 103(Usca) Binding 8
                              Decorate 118(Scas) DescriptorSet 0
                              Decorate 118(Scas) Binding 9
                              Decorate 167(sampC) DescriptorSet 0
                              Decorate 167(sampC) Binding 1
                              Decorate 173(gl_ClipDistance) BuiltIn ClipDistance
                              Decorate 184(fflat) Flat
                              Decorate 184(fflat) Location 1
                              Decorate 185(fsmooth) Location 2
                              Decorate 186(fnop) NoPerspective
                              Decorate 186(fnop) Location 3
                              Decorate 193(bounds) DescriptorSet 0
                              Decorate 193(bounds) Binding 0
                              Decorate 194(s2D) DescriptorSet 0
                              Decorate 194(s2D) Binding 0
                              Decorate 195(s2DR) DescriptorSet 0
                              Decorate 195(s2DR) Binding 0
                              Decorate 199(s2DRS) DescriptorSet 0
                              Decorate 199(s2DRS) Binding 0
                              Decorate 203(s1D) DescriptorSet 0
                              Decorate 203(s1D) Binding 0
                              Decorate 204(s2DS) DescriptorSet 0
                              Decorate 204(s2DS) Binding 0
               2:             TypeVoid
               3:             TypeFunction 2
              14:             TypeFloat 32
              15:             TypeVector 14(float) 4
              16:             TypePointer Output 15(fvec4)
           17(o):     16(ptr) Variable Output
              18:             TypeImage 14(float) 2D sampled format:Unknown
              19:             TypeSampledImage 18
              20:             TypePointer UniformConstant 19
      21(samp2D):     20(ptr) Variable UniformConstant
              23:             TypeVector 14(float) 2
              24:   14(float) Constant 1050253722
              25:   23(fvec2) ConstantComposite 24 24
              26:             TypeInt 32 1
              27:             TypeVector 26(int) 2
              28:     26(int) Constant 1
              29:   27(ivec2) ConstantComposite 28 28
              30:     26(int) Constant 0
              34:             TypeImage 14(float) 2D array sampled format:Unknown
              35:             TypeSampledImage 34
              36:             TypePointer UniformConstant 35
     37(samp2DA):     36(ptr) Variable UniformConstant
              39:             TypeVector 14(float) 3
              40:   39(fvec3) ConstantComposite 24 24 24
              44:             TypeImage 14(float) Rect sampled format:Unknown
              45:             TypeSampledImage 44
              46:             TypePointer UniformConstant 45
     47(samp2DR):     46(ptr) Variable UniformConstant
              52:             TypeImage 14(float) 2D depth sampled format:Unknown
              53:             TypeSampledImage 52
              54:             TypePointer UniformConstant 53
     55(samp2DS):     54(ptr) Variable UniformConstant
              57:   14(float) Constant 1067869798
              62:     26(int) Constant 2
              66:             TypeVector 26(int) 3
              67:             TypePointer Output 66(ivec3)
          68(io):     67(ptr) Variable Output
              69:             TypeImage 14(float) Cube array sampled format:Unknown
              70:             TypeSampledImage 69
              71:             TypePointer UniformConstant 70
         72(Sca):     71(ptr) Variable UniformConstant
              74:     26(int) Constant 3
              78:             TypePointer Input 15(fvec4)
           79(i):     78(ptr) Variable Input
              84:             TypeImage 26(int) Cube array sampled format:Unknown
              85:             TypeSampledImage 84
              86:             TypePointer UniformConstant 85
        87(Isca):     86(ptr) Variable UniformConstant
              90:   14(float) Constant 1060320051
              91:             TypeVector 26(int) 4
              96:             TypeInt 32 0
              97:             TypeVector 96(int) 4
              98:             TypePointer Output 97(ivec4)
          99(uo):     98(ptr) Variable Output
             100:             TypeImage 96(int) Cube array sampled format:Unknown
             101:             TypeSampledImage 100
             102:             TypePointer UniformConstant 101
       103(Usca):    102(ptr) Variable UniformConstant
             109:   14(float) Constant 1071225242
             113:             TypePointer Private 39(fvec3)
          114(a):    113(ptr) Variable Private
             115:             TypeImage 14(float) Cube depth array sampled format:Unknown
             116:             TypeSampledImage 115
             117:             TypePointer UniformConstant 116
       118(Scas):    117(ptr) Variable UniformConstant
             123:             TypePointer Function 14(float)
             127:     96(int) Constant 1
             128:             TypePointer Input 14(float)
             132:             TypePointer Function 91(ivec4)
             136:   14(float) Constant 1036831949
             137:   39(fvec3) ConstantComposite 136 136 136
             138:   14(float) Constant 1045220557
             139:   39(fvec3) ConstantComposite 138 138 138
             155:             TypeMatrix 39(fvec3) 4
             156:             TypePointer Function 155
             161:   14(float) Constant 1073741824
             164:             TypeImage 14(float) Cube sampled format:Unknown
             165:             TypeSampledImage 164
             166:             TypePointer UniformConstant 165
      167(sampC):    166(ptr) Variable UniformConstant
             170:     96(int) Constant 4
             171:             TypeArray 14(float) 170
             172:             TypePointer Input 171
173(gl_ClipDistance):    172(ptr) Variable Input
             176:             TypePointer Output 14(float)
             182:             TypePointer Private 14(float)
          183(b):    182(ptr) Variable Private
      184(fflat):    128(ptr) Variable Input
    185(fsmooth):    128(ptr) Variable Input
       186(fnop):    128(ptr) Variable Input
             187:     96(int) Constant 3
             188:             TypeArray 26(int) 187
             189:     26(int) Constant 10
             190:     26(int) Constant 23
             191:     26(int) Constant 32
             192:         188 ConstantComposite 189 190 191
     193(bounds):     20(ptr) Variable UniformConstant
        194(s2D):     20(ptr) Variable UniformConstant
       195(s2DR):     46(ptr) Variable UniformConstant
             196:             TypeImage 14(float) Rect depth sampled format:Unknown
             197:             TypeSampledImage 196
             198:             TypePointer UniformConstant 197
      199(s2DRS):    198(ptr) Variable UniformConstant
             200:             TypeImage 14(float) 1D sampled format:Unknown
             201:             TypeSampledImage 200
             202:             TypePointer UniformConstant 201
        203(s1D):    202(ptr) Variable UniformConstant
       204(s2DS):     54(ptr) Variable UniformConstant
         4(main):           2 Function None 3
               5:             Label
             168:         165 Load 167(sampC)
             169:   15(fvec4) ImageGather 168 139 30
                              Store 17(o) 169
             174:    128(ptr) AccessChain 173(gl_ClipDistance) 74
             175:   14(float) Load 174
             177:    176(ptr) AccessChain 17(o) 127
                              Store 177 175
             178:           2 FunctionCall 6(bar3()
             179:           2 FunctionCall 8(bar4()
             180:           2 FunctionCall 10(bar5()
             181:           2 FunctionCall 12(bar6()
                              Return
                              FunctionEnd
        6(bar3():           2 Function None 3
               7:             Label
              22:          19 Load 21(samp2D)
              31:   15(fvec4) ImageGather 22 25 30 ConstOffset 29
              32:   15(fvec4) Load 17(o)
              33:   15(fvec4) FAdd 32 31
                              Store 17(o) 33
              38:          35 Load 37(samp2DA)
              41:   15(fvec4) ImageGather 38 40 30 ConstOffset 29
              42:   15(fvec4) Load 17(o)
              43:   15(fvec4) FAdd 42 41
                              Store 17(o) 43
                              Return
                              FunctionEnd
        8(bar4():           2 Function None 3
               9:             Label
              48:          45 Load 47(samp2DR)
              49:   15(fvec4) ImageGather 48 25 30 ConstOffset 29
              50:   15(fvec4) Load 17(o)
              51:   15(fvec4) FAdd 50 49
                              Store 17(o) 51
              56:          53 Load 55(samp2DS)
              58:   15(fvec4) ImageDrefGather 56 25 57 ConstOffset 29
              59:   15(fvec4) Load 17(o)
              60:   15(fvec4) FAdd 59 58
                              Store 17(o) 60
              61:          19 Load 21(samp2D)
              63:   15(fvec4) ImageGather 61 25 62 ConstOffset 29
              64:   15(fvec4) Load 17(o)
              65:   15(fvec4) FAdd 64 63
                              Store 17(o) 65
                              Return
                              FunctionEnd
       10(bar5():           2 Function None 3
              11:             Label
          124(f):    123(ptr) Variable Function
          133(c):    132(ptr) Variable Function
              73:          70 Load 72(Sca)
              75:          69 Image 73
              76:   66(ivec3) ImageQuerySizeLod 75 74
                              Store 68(io) 76
              77:          70 Load 72(Sca)
              80:   15(fvec4) Load 79(i)
              81:   15(fvec4) ImageSampleImplicitLod 77 80
              82:   15(fvec4) Load 17(o)
              83:   15(fvec4) FAdd 82 81
                              Store 17(o) 83
              88:          85 Load 87(Isca)
              89:   15(fvec4) Load 79(i)
              92:   91(ivec4) ImageSampleImplicitLod 88 89 Bias 90
              93:   66(ivec3) VectorShuffle 92 92 0 1 2
              94:   66(ivec3) Load 68(io)
              95:   66(ivec3) IAdd 94 93
                              Store 68(io) 95
             104:         101 Load 103(Usca)
             105:   15(fvec4) Load 79(i)
             106:   97(ivec4) ImageSampleImplicitLod 104 105
                              Store 99(uo) 106
             107:          70 Load 72(Sca)
             108:   15(fvec4) Load 79(i)
             110:   15(fvec4) ImageSampleExplicitLod 107 108 Lod 109
             111:   15(fvec4) Load 17(o)
             112:   15(fvec4) FAdd 111 110
                              Store 17(o) 112
             119:         116 Load 118(Scas)
             120:         115 Image 119
             121:   66(ivec3) ImageQuerySizeLod 120 74
             122:   39(fvec3) ConvertSToF 121
                              Store 114(a) 122
             125:         116 Load 118(Scas)
             126:   15(fvec4) Load 79(i)
             129:    128(ptr) AccessChain 79(i) 127
             130:   14(float) Load 129
             131:   14(float) ImageSampleDrefImplicitLod 125 126 130
                              Store 124(f) 131
             134:          85 Load 87(Isca)
             135:   15(fvec4) Load 79(i)
             140:   91(ivec4) ImageSampleExplicitLod 134 135 Grad 137 139
                              Store 133(c) 140
             141:   39(fvec3) Load 114(a)
             142:   14(float) Load 124(f)
             143:   91(ivec4) Load 133(c)
             144:   15(fvec4) ConvertSToF 143
             145:   15(fvec4) CompositeConstruct 142 142 142 142
             146:   15(fvec4) FAdd 145 144
             147:   14(float) CompositeExtract 141 0
             148:   14(float) CompositeExtract 141 1
             149:   14(float) CompositeExtract 141 2
             150:   14(float) CompositeExtract 146 0
             151:   15(fvec4) CompositeConstruct 147 148 149 150
             152:   15(fvec4) Load 17(o)
             153:   15(fvec4) FAdd 152 151
                              Store 17(o) 153
                              Return
                              FunctionEnd
       12(bar6():           2 Function None 3
              13:             Label
         154(a1):    123(ptr) Variable Function
        157(m43):    156(ptr) Variable Function
          160(b):    123(ptr) Variable Function
             158:    123(ptr) AccessChain 157(m43) 74 127
             159:   14(float) Load 158
                              Store 154(a1) 159
             162:   14(float) Load 154(a1)
             163:   14(float) FMul 161 162
                              Store 160(b) 163
                              Return
                              FunctionEnd
