spv.image.frag
// Module Version 10000
// Generated by (magic number): 80007
// Id's are bound by 376

                              Capability Shader
                              Capability StorageImageMultisample
                              Capability ImageCubeArray
                              Capability ImageRect
                              Capability Image1D
                              Capability ImageBuffer
                              Capability ImageMSArray
                              Capability StorageImageExtendedFormats
                              Capability ImageQuery
                              Capability StorageImageWriteWithoutFormat
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 132 142 152 248 362 375
                              ExecutionMode 4 OriginUpperLeft
                              Source GLSL 450
                              Name 4  "main"
                              Name 9  "iv"
                              Name 15  "i1D"
                              Name 27  "i2D"
                              Name 38  "i3D"
                              Name 45  "iCube"
                              Name 55  "iCubeArray"
                              Name 62  "i2DRect"
                              Name 72  "i1DArray"
                              Name 82  "i2DArray"
                              Name 89  "iBuffer"
                              Name 98  "i2DMS"
                              Name 108  "i2DMSArray"
                              Name 127  "v"
                              Name 132  "ic1D"
                              Name 142  "ic2D"
                              Name 152  "ic3D"
                              Name 229  "ui"
                              Name 232  "ii1D"
                              Name 245  "ui2D"
                              Name 248  "value"
                              Name 357  "wo2D"
                              Name 362  "fragData"
                              Name 375  "ic4D"
                              Decorate 15(i1D) DescriptorSet 0
                              Decorate 15(i1D) Binding 0
                              Decorate 27(i2D) DescriptorSet 0
                              Decorate 27(i2D) Binding 1
                              Decorate 38(i3D) DescriptorSet 0
                              Decorate 38(i3D) Binding 2
                              Decorate 45(iCube) DescriptorSet 0
                              Decorate 45(iCube) Binding 3
                              Decorate 55(iCubeArray) DescriptorSet 0
                              Decorate 55(iCubeArray) Binding 4
                              Decorate 62(i2DRect) DescriptorSet 0
                              Decorate 62(i2DRect) Binding 5
                              Decorate 72(i1DArray) DescriptorSet 0
                              Decorate 72(i1DArray) Binding 6
                              Decorate 82(i2DArray) DescriptorSet 0
                              Decorate 82(i2DArray) Binding 7
                              Decorate 89(iBuffer) DescriptorSet 0
                              Decorate 89(iBuffer) Binding 8
                              Decorate 98(i2DMS) DescriptorSet 0
                              Decorate 98(i2DMS) Binding 9
                              Decorate 108(i2DMSArray) DescriptorSet 0
                              Decorate 108(i2DMSArray) Binding 10
                              Decorate 132(ic1D) Flat
                              Decorate 142(ic2D) Flat
                              Decorate 152(ic3D) Flat
                              Decorate 232(ii1D) DescriptorSet 0
                              Decorate 232(ii1D) Binding 11
                              Decorate 245(ui2D) DescriptorSet 0
                              Decorate 245(ui2D) Binding 12
                              Decorate 248(value) Flat
                              Decorate 357(wo2D) DescriptorSet 0
                              Decorate 357(wo2D) Binding 1
                              Decorate 357(wo2D) NonReadable
                              Decorate 375(ic4D) Flat
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeInt 32 1
               7:             TypeVector 6(int) 3
               8:             TypePointer Function 7(ivec3)
              10:      6(int) Constant 0
              11:    7(ivec3) ConstantComposite 10 10 10
              12:             TypeFloat 32
              13:             TypeImage 12(float) 1D nonsampled format:Rgba32f
              14:             TypePointer UniformConstant 13
         15(i1D):     14(ptr) Variable UniformConstant
              18:             TypeInt 32 0
              19:     18(int) Constant 0
              20:             TypePointer Function 6(int)
              25:             TypeImage 12(float) 2D nonsampled format:Rgba32f
              26:             TypePointer UniformConstant 25
         27(i2D):     26(ptr) Variable UniformConstant
              29:             TypeVector 6(int) 2
              36:             TypeImage 12(float) 3D nonsampled format:Rgba32f
              37:             TypePointer UniformConstant 36
         38(i3D):     37(ptr) Variable UniformConstant
              43:             TypeImage 12(float) Cube nonsampled format:Rgba32f
              44:             TypePointer UniformConstant 43
       45(iCube):     44(ptr) Variable UniformConstant
              53:             TypeImage 12(float) Cube array nonsampled format:Rgba32f
              54:             TypePointer UniformConstant 53
  55(iCubeArray):     54(ptr) Variable UniformConstant
              60:             TypeImage 12(float) Rect nonsampled format:Rgba32f
              61:             TypePointer UniformConstant 60
     62(i2DRect):     61(ptr) Variable UniformConstant
              70:             TypeImage 12(float) 1D array nonsampled format:Rgba32f
              71:             TypePointer UniformConstant 70
    72(i1DArray):     71(ptr) Variable UniformConstant
              80:             TypeImage 12(float) 2D array nonsampled format:Rg16
              81:             TypePointer UniformConstant 80
    82(i2DArray):     81(ptr) Variable UniformConstant
              87:             TypeImage 12(float) Buffer nonsampled format:Rgba32f
              88:             TypePointer UniformConstant 87
     89(iBuffer):     88(ptr) Variable UniformConstant
              96:             TypeImage 12(float) 2D multi-sampled nonsampled format:Rgba32f
              97:             TypePointer UniformConstant 96
       98(i2DMS):     97(ptr) Variable UniformConstant
             106:             TypeImage 12(float) 2D array multi-sampled nonsampled format:Rgba32f
             107:             TypePointer UniformConstant 106
 108(i2DMSArray):    107(ptr) Variable UniformConstant
             125:             TypeVector 12(float) 4
             126:             TypePointer Function 125(fvec4)
             128:   12(float) Constant 0
             129:  125(fvec4) ConstantComposite 128 128 128 128
             131:             TypePointer Input 6(int)
       132(ic1D):    131(ptr) Variable Input
             141:             TypePointer Input 29(ivec2)
       142(ic2D):    141(ptr) Variable Input
             151:             TypePointer Input 7(ivec3)
       152(ic3D):    151(ptr) Variable Input
             210:      6(int) Constant 1
             216:      6(int) Constant 2
             220:      6(int) Constant 3
             226:      6(int) Constant 4
             228:             TypePointer Function 18(int)
             230:             TypeImage 6(int) 1D nonsampled format:R32i
             231:             TypePointer UniformConstant 230
       232(ii1D):    231(ptr) Variable UniformConstant
             234:      6(int) Constant 10
             235:             TypePointer Image 6(int)
             237:     18(int) Constant 1
             243:             TypeImage 18(int) 2D nonsampled format:R32ui
             244:             TypePointer UniformConstant 243
       245(ui2D):    244(ptr) Variable UniformConstant
             247:             TypePointer Input 18(int)
      248(value):    247(ptr) Variable Input
             250:             TypePointer Image 18(int)
             256:      6(int) Constant 11
             270:      6(int) Constant 12
             284:      6(int) Constant 13
             298:      6(int) Constant 14
             312:      6(int) Constant 15
             326:      6(int) Constant 16
             340:      6(int) Constant 18
             341:      6(int) Constant 17
             349:     18(int) Constant 19
             355:             TypeImage 12(float) 2D nonsampled format:Unknown
             356:             TypePointer UniformConstant 355
       357(wo2D):    356(ptr) Variable UniformConstant
             361:             TypePointer Output 125(fvec4)
   362(fragData):    361(ptr) Variable Output
             367:             TypeBool
             370:             TypeVector 367(bool) 4
             373:             TypeVector 6(int) 4
             374:             TypePointer Input 373(ivec4)
       375(ic4D):    374(ptr) Variable Input
         4(main):           2 Function None 3
               5:             Label
           9(iv):      8(ptr) Variable Function
          127(v):    126(ptr) Variable Function
         229(ui):    228(ptr) Variable Function
                              Store 9(iv) 11
              16:          13 Load 15(i1D)
              17:      6(int) ImageQuerySize 16
              21:     20(ptr) AccessChain 9(iv) 19
              22:      6(int) Load 21
              23:      6(int) IAdd 22 17
              24:     20(ptr) AccessChain 9(iv) 19
                              Store 24 23
              28:          25 Load 27(i2D)
              30:   29(ivec2) ImageQuerySize 28
              31:    7(ivec3) Load 9(iv)
              32:   29(ivec2) VectorShuffle 31 31 0 1
              33:   29(ivec2) IAdd 32 30
              34:    7(ivec3) Load 9(iv)
              35:    7(ivec3) VectorShuffle 34 33 3 4 2
                              Store 9(iv) 35
              39:          36 Load 38(i3D)
              40:    7(ivec3) ImageQuerySize 39
              41:    7(ivec3) Load 9(iv)
              42:    7(ivec3) IAdd 41 40
                              Store 9(iv) 42
              46:          43 Load 45(iCube)
              47:   29(ivec2) ImageQuerySize 46
              48:    7(ivec3) Load 9(iv)
              49:   29(ivec2) VectorShuffle 48 48 0 1
              50:   29(ivec2) IAdd 49 47
              51:    7(ivec3) Load 9(iv)
              52:    7(ivec3) VectorShuffle 51 50 3 4 2
                              Store 9(iv) 52
              56:          53 Load 55(iCubeArray)
              57:    7(ivec3) ImageQuerySize 56
              58:    7(ivec3) Load 9(iv)
              59:    7(ivec3) IAdd 58 57
                              Store 9(iv) 59
              63:          60 Load 62(i2DRect)
              64:   29(ivec2) ImageQuerySize 63
              65:    7(ivec3) Load 9(iv)
              66:   29(ivec2) VectorShuffle 65 65 0 1
              67:   29(ivec2) IAdd 66 64
              68:    7(ivec3) Load 9(iv)
              69:    7(ivec3) VectorShuffle 68 67 3 4 2
                              Store 9(iv) 69
              73:          70 Load 72(i1DArray)
              74:   29(ivec2) ImageQuerySize 73
              75:    7(ivec3) Load 9(iv)
              76:   29(ivec2) VectorShuffle 75 75 0 1
              77:   29(ivec2) IAdd 76 74
              78:    7(ivec3) Load 9(iv)
              79:    7(ivec3) VectorShuffle 78 77 3 4 2
                              Store 9(iv) 79
              83:          80 Load 82(i2DArray)
              84:    7(ivec3) ImageQuerySize 83
              85:    7(ivec3) Load 9(iv)
              86:    7(ivec3) IAdd 85 84
                              Store 9(iv) 86
              90:          87 Load 89(iBuffer)
              91:      6(int) ImageQuerySize 90
              92:     20(ptr) AccessChain 9(iv) 19
              93:      6(int) Load 92
              94:      6(int) IAdd 93 91
              95:     20(ptr) AccessChain 9(iv) 19
                              Store 95 94
              99:          96 Load 98(i2DMS)
             100:   29(ivec2) ImageQuerySize 99
             101:    7(ivec3) Load 9(iv)
             102:   29(ivec2) VectorShuffle 101 101 0 1
             103:   29(ivec2) IAdd 102 100
             104:    7(ivec3) Load 9(iv)
             105:    7(ivec3) VectorShuffle 104 103 3 4 2
                              Store 9(iv) 105
             109:         106 Load 108(i2DMSArray)
             110:    7(ivec3) ImageQuerySize 109
             111:    7(ivec3) Load 9(iv)
             112:    7(ivec3) IAdd 111 110
                              Store 9(iv) 112
             113:          96 Load 98(i2DMS)
             114:      6(int) ImageQuerySamples 113
             115:     20(ptr) AccessChain 9(iv) 19
             116:      6(int) Load 115
             117:      6(int) IAdd 116 114
             118:     20(ptr) AccessChain 9(iv) 19
                              Store 118 117
             119:         106 Load 108(i2DMSArray)
             120:      6(int) ImageQuerySamples 119
             121:     20(ptr) AccessChain 9(iv) 19
             122:      6(int) Load 121
             123:      6(int) IAdd 122 120
             124:     20(ptr) AccessChain 9(iv) 19
                              Store 124 123
                              Store 127(v) 129
             130:          13 Load 15(i1D)
             133:      6(int) Load 132(ic1D)
             134:  125(fvec4) ImageRead 130 133
             135:  125(fvec4) Load 127(v)
             136:  125(fvec4) FAdd 135 134
                              Store 127(v) 136
             137:          13 Load 15(i1D)
             138:      6(int) Load 132(ic1D)
             139:  125(fvec4) Load 127(v)
                              ImageWrite 137 138 139
             140:          25 Load 27(i2D)
             143:   29(ivec2) Load 142(ic2D)
             144:  125(fvec4) ImageRead 140 143
             145:  125(fvec4) Load 127(v)
             146:  125(fvec4) FAdd 145 144
                              Store 127(v) 146
             147:          25 Load 27(i2D)
             148:   29(ivec2) Load 142(ic2D)
             149:  125(fvec4) Load 127(v)
                              ImageWrite 147 148 149
             150:          36 Load 38(i3D)
             153:    7(ivec3) Load 152(ic3D)
             154:  125(fvec4) ImageRead 150 153
             155:  125(fvec4) Load 127(v)
             156:  125(fvec4) FAdd 155 154
                              Store 127(v) 156
             157:          36 Load 38(i3D)
             158:    7(ivec3) Load 152(ic3D)
             159:  125(fvec4) Load 127(v)
                              ImageWrite 157 158 159
             160:          43 Load 45(iCube)
             161:    7(ivec3) Load 152(ic3D)
             162:  125(fvec4) ImageRead 160 161
             163:  125(fvec4) Load 127(v)
             164:  125(fvec4) FAdd 163 162
                              Store 127(v) 164
             165:          43 Load 45(iCube)
             166:    7(ivec3) Load 152(ic3D)
             167:  125(fvec4) Load 127(v)
                              ImageWrite 165 166 167
             168:          53 Load 55(iCubeArray)
             169:    7(ivec3) Load 152(ic3D)
             170:  125(fvec4) ImageRead 168 169
             171:  125(fvec4) Load 127(v)
             172:  125(fvec4) FAdd 171 170
                              Store 127(v) 172
             173:          53 Load 55(iCubeArray)
             174:    7(ivec3) Load 152(ic3D)
             175:  125(fvec4) Load 127(v)
                              ImageWrite 173 174 175
             176:          60 Load 62(i2DRect)
             177:   29(ivec2) Load 142(ic2D)
             178:  125(fvec4) ImageRead 176 177
             179:  125(fvec4) Load 127(v)
             180:  125(fvec4) FAdd 179 178
                              Store 127(v) 180
             181:          60 Load 62(i2DRect)
             182:   29(ivec2) Load 142(ic2D)
             183:  125(fvec4) Load 127(v)
                              ImageWrite 181 182 183
             184:          70 Load 72(i1DArray)
             185:   29(ivec2) Load 142(ic2D)
             186:  125(fvec4) ImageRead 184 185
             187:  125(fvec4) Load 127(v)
             188:  125(fvec4) FAdd 187 186
                              Store 127(v) 188
             189:          70 Load 72(i1DArray)
             190:   29(ivec2) Load 142(ic2D)
             191:  125(fvec4) Load 127(v)
                              ImageWrite 189 190 191
             192:          80 Load 82(i2DArray)
             193:    7(ivec3) Load 152(ic3D)
             194:  125(fvec4) ImageRead 192 193
             195:  125(fvec4) Load 127(v)
             196:  125(fvec4) FAdd 195 194
                              Store 127(v) 196
             197:          80 Load 82(i2DArray)
             198:    7(ivec3) Load 152(ic3D)
             199:  125(fvec4) Load 127(v)
                              ImageWrite 197 198 199
             200:          87 Load 89(iBuffer)
             201:      6(int) Load 132(ic1D)
             202:  125(fvec4) ImageRead 200 201
             203:  125(fvec4) Load 127(v)
             204:  125(fvec4) FAdd 203 202
                              Store 127(v) 204
             205:          87 Load 89(iBuffer)
             206:      6(int) Load 132(ic1D)
             207:  125(fvec4) Load 127(v)
                              ImageWrite 205 206 207
             208:          96 Load 98(i2DMS)
             209:   29(ivec2) Load 142(ic2D)
             211:  125(fvec4) ImageRead 208 209 Sample 210
             212:  125(fvec4) Load 127(v)
             213:  125(fvec4) FAdd 212 211
                              Store 127(v) 213
             214:          96 Load 98(i2DMS)
             215:   29(ivec2) Load 142(ic2D)
             217:  125(fvec4) Load 127(v)
                              ImageWrite 214 215 217 Sample 216
             218:         106 Load 108(i2DMSArray)
             219:    7(ivec3) Load 152(ic3D)
             221:  125(fvec4) ImageRead 218 219 Sample 220
             222:  125(fvec4) Load 127(v)
             223:  125(fvec4) FAdd 222 221
                              Store 127(v) 223
             224:         106 Load 108(i2DMSArray)
             225:    7(ivec3) Load 152(ic3D)
             227:  125(fvec4) Load 127(v)
                              ImageWrite 224 225 227 Sample 226
                              Store 229(ui) 19
             233:      6(int) Load 132(ic1D)
             236:    235(ptr) ImageTexelPointer 232(ii1D) 233 19
             238:      6(int) AtomicIAdd 236 237 19 234
             239:     20(ptr) AccessChain 9(iv) 19
             240:      6(int) Load 239
             241:      6(int) IAdd 240 238
             242:     20(ptr) AccessChain 9(iv) 19
                              Store 242 241
             246:   29(ivec2) Load 142(ic2D)
             249:     18(int) Load 248(value)
             251:    250(ptr) ImageTexelPointer 245(ui2D) 246 19
             252:     18(int) AtomicIAdd 251 237 19 249
             253:     18(int) Load 229(ui)
             254:     18(int) IAdd 253 252
                              Store 229(ui) 254
             255:      6(int) Load 132(ic1D)
             257:    235(ptr) ImageTexelPointer 232(ii1D) 255 19
             258:      6(int) AtomicSMin 257 237 19 256
             259:     20(ptr) AccessChain 9(iv) 19
             260:      6(int) Load 259
             261:      6(int) IAdd 260 258
             262:     20(ptr) AccessChain 9(iv) 19
                              Store 262 261
             263:   29(ivec2) Load 142(ic2D)
             264:     18(int) Load 248(value)
             265:    250(ptr) ImageTexelPointer 245(ui2D) 263 19
             266:     18(int) AtomicUMin 265 237 19 264
             267:     18(int) Load 229(ui)
             268:     18(int) IAdd 267 266
                              Store 229(ui) 268
             269:      6(int) Load 132(ic1D)
             271:    235(ptr) ImageTexelPointer 232(ii1D) 269 19
             272:      6(int) AtomicSMax 271 237 19 270
             273:     20(ptr) AccessChain 9(iv) 19
             274:      6(int) Load 273
             275:      6(int) IAdd 274 272
             276:     20(ptr) AccessChain 9(iv) 19
                              Store 276 275
             277:   29(ivec2) Load 142(ic2D)
             278:     18(int) Load 248(value)
             279:    250(ptr) ImageTexelPointer 245(ui2D) 277 19
             280:     18(int) AtomicUMax 279 237 19 278
             281:     18(int) Load 229(ui)
             282:     18(int) IAdd 281 280
                              Store 229(ui) 282
             283:      6(int) Load 132(ic1D)
             285:    235(ptr) ImageTexelPointer 232(ii1D) 283 19
             286:      6(int) AtomicAnd 285 237 19 284
             287:     20(ptr) AccessChain 9(iv) 19
             288:      6(int) Load 287
             289:      6(int) IAdd 288 286
             290:     20(ptr) AccessChain 9(iv) 19
                              Store 290 289
             291:   29(ivec2) Load 142(ic2D)
             292:     18(int) Load 248(value)
             293:    250(ptr) ImageTexelPointer 245(ui2D) 291 19
             294:     18(int) AtomicAnd 293 237 19 292
             295:     18(int) Load 229(ui)
             296:     18(int) IAdd 295 294
                              Store 229(ui) 296
             297:      6(int) Load 132(ic1D)
             299:    235(ptr) ImageTexelPointer 232(ii1D) 297 19
             300:      6(int) AtomicOr 299 237 19 298
             301:     20(ptr) AccessChain 9(iv) 19
             302:      6(int) Load 301
             303:      6(int) IAdd 302 300
             304:     20(ptr) AccessChain 9(iv) 19
                              Store 304 303
             305:   29(ivec2) Load 142(ic2D)
             306:     18(int) Load 248(value)
             307:    250(ptr) ImageTexelPointer 245(ui2D) 305 19
             308:     18(int) AtomicOr 307 237 19 306
             309:     18(int) Load 229(ui)
             310:     18(int) IAdd 309 308
                              Store 229(ui) 310
             311:      6(int) Load 132(ic1D)
             313:    235(ptr) ImageTexelPointer 232(ii1D) 311 19
             314:      6(int) AtomicXor 313 237 19 312
             315:     20(ptr) AccessChain 9(iv) 19
             316:      6(int) Load 315
             317:      6(int) IAdd 316 314
             318:     20(ptr) AccessChain 9(iv) 19
                              Store 318 317
             319:   29(ivec2) Load 142(ic2D)
             320:     18(int) Load 248(value)
             321:    250(ptr) ImageTexelPointer 245(ui2D) 319 19
             322:     18(int) AtomicXor 321 237 19 320
             323:     18(int) Load 229(ui)
             324:     18(int) IAdd 323 322
                              Store 229(ui) 324
             325:      6(int) Load 132(ic1D)
             327:    235(ptr) ImageTexelPointer 232(ii1D) 325 19
             328:      6(int) AtomicExchange 327 237 19 326
             329:     20(ptr) AccessChain 9(iv) 19
             330:      6(int) Load 329
             331:      6(int) IAdd 330 328
             332:     20(ptr) AccessChain 9(iv) 19
                              Store 332 331
             333:   29(ivec2) Load 142(ic2D)
             334:     18(int) Load 248(value)
             335:    250(ptr) ImageTexelPointer 245(ui2D) 333 19
             336:     18(int) AtomicExchange 335 237 19 334
             337:     18(int) Load 229(ui)
             338:     18(int) IAdd 337 336
                              Store 229(ui) 338
             339:      6(int) Load 132(ic1D)
             342:    235(ptr) ImageTexelPointer 232(ii1D) 339 19
             343:      6(int) AtomicCompareExchange 342 237 19 19 341 340
             344:     20(ptr) AccessChain 9(iv) 19
             345:      6(int) Load 344
             346:      6(int) IAdd 345 343
             347:     20(ptr) AccessChain 9(iv) 19
                              Store 347 346
             348:   29(ivec2) Load 142(ic2D)
             350:     18(int) Load 248(value)
             351:    250(ptr) ImageTexelPointer 245(ui2D) 348 19
             352:     18(int) AtomicCompareExchange 351 237 19 19 350 349
             353:     18(int) Load 229(ui)
             354:     18(int) IAdd 353 352
                              Store 229(ui) 354
             358:         355 Load 357(wo2D)
             359:   29(ivec2) Load 142(ic2D)
             360:  125(fvec4) Load 127(v)
                              ImageWrite 358 359 360
             363:     18(int) Load 229(ui)
             364:     20(ptr) AccessChain 9(iv) 237
             365:      6(int) Load 364
             366:     18(int) Bitcast 365
             368:   367(bool) INotEqual 363 366
             369:  125(fvec4) Load 127(v)
             371:  370(bvec4) CompositeConstruct 368 368 368 368
             372:  125(fvec4) Select 371 369 129
                              Store 362(fragData) 372
                              Return
                              FunctionEnd
