; SPIR-V
; Version: 1.1
; Generator: rspirv
; Bound: 413
OpCapability Shader
OpCapability ImageQuery
OpCapability ShaderNonUniform
OpExtension "SPV_EXT_descriptor_indexing"
%1 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %52 "main" %47 %50
OpExecutionMode %52 OriginUpperLeft
OpMemberDecorate %4 0 Offset 0
OpMemberDecorate %21 0 Offset 0
OpDecorate %24 DescriptorSet 0
OpDecorate %24 Binding 0
OpDecorate %28 DescriptorSet 0
OpDecorate %28 Binding 1
OpDecorate %30 DescriptorSet 0
OpDecorate %30 Binding 2
OpDecorate %32 DescriptorSet 0
OpDecorate %32 Binding 3
OpDecorate %34 DescriptorSet 0
OpDecorate %34 Binding 4
OpDecorate %36 DescriptorSet 0
OpDecorate %36 Binding 5
OpDecorate %38 DescriptorSet 0
OpDecorate %38 Binding 6
OpDecorate %40 DescriptorSet 0
OpDecorate %40 Binding 7
OpDecorate %42 DescriptorSet 0
OpDecorate %42 Binding 8
OpDecorate %43 Block
OpMemberDecorate %43 0 Offset 0
OpDecorate %47 Location 0
OpDecorate %47 Flat
OpDecorate %50 Location 0
OpDecorate %90 NonUniform
OpDecorate %91 NonUniform
OpDecorate %113 NonUniform
OpDecorate %114 NonUniform
OpDecorate %115 NonUniform
OpDecorate %116 NonUniform
OpDecorate %140 NonUniform
OpDecorate %141 NonUniform
OpDecorate %142 NonUniform
OpDecorate %143 NonUniform
OpDecorate %179 NonUniform
OpDecorate %180 NonUniform
OpDecorate %207 NonUniform
OpDecorate %208 NonUniform
OpDecorate %223 NonUniform
OpDecorate %224 NonUniform
OpDecorate %239 NonUniform
OpDecorate %240 NonUniform
OpDecorate %260 NonUniform
OpDecorate %261 NonUniform
OpDecorate %262 NonUniform
OpDecorate %263 NonUniform
OpDecorate %284 NonUniform
OpDecorate %285 NonUniform
OpDecorate %286 NonUniform
OpDecorate %287 NonUniform
OpDecorate %308 NonUniform
OpDecorate %309 NonUniform
OpDecorate %310 NonUniform
OpDecorate %311 NonUniform
OpDecorate %332 NonUniform
OpDecorate %333 NonUniform
OpDecorate %334 NonUniform
OpDecorate %335 NonUniform
OpDecorate %356 NonUniform
OpDecorate %357 NonUniform
OpDecorate %358 NonUniform
OpDecorate %359 NonUniform
OpDecorate %380 NonUniform
OpDecorate %381 NonUniform
OpDecorate %382 NonUniform
OpDecorate %383 NonUniform
OpDecorate %395 NonUniform
OpDecorate %396 NonUniform
%2 = OpTypeVoid
%3 = OpTypeInt 32 0
%4 = OpTypeStruct %3
%6 = OpTypeFloat 32
%5 = OpTypeImage %6 2D 0 0 0 1 Unknown
%7 = OpTypeRuntimeArray %5
%9 = OpConstant  %3  5
%8 = OpTypeArray %5 %9
%10 = OpTypeImage %6 2D 0 1 0 1 Unknown
%11 = OpTypeArray %10 %9
%12 = OpTypeImage %6 2D 0 0 1 1 Unknown
%13 = OpTypeArray %12 %9
%14 = OpTypeImage %6 2D 1 0 0 1 Unknown
%15 = OpTypeArray %14 %9
%16 = OpTypeImage %6 2D 0 0 0 2 Rgba32f
%17 = OpTypeArray %16 %9
%18 = OpTypeSampler
%19 = OpTypeArray %18 %9
%20 = OpTypeArray %18 %9
%21 = OpTypeStruct %3
%22 = OpTypeVector %6 4
%23 = OpTypeVector %3 2
%27 = OpConstant  %3  10
%26 = OpTypeArray %5 %27
%25 = OpTypePointer UniformConstant %26
%24 = OpVariable  %25  UniformConstant
%29 = OpTypePointer UniformConstant %8
%28 = OpVariable  %29  UniformConstant
%31 = OpTypePointer UniformConstant %11
%30 = OpVariable  %31  UniformConstant
%33 = OpTypePointer UniformConstant %13
%32 = OpVariable  %33  UniformConstant
%35 = OpTypePointer UniformConstant %15
%34 = OpVariable  %35  UniformConstant
%37 = OpTypePointer UniformConstant %17
%36 = OpVariable  %37  UniformConstant
%39 = OpTypePointer UniformConstant %19
%38 = OpVariable  %39  UniformConstant
%41 = OpTypePointer UniformConstant %20
%40 = OpVariable  %41  UniformConstant
%43 = OpTypeStruct %4
%44 = OpTypePointer Uniform %43
%42 = OpVariable  %44  Uniform
%48 = OpTypePointer Input %3
%47 = OpVariable  %48  Input
%51 = OpTypePointer Output %22
%50 = OpVariable  %51  Output
%53 = OpTypeFunction %2
%54 = OpTypePointer Uniform %4
%55 = OpConstant  %3  0
%57 = OpConstantComposite  %23  %55 %55
%58 = OpConstant  %6  0.0
%59 = OpConstantComposite  %22  %58 %58 %58 %58
%60 = OpTypeVector %6 2
%61 = OpConstantComposite  %60  %58 %58
%62 = OpTypeInt 32 1
%63 = OpConstant  %62  0
%64 = OpTypeVector %62 2
%65 = OpConstantComposite  %64  %63 %63
%67 = OpTypePointer Function %3
%69 = OpTypePointer Function %23
%71 = OpTypePointer Function %6
%73 = OpTypePointer Function %22
%75 = OpTypePointer Uniform %3
%79 = OpTypePointer UniformConstant %5
%97 = OpTypePointer UniformConstant %18
%100 = OpTypeSampledImage %5
%121 = OpTypePointer UniformConstant %14
%124 = OpTypePointer UniformConstant %18
%127 = OpTypeSampledImage %14
%150 = OpTypeBool
%151 = OpConstantNull  %22
%157 = OpTypeVector %150 2
%193 = OpTypePointer UniformConstant %10
%196 = OpTypeVector %3 3
%228 = OpTypePointer UniformConstant %12
%388 = OpTypePointer UniformConstant %16
%52 = OpFunction  %2  None %53
%45 = OpLabel
%68 = OpVariable  %69  Function %57
%72 = OpVariable  %73  Function %59
%66 = OpVariable  %67  Function %55
%70 = OpVariable  %71  Function %58
%49 = OpLoad  %3  %47
%46 = OpCompositeConstruct  %21  %49
%56 = OpAccessChain  %54  %42 %55
OpBranch %74
%74 = OpLabel
%76 = OpAccessChain  %75  %56 %55
%77 = OpLoad  %3  %76
%78 = OpCompositeExtract  %3  %46 0
%80 = OpAccessChain  %79  %24 %55
%81 = OpLoad  %5  %80
%82 = OpImageQuerySizeLod  %23  %81 %55
%83 = OpLoad  %23  %68
%84 = OpIAdd  %23  %83 %82
OpStore %68 %84
%85 = OpAccessChain  %79  %24 %77
%86 = OpLoad  %5  %85
%87 = OpImageQuerySizeLod  %23  %86 %55
%88 = OpLoad  %23  %68
%89 = OpIAdd  %23  %88 %87
OpStore %68 %89
%90 = OpAccessChain  %79  %24 %78
%91 = OpLoad  %5  %90
%92 = OpImageQuerySizeLod  %23  %91 %55
%93 = OpLoad  %23  %68
%94 = OpIAdd  %23  %93 %92
OpStore %68 %94
%95 = OpAccessChain  %79  %28 %55
%96 = OpLoad  %5  %95
%98 = OpAccessChain  %97  %38 %55
%99 = OpLoad  %18  %98
%101 = OpSampledImage  %100  %96 %99
%102 = OpImageGather  %22  %101 %61 %55
%103 = OpLoad  %22  %72
%104 = OpFAdd  %22  %103 %102
OpStore %72 %104
%105 = OpAccessChain  %79  %28 %77
%106 = OpLoad  %5  %105
%107 = OpAccessChain  %97  %38 %77
%108 = OpLoad  %18  %107
%109 = OpSampledImage  %100  %106 %108
%110 = OpImageGather  %22  %109 %61 %55
%111 = OpLoad  %22  %72
%112 = OpFAdd  %22  %111 %110
OpStore %72 %112
%113 = OpAccessChain  %79  %28 %78
%114 = OpLoad  %5  %113
%115 = OpAccessChain  %97  %38 %78
%116 = OpLoad  %18  %115
%117 = OpSampledImage  %100  %114 %116
%118 = OpImageGather  %22  %117 %61 %55
%119 = OpLoad  %22  %72
%120 = OpFAdd  %22  %119 %118
OpStore %72 %120
%122 = OpAccessChain  %121  %34 %55
%123 = OpLoad  %14  %122
%125 = OpAccessChain  %124  %40 %55
%126 = OpLoad  %18  %125
%128 = OpSampledImage  %127  %123 %126
%129 = OpImageDrefGather  %22  %128 %61 %58
%130 = OpLoad  %22  %72
%131 = OpFAdd  %22  %130 %129
OpStore %72 %131
%132 = OpAccessChain  %121  %34 %77
%133 = OpLoad  %14  %132
%134 = OpAccessChain  %124  %40 %77
%135 = OpLoad  %18  %134
%136 = OpSampledImage  %127  %133 %135
%137 = OpImageDrefGather  %22  %136 %61 %58
%138 = OpLoad  %22  %72
%139 = OpFAdd  %22  %138 %137
OpStore %72 %139
%140 = OpAccessChain  %121  %34 %78
%141 = OpLoad  %14  %140
%142 = OpAccessChain  %124  %40 %78
%143 = OpLoad  %18  %142
%144 = OpSampledImage  %127  %141 %143
%145 = OpImageDrefGather  %22  %144 %61 %58
%146 = OpLoad  %22  %72
%147 = OpFAdd  %22  %146 %145
OpStore %72 %147
%148 = OpAccessChain  %79  %24 %55
%149 = OpLoad  %5  %148
%152 = OpImageQueryLevels  %62  %149
%153 = OpULessThan  %150  %63 %152
OpSelectionMerge %154 None
OpBranchConditional %153 %155 %154
%155 = OpLabel
%156 = OpImageQuerySizeLod  %64  %149 %63
%158 = OpULessThan  %157  %65 %156
%159 = OpAll  %150  %158
OpBranchConditional %159 %160 %154
%160 = OpLabel
%161 = OpImageFetch  %22  %149 %65 Lod %63
OpBranch %154
%154 = OpLabel
%162 = OpPhi  %22  %151 %74 %151 %155 %161 %160
%163 = OpLoad  %22  %72
%164 = OpFAdd  %22  %163 %162
OpStore %72 %164
%165 = OpAccessChain  %79  %24 %77
%166 = OpLoad  %5  %165
%167 = OpImageQueryLevels  %62  %166
%168 = OpULessThan  %150  %63 %167
OpSelectionMerge %169 None
OpBranchConditional %168 %170 %169
%170 = OpLabel
%171 = OpImageQuerySizeLod  %64  %166 %63
%172 = OpULessThan  %157  %65 %171
%173 = OpAll  %150  %172
OpBranchConditional %173 %174 %169
%174 = OpLabel
%175 = OpImageFetch  %22  %166 %65 Lod %63
OpBranch %169
%169 = OpLabel
%176 = OpPhi  %22  %151 %154 %151 %170 %175 %174
%177 = OpLoad  %22  %72
%178 = OpFAdd  %22  %177 %176
OpStore %72 %178
%179 = OpAccessChain  %79  %24 %78
%180 = OpLoad  %5  %179
%181 = OpImageQueryLevels  %62  %180
%182 = OpULessThan  %150  %63 %181
OpSelectionMerge %183 None
OpBranchConditional %182 %184 %183
%184 = OpLabel
%185 = OpImageQuerySizeLod  %64  %180 %63
%186 = OpULessThan  %157  %65 %185
%187 = OpAll  %150  %186
OpBranchConditional %187 %188 %183
%188 = OpLabel
%189 = OpImageFetch  %22  %180 %65 Lod %63
OpBranch %183
%183 = OpLabel
%190 = OpPhi  %22  %151 %169 %151 %184 %189 %188
%191 = OpLoad  %22  %72
%192 = OpFAdd  %22  %191 %190
OpStore %72 %192
%194 = OpAccessChain  %193  %30 %55
%195 = OpLoad  %10  %194
%197 = OpImageQuerySizeLod  %196  %195 %55
%198 = OpCompositeExtract  %3  %197 2
%199 = OpLoad  %3  %66
%200 = OpIAdd  %3  %199 %198
OpStore %66 %200
%201 = OpAccessChain  %193  %30 %77
%202 = OpLoad  %10  %201
%203 = OpImageQuerySizeLod  %196  %202 %55
%204 = OpCompositeExtract  %3  %203 2
%205 = OpLoad  %3  %66
%206 = OpIAdd  %3  %205 %204
OpStore %66 %206
%207 = OpAccessChain  %193  %30 %78
%208 = OpLoad  %10  %207
%209 = OpImageQuerySizeLod  %196  %208 %55
%210 = OpCompositeExtract  %3  %209 2
%211 = OpLoad  %3  %66
%212 = OpIAdd  %3  %211 %210
OpStore %66 %212
%213 = OpAccessChain  %79  %28 %55
%214 = OpLoad  %5  %213
%215 = OpImageQueryLevels  %3  %214
%216 = OpLoad  %3  %66
%217 = OpIAdd  %3  %216 %215
OpStore %66 %217
%218 = OpAccessChain  %79  %28 %77
%219 = OpLoad  %5  %218
%220 = OpImageQueryLevels  %3  %219
%221 = OpLoad  %3  %66
%222 = OpIAdd  %3  %221 %220
OpStore %66 %222
%223 = OpAccessChain  %79  %28 %78
%224 = OpLoad  %5  %223
%225 = OpImageQueryLevels  %3  %224
%226 = OpLoad  %3  %66
%227 = OpIAdd  %3  %226 %225
OpStore %66 %227
%229 = OpAccessChain  %228  %32 %55
%230 = OpLoad  %12  %229
%231 = OpImageQuerySamples  %3  %230
%232 = OpLoad  %3  %66
%233 = OpIAdd  %3  %232 %231
OpStore %66 %233
%234 = OpAccessChain  %228  %32 %77
%235 = OpLoad  %12  %234
%236 = OpImageQuerySamples  %3  %235
%237 = OpLoad  %3  %66
%238 = OpIAdd  %3  %237 %236
OpStore %66 %238
%239 = OpAccessChain  %228  %32 %78
%240 = OpLoad  %12  %239
%241 = OpImageQuerySamples  %3  %240
%242 = OpLoad  %3  %66
%243 = OpIAdd  %3  %242 %241
OpStore %66 %243
%244 = OpAccessChain  %79  %28 %55
%245 = OpLoad  %5  %244
%246 = OpAccessChain  %97  %38 %55
%247 = OpLoad  %18  %246
%248 = OpSampledImage  %100  %245 %247
%249 = OpImageSampleImplicitLod  %22  %248 %61
%250 = OpLoad  %22  %72
%251 = OpFAdd  %22  %250 %249
OpStore %72 %251
%252 = OpAccessChain  %79  %28 %77
%253 = OpLoad  %5  %252
%254 = OpAccessChain  %97  %38 %77
%255 = OpLoad  %18  %254
%256 = OpSampledImage  %100  %253 %255
%257 = OpImageSampleImplicitLod  %22  %256 %61
%258 = OpLoad  %22  %72
%259 = OpFAdd  %22  %258 %257
OpStore %72 %259
%260 = OpAccessChain  %79  %28 %78
%261 = OpLoad  %5  %260
%262 = OpAccessChain  %97  %38 %78
%263 = OpLoad  %18  %262
%264 = OpSampledImage  %100  %261 %263
%265 = OpImageSampleImplicitLod  %22  %264 %61
%266 = OpLoad  %22  %72
%267 = OpFAdd  %22  %266 %265
OpStore %72 %267
%268 = OpAccessChain  %79  %28 %55
%269 = OpLoad  %5  %268
%270 = OpAccessChain  %97  %38 %55
%271 = OpLoad  %18  %270
%272 = OpSampledImage  %100  %269 %271
%273 = OpImageSampleImplicitLod  %22  %272 %61 Bias %58
%274 = OpLoad  %22  %72
%275 = OpFAdd  %22  %274 %273
OpStore %72 %275
%276 = OpAccessChain  %79  %28 %77
%277 = OpLoad  %5  %276
%278 = OpAccessChain  %97  %38 %77
%279 = OpLoad  %18  %278
%280 = OpSampledImage  %100  %277 %279
%281 = OpImageSampleImplicitLod  %22  %280 %61 Bias %58
%282 = OpLoad  %22  %72
%283 = OpFAdd  %22  %282 %281
OpStore %72 %283
%284 = OpAccessChain  %79  %28 %78
%285 = OpLoad  %5  %284
%286 = OpAccessChain  %97  %38 %78
%287 = OpLoad  %18  %286
%288 = OpSampledImage  %100  %285 %287
%289 = OpImageSampleImplicitLod  %22  %288 %61 Bias %58
%290 = OpLoad  %22  %72
%291 = OpFAdd  %22  %290 %289
OpStore %72 %291
%292 = OpAccessChain  %121  %34 %55
%293 = OpLoad  %14  %292
%294 = OpAccessChain  %124  %40 %55
%295 = OpLoad  %18  %294
%296 = OpSampledImage  %127  %293 %295
%297 = OpImageSampleDrefImplicitLod  %6  %296 %61 %58
%298 = OpLoad  %6  %70
%299 = OpFAdd  %6  %298 %297
OpStore %70 %299
%300 = OpAccessChain  %121  %34 %77
%301 = OpLoad  %14  %300
%302 = OpAccessChain  %124  %40 %77
%303 = OpLoad  %18  %302
%304 = OpSampledImage  %127  %301 %303
%305 = OpImageSampleDrefImplicitLod  %6  %304 %61 %58
%306 = OpLoad  %6  %70
%307 = OpFAdd  %6  %306 %305
OpStore %70 %307
%308 = OpAccessChain  %121  %34 %78
%309 = OpLoad  %14  %308
%310 = OpAccessChain  %124  %40 %78
%311 = OpLoad  %18  %310
%312 = OpSampledImage  %127  %309 %311
%313 = OpImageSampleDrefImplicitLod  %6  %312 %61 %58
%314 = OpLoad  %6  %70
%315 = OpFAdd  %6  %314 %313
OpStore %70 %315
%316 = OpAccessChain  %121  %34 %55
%317 = OpLoad  %14  %316
%318 = OpAccessChain  %124  %40 %55
%319 = OpLoad  %18  %318
%320 = OpSampledImage  %127  %317 %319
%321 = OpImageSampleDrefExplicitLod  %6  %320 %61 %58 Lod %58
%322 = OpLoad  %6  %70
%323 = OpFAdd  %6  %322 %321
OpStore %70 %323
%324 = OpAccessChain  %121  %34 %77
%325 = OpLoad  %14  %324
%326 = OpAccessChain  %124  %40 %77
%327 = OpLoad  %18  %326
%328 = OpSampledImage  %127  %325 %327
%329 = OpImageSampleDrefExplicitLod  %6  %328 %61 %58 Lod %58
%330 = OpLoad  %6  %70
%331 = OpFAdd  %6  %330 %329
OpStore %70 %331
%332 = OpAccessChain  %121  %34 %78
%333 = OpLoad  %14  %332
%334 = OpAccessChain  %124  %40 %78
%335 = OpLoad  %18  %334
%336 = OpSampledImage  %127  %333 %335
%337 = OpImageSampleDrefExplicitLod  %6  %336 %61 %58 Lod %58
%338 = OpLoad  %6  %70
%339 = OpFAdd  %6  %338 %337
OpStore %70 %339
%340 = OpAccessChain  %79  %28 %55
%341 = OpLoad  %5  %340
%342 = OpAccessChain  %97  %38 %55
%343 = OpLoad  %18  %342
%344 = OpSampledImage  %100  %341 %343
%345 = OpImageSampleExplicitLod  %22  %344 %61 Grad %61 %61
%346 = OpLoad  %22  %72
%347 = OpFAdd  %22  %346 %345
OpStore %72 %347
%348 = OpAccessChain  %79  %28 %77
%349 = OpLoad  %5  %348
%350 = OpAccessChain  %97  %38 %77
%351 = OpLoad  %18  %350
%352 = OpSampledImage  %100  %349 %351
%353 = OpImageSampleExplicitLod  %22  %352 %61 Grad %61 %61
%354 = OpLoad  %22  %72
%355 = OpFAdd  %22  %354 %353
OpStore %72 %355
%356 = OpAccessChain  %79  %28 %78
%357 = OpLoad  %5  %356
%358 = OpAccessChain  %97  %38 %78
%359 = OpLoad  %18  %358
%360 = OpSampledImage  %100  %357 %359
%361 = OpImageSampleExplicitLod  %22  %360 %61 Grad %61 %61
%362 = OpLoad  %22  %72
%363 = OpFAdd  %22  %362 %361
OpStore %72 %363
%364 = OpAccessChain  %79  %28 %55
%365 = OpLoad  %5  %364
%366 = OpAccessChain  %97  %38 %55
%367 = OpLoad  %18  %366
%368 = OpSampledImage  %100  %365 %367
%369 = OpImageSampleExplicitLod  %22  %368 %61 Lod %58
%370 = OpLoad  %22  %72
%371 = OpFAdd  %22  %370 %369
OpStore %72 %371
%372 = OpAccessChain  %79  %28 %77
%373 = OpLoad  %5  %372
%374 = OpAccessChain  %97  %38 %77
%375 = OpLoad  %18  %374
%376 = OpSampledImage  %100  %373 %375
%377 = OpImageSampleExplicitLod  %22  %376 %61 Lod %58
%378 = OpLoad  %22  %72
%379 = OpFAdd  %22  %378 %377
OpStore %72 %379
%380 = OpAccessChain  %79  %28 %78
%381 = OpLoad  %5  %380
%382 = OpAccessChain  %97  %38 %78
%383 = OpLoad  %18  %382
%384 = OpSampledImage  %100  %381 %383
%385 = OpImageSampleExplicitLod  %22  %384 %61 Lod %58
%386 = OpLoad  %22  %72
%387 = OpFAdd  %22  %386 %385
OpStore %72 %387
%389 = OpAccessChain  %388  %36 %55
%390 = OpLoad  %16  %389
%391 = OpLoad  %22  %72
OpImageWrite %390 %65 %391
%392 = OpAccessChain  %388  %36 %77
%393 = OpLoad  %16  %392
%394 = OpLoad  %22  %72
OpImageWrite %393 %65 %394
%395 = OpAccessChain  %388  %36 %78
%396 = OpLoad  %16  %395
%397 = OpLoad  %22  %72
OpImageWrite %396 %65 %397
%398 = OpLoad  %23  %68
%399 = OpLoad  %3  %66
%400 = OpCompositeConstruct  %23  %399 %399
%401 = OpIAdd  %23  %398 %400
%402 = OpConvertUToF  %60  %401
%403 = OpLoad  %22  %72
%404 = OpCompositeExtract  %6  %402 0
%405 = OpCompositeExtract  %6  %402 1
%406 = OpCompositeExtract  %6  %402 0
%407 = OpCompositeExtract  %6  %402 1
%408 = OpCompositeConstruct  %22  %404 %405 %406 %407
%409 = OpFAdd  %22  %403 %408
%410 = OpLoad  %6  %70
%411 = OpCompositeConstruct  %22  %410 %410 %410 %410
%412 = OpFAdd  %22  %409 %411
OpStore %50 %412
OpReturn
OpFunctionEnd