#!amber # AmberScript generated by GraphicsFuzz SHADER vertex gfz_vert PASSTHROUGH SHADER fragment gfz_frag SPIRV-ASM ; SPIR-V ; Version: 1.0 ; Generator: Khronos Glslang Reference Front End; 7 ; Bound: 417 ; Schema: 0 OpCapability Shader %1 = OpExtInstImport "GLSL.std.450" OpMemoryModel Logical GLSL450 OpEntryPoint Fragment %4 "main" %370 %405 OpExecutionMode %4 OriginUpperLeft OpSource ESSL 310 OpName %4 "main" OpName %9 "resolution" OpName %16 "sums" OpName %23 "c" OpName %33 "r" OpName %42 "buf0" OpMemberName %42 0 "m22" OpName %44 "" OpName %65 "c" OpName %73 "r" OpName %84 "buf1" OpMemberName %84 0 "m23" OpName %86 "" OpName %104 "c" OpName %112 "r" OpName %123 "buf2" OpMemberName %123 0 "m24" OpName %125 "" OpName %143 "c" OpName %151 "r" OpName %160 "buf3" OpMemberName %160 0 "m32" OpName %162 "" OpName %180 "c" OpName %188 "r" OpName %197 "buf4" OpMemberName %197 0 "m33" OpName %199 "" OpName %218 "c" OpName %226 "r" OpName %235 "buf5" OpMemberName %235 0 "m34" OpName %237 "" OpName %256 "c" OpName %264 "r" OpName %273 "buf6" OpMemberName %273 0 "m42" OpName %275 "" OpName %294 "c" OpName %302 "r" OpName %311 "buf7" OpMemberName %311 0 "m43" OpName %313 "" OpName %332 "c" OpName %340 "r" OpName %349 "buf8" OpMemberName %349 0 "m44" OpName %351 "" OpName %368 "region_x" OpName %370 "gl_FragCoord" OpName %382 "region_y" OpName %391 "overall_region" OpName %405 "_GLF_color" OpDecorate %23 RelaxedPrecision OpDecorate %29 RelaxedPrecision OpDecorate %33 RelaxedPrecision OpDecorate %39 RelaxedPrecision OpMemberDecorate %42 0 ColMajor OpMemberDecorate %42 0 Offset 0 OpMemberDecorate %42 0 MatrixStride 16 OpDecorate %42 Block OpDecorate %44 DescriptorSet 0 OpDecorate %44 Binding 0 OpDecorate %45 RelaxedPrecision OpDecorate %46 RelaxedPrecision OpDecorate %54 RelaxedPrecision OpDecorate %56 RelaxedPrecision OpDecorate %57 RelaxedPrecision OpDecorate %58 RelaxedPrecision OpDecorate %65 RelaxedPrecision OpDecorate %71 RelaxedPrecision OpDecorate %73 RelaxedPrecision OpDecorate %79 RelaxedPrecision OpMemberDecorate %84 0 ColMajor OpMemberDecorate %84 0 Offset 0 OpMemberDecorate %84 0 MatrixStride 16 OpDecorate %84 Block OpDecorate %86 DescriptorSet 0 OpDecorate %86 Binding 1 OpDecorate %87 RelaxedPrecision OpDecorate %88 RelaxedPrecision OpDecorate %95 RelaxedPrecision OpDecorate %96 RelaxedPrecision OpDecorate %97 RelaxedPrecision OpDecorate %98 RelaxedPrecision OpDecorate %104 RelaxedPrecision OpDecorate %110 RelaxedPrecision OpDecorate %112 RelaxedPrecision OpDecorate %118 RelaxedPrecision OpMemberDecorate %123 0 ColMajor OpMemberDecorate %123 0 Offset 0 OpMemberDecorate %123 0 MatrixStride 16 OpDecorate %123 Block OpDecorate %125 DescriptorSet 0 OpDecorate %125 Binding 2 OpDecorate %126 RelaxedPrecision OpDecorate %127 RelaxedPrecision OpDecorate %134 RelaxedPrecision OpDecorate %135 RelaxedPrecision OpDecorate %136 RelaxedPrecision OpDecorate %137 RelaxedPrecision OpDecorate %143 RelaxedPrecision OpDecorate %149 RelaxedPrecision OpDecorate %151 RelaxedPrecision OpDecorate %157 RelaxedPrecision OpMemberDecorate %160 0 ColMajor OpMemberDecorate %160 0 Offset 0 OpMemberDecorate %160 0 MatrixStride 16 OpDecorate %160 Block OpDecorate %162 DescriptorSet 0 OpDecorate %162 Binding 3 OpDecorate %163 RelaxedPrecision OpDecorate %164 RelaxedPrecision OpDecorate %171 RelaxedPrecision OpDecorate %172 RelaxedPrecision OpDecorate %173 RelaxedPrecision OpDecorate %174 RelaxedPrecision OpDecorate %180 RelaxedPrecision OpDecorate %186 RelaxedPrecision OpDecorate %188 RelaxedPrecision OpDecorate %194 RelaxedPrecision OpMemberDecorate %197 0 ColMajor OpMemberDecorate %197 0 Offset 0 OpMemberDecorate %197 0 MatrixStride 16 OpDecorate %197 Block OpDecorate %199 DescriptorSet 0 OpDecorate %199 Binding 4 OpDecorate %200 RelaxedPrecision OpDecorate %201 RelaxedPrecision OpDecorate %208 RelaxedPrecision OpDecorate %209 RelaxedPrecision OpDecorate %210 RelaxedPrecision OpDecorate %211 RelaxedPrecision OpDecorate %218 RelaxedPrecision OpDecorate %224 RelaxedPrecision OpDecorate %226 RelaxedPrecision OpDecorate %232 RelaxedPrecision OpMemberDecorate %235 0 ColMajor OpMemberDecorate %235 0 Offset 0 OpMemberDecorate %235 0 MatrixStride 16 OpDecorate %235 Block OpDecorate %237 DescriptorSet 0 OpDecorate %237 Binding 5 OpDecorate %238 RelaxedPrecision OpDecorate %239 RelaxedPrecision OpDecorate %246 RelaxedPrecision OpDecorate %247 RelaxedPrecision OpDecorate %248 RelaxedPrecision OpDecorate %249 RelaxedPrecision OpDecorate %256 RelaxedPrecision OpDecorate %262 RelaxedPrecision OpDecorate %264 RelaxedPrecision OpDecorate %270 RelaxedPrecision OpMemberDecorate %273 0 ColMajor OpMemberDecorate %273 0 Offset 0 OpMemberDecorate %273 0 MatrixStride 16 OpDecorate %273 Block OpDecorate %275 DescriptorSet 0 OpDecorate %275 Binding 6 OpDecorate %276 RelaxedPrecision OpDecorate %277 RelaxedPrecision OpDecorate %284 RelaxedPrecision OpDecorate %285 RelaxedPrecision OpDecorate %286 RelaxedPrecision OpDecorate %287 RelaxedPrecision OpDecorate %294 RelaxedPrecision OpDecorate %300 RelaxedPrecision OpDecorate %302 RelaxedPrecision OpDecorate %308 RelaxedPrecision OpMemberDecorate %311 0 ColMajor OpMemberDecorate %311 0 Offset 0 OpMemberDecorate %311 0 MatrixStride 16 OpDecorate %311 Block OpDecorate %313 DescriptorSet 0 OpDecorate %313 Binding 7 OpDecorate %314 RelaxedPrecision OpDecorate %315 RelaxedPrecision OpDecorate %322 RelaxedPrecision OpDecorate %323 RelaxedPrecision OpDecorate %324 RelaxedPrecision OpDecorate %325 RelaxedPrecision OpDecorate %332 RelaxedPrecision OpDecorate %338 RelaxedPrecision OpDecorate %340 RelaxedPrecision OpDecorate %346 RelaxedPrecision OpMemberDecorate %349 0 ColMajor OpMemberDecorate %349 0 Offset 0 OpMemberDecorate %349 0 MatrixStride 16 OpDecorate %349 Block OpDecorate %351 DescriptorSet 0 OpDecorate %351 Binding 8 OpDecorate %352 RelaxedPrecision OpDecorate %353 RelaxedPrecision OpDecorate %360 RelaxedPrecision OpDecorate %361 RelaxedPrecision OpDecorate %362 RelaxedPrecision OpDecorate %363 RelaxedPrecision OpDecorate %368 RelaxedPrecision OpDecorate %370 BuiltIn FragCoord OpDecorate %381 RelaxedPrecision OpDecorate %382 RelaxedPrecision OpDecorate %390 RelaxedPrecision OpDecorate %391 RelaxedPrecision OpDecorate %392 RelaxedPrecision OpDecorate %393 RelaxedPrecision OpDecorate %394 RelaxedPrecision OpDecorate %395 RelaxedPrecision OpDecorate %396 RelaxedPrecision OpDecorate %398 RelaxedPrecision OpDecorate %405 Location 0 OpDecorate %406 RelaxedPrecision %2 = OpTypeVoid %3 = OpTypeFunction %2 %6 = OpTypeFloat 32 %7 = OpTypeVector %6 2 %8 = OpTypePointer Private %7 %9 = OpVariable %8 Private %10 = OpConstant %6 256 %11 = OpConstantComposite %7 %10 %10 %12 = OpTypeInt 32 0 %13 = OpConstant %12 9 %14 = OpTypeArray %6 %13 %15 = OpTypePointer Function %14 %17 = OpTypeInt 32 1 %18 = OpConstant %17 0 %19 = OpConstant %6 0 %20 = OpTypePointer Function %6 %22 = OpTypePointer Function %17 %30 = OpConstant %17 2 %31 = OpTypeBool %41 = OpTypeMatrix %7 2 %42 = OpTypeStruct %41 %43 = OpTypePointer Uniform %42 %44 = OpVariable %43 Uniform %47 = OpTypePointer Uniform %6 %55 = OpConstant %17 1 %59 = OpConstant %6 16 %80 = OpConstant %17 3 %82 = OpTypeVector %6 3 %83 = OpTypeMatrix %82 2 %84 = OpTypeStruct %83 %85 = OpTypePointer Uniform %84 %86 = OpVariable %85 Uniform %119 = OpConstant %17 4 %121 = OpTypeVector %6 4 %122 = OpTypeMatrix %121 2 %123 = OpTypeStruct %122 %124 = OpTypePointer Uniform %123 %125 = OpVariable %124 Uniform %159 = OpTypeMatrix %7 3 %160 = OpTypeStruct %159 %161 = OpTypePointer Uniform %160 %162 = OpVariable %161 Uniform %196 = OpTypeMatrix %82 3 %197 = OpTypeStruct %196 %198 = OpTypePointer Uniform %197 %199 = OpVariable %198 Uniform %216 = OpConstant %17 5 %234 = OpTypeMatrix %121 3 %235 = OpTypeStruct %234 %236 = OpTypePointer Uniform %235 %237 = OpVariable %236 Uniform %254 = OpConstant %17 6 %272 = OpTypeMatrix %7 4 %273 = OpTypeStruct %272 %274 = OpTypePointer Uniform %273 %275 = OpVariable %274 Uniform %292 = OpConstant %17 7 %310 = OpTypeMatrix %82 4 %311 = OpTypeStruct %310 %312 = OpTypePointer Uniform %311 %313 = OpVariable %312 Uniform %330 = OpConstant %17 8 %348 = OpTypeMatrix %121 4 %349 = OpTypeStruct %348 %350 = OpTypePointer Uniform %349 %351 = OpVariable %350 Uniform %369 = OpTypePointer Input %121 %370 = OpVariable %369 Input %371 = OpConstant %12 0 %372 = OpTypePointer Input %6 %375 = OpTypePointer Private %6 %378 = OpConstant %6 3 %383 = OpConstant %12 1 %399 = OpConstant %17 9 %404 = OpTypePointer Output %121 %405 = OpVariable %404 Output %410 = OpConstant %6 1 %416 = OpConstantComposite %121 %19 %19 %19 %410 %4 = OpFunction %2 None %3 %5 = OpLabel %16 = OpVariable %15 Function %23 = OpVariable %22 Function %33 = OpVariable %22 Function %65 = OpVariable %22 Function %73 = OpVariable %22 Function %104 = OpVariable %22 Function %112 = OpVariable %22 Function %143 = OpVariable %22 Function %151 = OpVariable %22 Function %180 = OpVariable %22 Function %188 = OpVariable %22 Function %218 = OpVariable %22 Function %226 = OpVariable %22 Function %256 = OpVariable %22 Function %264 = OpVariable %22 Function %294 = OpVariable %22 Function %302 = OpVariable %22 Function %332 = OpVariable %22 Function %340 = OpVariable %22 Function %368 = OpVariable %22 Function %382 = OpVariable %22 Function %391 = OpVariable %22 Function OpStore %9 %11 %21 = OpAccessChain %20 %16 %18 OpStore %21 %19 OpStore %23 %18 OpBranch %24 %24 = OpLabel OpLoopMerge %26 %27 None OpBranch %28 %28 = OpLabel %29 = OpLoad %17 %23 %32 = OpSLessThan %31 %29 %30 OpBranchConditional %32 %25 %26 %25 = OpLabel OpStore %33 %18 OpBranch %34 %34 = OpLabel OpLoopMerge %36 %37 None OpBranch %38 %38 = OpLabel %39 = OpLoad %17 %33 %40 = OpSLessThan %31 %39 %30 OpBranchConditional %40 %35 %36 %35 = OpLabel %45 = OpLoad %17 %23 %46 = OpLoad %17 %33 %48 = OpAccessChain %47 %44 %18 %45 %46 %49 = OpLoad %6 %48 %50 = OpAccessChain %20 %16 %18 %51 = OpLoad %6 %50 %52 = OpFAdd %6 %51 %49 %53 = OpAccessChain %20 %16 %18 OpStore %53 %52 OpBranch %37 %37 = OpLabel %54 = OpLoad %17 %33 %56 = OpIAdd %17 %54 %55 OpStore %33 %56 OpBranch %34 %36 = OpLabel OpBranch %27 %27 = OpLabel %57 = OpLoad %17 %23 %58 = OpIAdd %17 %57 %55 OpStore %23 %58 OpBranch %24 %26 = OpLabel %60 = OpAccessChain %20 %16 %18 %61 = OpLoad %6 %60 %62 = OpFDiv %6 %61 %59 %63 = OpAccessChain %20 %16 %18 OpStore %63 %62 %64 = OpAccessChain %20 %16 %55 OpStore %64 %19 OpStore %65 %18 OpBranch %66 %66 = OpLabel OpLoopMerge %68 %69 None OpBranch %70 %70 = OpLabel %71 = OpLoad %17 %65 %72 = OpSLessThan %31 %71 %30 OpBranchConditional %72 %67 %68 %67 = OpLabel OpStore %73 %18 OpBranch %74 %74 = OpLabel OpLoopMerge %76 %77 None OpBranch %78 %78 = OpLabel %79 = OpLoad %17 %73 %81 = OpSLessThan %31 %79 %80 OpBranchConditional %81 %75 %76 %75 = OpLabel %87 = OpLoad %17 %65 %88 = OpLoad %17 %73 %89 = OpAccessChain %47 %86 %18 %87 %88 %90 = OpLoad %6 %89 %91 = OpAccessChain %20 %16 %55 %92 = OpLoad %6 %91 %93 = OpFAdd %6 %92 %90 %94 = OpAccessChain %20 %16 %55 OpStore %94 %93 OpBranch %77 %77 = OpLabel %95 = OpLoad %17 %73 %96 = OpIAdd %17 %95 %55 OpStore %73 %96 OpBranch %74 %76 = OpLabel OpBranch %69 %69 = OpLabel %97 = OpLoad %17 %65 %98 = OpIAdd %17 %97 %55 OpStore %65 %98 OpBranch %66 %68 = OpLabel %99 = OpAccessChain %20 %16 %55 %100 = OpLoad %6 %99 %101 = OpFDiv %6 %100 %59 %102 = OpAccessChain %20 %16 %55 OpStore %102 %101 %103 = OpAccessChain %20 %16 %30 OpStore %103 %19 OpStore %104 %18 OpBranch %105 %105 = OpLabel OpLoopMerge %107 %108 None OpBranch %109 %109 = OpLabel %110 = OpLoad %17 %104 %111 = OpSLessThan %31 %110 %30 OpBranchConditional %111 %106 %107 %106 = OpLabel OpStore %112 %18 OpBranch %113 %113 = OpLabel OpLoopMerge %115 %116 None OpBranch %117 %117 = OpLabel %118 = OpLoad %17 %112 %120 = OpSLessThan %31 %118 %119 OpBranchConditional %120 %114 %115 %114 = OpLabel %126 = OpLoad %17 %104 %127 = OpLoad %17 %112 %128 = OpAccessChain %47 %125 %18 %126 %127 %129 = OpLoad %6 %128 %130 = OpAccessChain %20 %16 %30 %131 = OpLoad %6 %130 %132 = OpFAdd %6 %131 %129 %133 = OpAccessChain %20 %16 %30 OpStore %133 %132 OpBranch %116 %116 = OpLabel %134 = OpLoad %17 %112 %135 = OpIAdd %17 %134 %55 OpStore %112 %135 OpBranch %113 %115 = OpLabel OpBranch %108 %108 = OpLabel %136 = OpLoad %17 %104 %137 = OpIAdd %17 %136 %55 OpStore %104 %137 OpBranch %105 %107 = OpLabel %138 = OpAccessChain %20 %16 %30 %139 = OpLoad %6 %138 %140 = OpFDiv %6 %139 %59 %141 = OpAccessChain %20 %16 %30 OpStore %141 %140 %142 = OpAccessChain %20 %16 %80 OpStore %142 %19 OpStore %143 %18 OpBranch %144 %144 = OpLabel OpLoopMerge %146 %147 None OpBranch %148 %148 = OpLabel %149 = OpLoad %17 %143 %150 = OpSLessThan %31 %149 %80 OpBranchConditional %150 %145 %146 %145 = OpLabel OpStore %151 %18 OpBranch %152 %152 = OpLabel OpLoopMerge %154 %155 None OpBranch %156 %156 = OpLabel %157 = OpLoad %17 %151 %158 = OpSLessThan %31 %157 %30 OpBranchConditional %158 %153 %154 %153 = OpLabel %163 = OpLoad %17 %143 %164 = OpLoad %17 %151 %165 = OpAccessChain %47 %162 %18 %163 %164 %166 = OpLoad %6 %165 %167 = OpAccessChain %20 %16 %80 %168 = OpLoad %6 %167 %169 = OpFAdd %6 %168 %166 %170 = OpAccessChain %20 %16 %80 OpStore %170 %169 OpBranch %155 %155 = OpLabel %171 = OpLoad %17 %151 %172 = OpIAdd %17 %171 %55 OpStore %151 %172 OpBranch %152 %154 = OpLabel OpBranch %147 %147 = OpLabel %173 = OpLoad %17 %143 %174 = OpIAdd %17 %173 %55 OpStore %143 %174 OpBranch %144 %146 = OpLabel %175 = OpAccessChain %20 %16 %80 %176 = OpLoad %6 %175 %177 = OpFDiv %6 %176 %59 %178 = OpAccessChain %20 %16 %80 OpStore %178 %177 %179 = OpAccessChain %20 %16 %119 OpStore %179 %19 OpStore %180 %18 OpBranch %181 %181 = OpLabel OpLoopMerge %183 %184 None OpBranch %185 %185 = OpLabel %186 = OpLoad %17 %180 %187 = OpSLessThan %31 %186 %80 OpBranchConditional %187 %182 %183 %182 = OpLabel OpStore %188 %18 OpBranch %189 %189 = OpLabel OpLoopMerge %191 %192 None OpBranch %193 %193 = OpLabel %194 = OpLoad %17 %188 %195 = OpSLessThan %31 %194 %80 OpBranchConditional %195 %190 %191 %190 = OpLabel %200 = OpLoad %17 %180 %201 = OpLoad %17 %188 %202 = OpAccessChain %47 %199 %18 %200 %201 %203 = OpLoad %6 %202 %204 = OpAccessChain %20 %16 %119 %205 = OpLoad %6 %204 %206 = OpFAdd %6 %205 %203 %207 = OpAccessChain %20 %16 %119 OpStore %207 %206 OpBranch %192 %192 = OpLabel %208 = OpLoad %17 %188 %209 = OpIAdd %17 %208 %55 OpStore %188 %209 OpBranch %189 %191 = OpLabel OpBranch %184 %184 = OpLabel %210 = OpLoad %17 %180 %211 = OpIAdd %17 %210 %55 OpStore %180 %211 OpBranch %181 %183 = OpLabel %212 = OpAccessChain %20 %16 %119 %213 = OpLoad %6 %212 %214 = OpFDiv %6 %213 %59 %215 = OpAccessChain %20 %16 %119 OpStore %215 %214 %217 = OpAccessChain %20 %16 %216 OpStore %217 %19 OpStore %218 %18 OpBranch %219 %219 = OpLabel OpLoopMerge %221 %222 None OpBranch %223 %223 = OpLabel %224 = OpLoad %17 %218 %225 = OpSLessThan %31 %224 %80 OpBranchConditional %225 %220 %221 %220 = OpLabel OpStore %226 %18 OpBranch %227 %227 = OpLabel OpLoopMerge %229 %230 None OpBranch %231 %231 = OpLabel %232 = OpLoad %17 %226 %233 = OpSLessThan %31 %232 %119 OpBranchConditional %233 %228 %229 %228 = OpLabel %238 = OpLoad %17 %218 %239 = OpLoad %17 %226 %240 = OpAccessChain %47 %237 %18 %238 %239 %241 = OpLoad %6 %240 %242 = OpAccessChain %20 %16 %216 %243 = OpLoad %6 %242 %244 = OpFAdd %6 %243 %241 %245 = OpAccessChain %20 %16 %216 OpStore %245 %244 OpBranch %230 %230 = OpLabel %246 = OpLoad %17 %226 %247 = OpIAdd %17 %246 %55 OpStore %226 %247 OpBranch %227 %229 = OpLabel OpBranch %222 %222 = OpLabel %248 = OpLoad %17 %218 %249 = OpIAdd %17 %248 %55 OpStore %218 %249 OpBranch %219 %221 = OpLabel %250 = OpAccessChain %20 %16 %216 %251 = OpLoad %6 %250 %252 = OpFDiv %6 %251 %59 %253 = OpAccessChain %20 %16 %216 OpStore %253 %252 %255 = OpAccessChain %20 %16 %254 OpStore %255 %19 OpStore %256 %18 OpBranch %257 %257 = OpLabel OpLoopMerge %259 %260 None OpBranch %261 %261 = OpLabel %262 = OpLoad %17 %256 %263 = OpSLessThan %31 %262 %119 OpBranchConditional %263 %258 %259 %258 = OpLabel OpStore %264 %18 OpBranch %265 %265 = OpLabel OpLoopMerge %267 %268 None OpBranch %269 %269 = OpLabel %270 = OpLoad %17 %264 %271 = OpSLessThan %31 %270 %30 OpBranchConditional %271 %266 %267 %266 = OpLabel %276 = OpLoad %17 %256 %277 = OpLoad %17 %264 %278 = OpAccessChain %47 %275 %18 %276 %277 %279 = OpLoad %6 %278 %280 = OpAccessChain %20 %16 %254 %281 = OpLoad %6 %280 %282 = OpFAdd %6 %281 %279 %283 = OpAccessChain %20 %16 %254 OpStore %283 %282 OpBranch %268 %268 = OpLabel %284 = OpLoad %17 %264 %285 = OpIAdd %17 %284 %55 OpStore %264 %285 OpBranch %265 %267 = OpLabel OpBranch %260 %260 = OpLabel %286 = OpLoad %17 %256 %287 = OpIAdd %17 %286 %55 OpStore %256 %287 OpBranch %257 %259 = OpLabel %288 = OpAccessChain %20 %16 %254 %289 = OpLoad %6 %288 %290 = OpFDiv %6 %289 %59 %291 = OpAccessChain %20 %16 %254 OpStore %291 %290 %293 = OpAccessChain %20 %16 %292 OpStore %293 %19 OpStore %294 %18 OpBranch %295 %295 = OpLabel OpLoopMerge %297 %298 None OpBranch %299 %299 = OpLabel %300 = OpLoad %17 %294 %301 = OpSLessThan %31 %300 %119 OpBranchConditional %301 %296 %297 %296 = OpLabel OpStore %302 %18 OpBranch %303 %303 = OpLabel OpLoopMerge %305 %306 None OpBranch %307 %307 = OpLabel %308 = OpLoad %17 %302 %309 = OpSLessThan %31 %308 %80 OpBranchConditional %309 %304 %305 %304 = OpLabel %314 = OpLoad %17 %294 %315 = OpLoad %17 %302 %316 = OpAccessChain %47 %313 %18 %314 %315 %317 = OpLoad %6 %316 %318 = OpAccessChain %20 %16 %292 %319 = OpLoad %6 %318 %320 = OpFAdd %6 %319 %317 %321 = OpAccessChain %20 %16 %292 OpStore %321 %320 OpBranch %306 %306 = OpLabel %322 = OpLoad %17 %302 %323 = OpIAdd %17 %322 %55 OpStore %302 %323 OpBranch %303 %305 = OpLabel OpBranch %298 %298 = OpLabel %324 = OpLoad %17 %294 %325 = OpIAdd %17 %324 %55 OpStore %294 %325 OpBranch %295 %297 = OpLabel %326 = OpAccessChain %20 %16 %292 %327 = OpLoad %6 %326 %328 = OpFDiv %6 %327 %59 %329 = OpAccessChain %20 %16 %292 OpStore %329 %328 %331 = OpAccessChain %20 %16 %330 OpStore %331 %19 OpStore %332 %18 OpBranch %333 %333 = OpLabel OpLoopMerge %335 %336 None OpBranch %337 %337 = OpLabel %338 = OpLoad %17 %332 %339 = OpSLessThan %31 %338 %119 OpBranchConditional %339 %334 %335 %334 = OpLabel OpStore %340 %18 OpBranch %341 %341 = OpLabel OpLoopMerge %343 %344 None OpBranch %345 %345 = OpLabel %346 = OpLoad %17 %340 %347 = OpSLessThan %31 %346 %119 OpBranchConditional %347 %342 %343 %342 = OpLabel %352 = OpLoad %17 %332 %353 = OpLoad %17 %340 %354 = OpAccessChain %47 %351 %18 %352 %353 %355 = OpLoad %6 %354 %356 = OpAccessChain %20 %16 %330 %357 = OpLoad %6 %356 %358 = OpFAdd %6 %357 %355 %359 = OpAccessChain %20 %16 %330 OpStore %359 %358 OpBranch %344 %344 = OpLabel %360 = OpLoad %17 %340 %361 = OpIAdd %17 %360 %55 OpStore %340 %361 OpBranch %341 %343 = OpLabel OpBranch %336 %336 = OpLabel %362 = OpLoad %17 %332 %363 = OpIAdd %17 %362 %55 OpStore %332 %363 OpBranch %333 %335 = OpLabel %364 = OpAccessChain %20 %16 %330 %365 = OpLoad %6 %364 %366 = OpFDiv %6 %365 %59 %367 = OpAccessChain %20 %16 %330 OpStore %367 %366 %373 = OpAccessChain %372 %370 %371 %374 = OpLoad %6 %373 %376 = OpAccessChain %375 %9 %371 %377 = OpLoad %6 %376 %379 = OpFDiv %6 %377 %378 %380 = OpFDiv %6 %374 %379 %381 = OpConvertFToS %17 %380 OpStore %368 %381 %384 = OpAccessChain %372 %370 %383 %385 = OpLoad %6 %384 %386 = OpAccessChain %375 %9 %371 %387 = OpLoad %6 %386 %388 = OpFDiv %6 %387 %378 %389 = OpFDiv %6 %385 %388 %390 = OpConvertFToS %17 %389 OpStore %382 %390 %392 = OpLoad %17 %382 %393 = OpIMul %17 %392 %80 %394 = OpLoad %17 %368 %395 = OpIAdd %17 %393 %394 OpStore %391 %395 %396 = OpLoad %17 %391 %397 = OpSGreaterThan %31 %396 %18 %398 = OpLoad %17 %391 %400 = OpSLessThan %31 %398 %399 %401 = OpLogicalAnd %31 %397 %400 OpSelectionMerge %403 None OpBranchConditional %401 %402 %415 %402 = OpLabel %406 = OpLoad %17 %391 %407 = OpAccessChain %20 %16 %406 %408 = OpLoad %6 %407 %409 = OpCompositeConstruct %82 %408 %408 %408 %411 = OpCompositeExtract %6 %409 0 %412 = OpCompositeExtract %6 %409 1 %413 = OpCompositeExtract %6 %409 2 %414 = OpCompositeConstruct %121 %411 %412 %413 %410 OpStore %405 %414 OpBranch %403 %415 = OpLabel OpStore %405 %416 OpBranch %403 %403 = OpLabel OpReturn OpFunctionEnd END BUFFER framebuffer FORMAT B8G8R8A8_UNORM BUFFER m22 DATA_TYPE mat2x2 STD140 DATA 1.0 1.0 1.0 1.0 END BUFFER m23 DATA_TYPE mat2x3 STD140 DATA 1.0 1.0 1.0 1.0 1.0 1.0 END BUFFER m24 DATA_TYPE mat2x4 STD140 DATA 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 END BUFFER m32 DATA_TYPE mat3x2 STD140 DATA 1.0 1.0 1.0 1.0 1.0 1.0 END BUFFER m33 DATA_TYPE mat3x3 STD140 DATA 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 END BUFFER m34 DATA_TYPE mat3x4 STD140 DATA 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 END BUFFER m42 DATA_TYPE mat4x2 STD140 DATA 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 END BUFFER m43 DATA_TYPE mat4x3 STD140 DATA 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 END BUFFER m44 DATA_TYPE mat4x4 STD140 DATA 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 END PIPELINE graphics gfz_pipeline ATTACH gfz_vert ATTACH gfz_frag FRAMEBUFFER_SIZE 256 256 BIND BUFFER framebuffer AS color LOCATION 0 BIND BUFFER m22 AS uniform DESCRIPTOR_SET 0 BINDING 0 BIND BUFFER m23 AS uniform DESCRIPTOR_SET 0 BINDING 1 BIND BUFFER m24 AS uniform DESCRIPTOR_SET 0 BINDING 2 BIND BUFFER m32 AS uniform DESCRIPTOR_SET 0 BINDING 3 BIND BUFFER m33 AS uniform DESCRIPTOR_SET 0 BINDING 4 BIND BUFFER m34 AS uniform DESCRIPTOR_SET 0 BINDING 5 BIND BUFFER m42 AS uniform DESCRIPTOR_SET 0 BINDING 6 BIND BUFFER m43 AS uniform DESCRIPTOR_SET 0 BINDING 7 BIND BUFFER m44 AS uniform DESCRIPTOR_SET 0 BINDING 8 END CLEAR_COLOR gfz_pipeline 0 0 0 255 CLEAR gfz_pipeline RUN gfz_pipeline DRAW_RECT POS 0 0 SIZE 256 256 EXPECT framebuffer IDX 0 0 SIZE 85 85 EQ_RGBA 0 0 0 255 EXPECT framebuffer IDX 85 0 SIZE 85 85 EQ_RGBA 96 96 96 255 EXPECT framebuffer IDX 171 0 SIZE 85 85 EQ_RGBA 127 127 127 255 EXPECT framebuffer IDX 0 85 SIZE 85 85 EQ_RGBA 96 96 96 255 EXPECT framebuffer IDX 85 85 SIZE 85 85 EQ_RGBA 143 143 143 255 EXPECT framebuffer IDX 171 85 SIZE 85 85 EQ_RGBA 191 191 191 255 EXPECT framebuffer IDX 0 171 SIZE 85 85 EQ_RGBA 127 127 127 255 EXPECT framebuffer IDX 85 171 SIZE 85 85 EQ_RGBA 191 191 191 255 EXPECT framebuffer IDX 171 171 SIZE 85 85 EQ_RGBA 255 255 255 255