; 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