1#!amber 2# AmberScript generated by GraphicsFuzz 3 4SHADER vertex gfz_vert PASSTHROUGH 5 6SHADER fragment gfz_frag SPIRV-ASM 7; SPIR-V 8; Version: 1.0 9; Generator: Khronos Glslang Reference Front End; 7 10; Bound: 417 11; Schema: 0 12 OpCapability Shader 13 %1 = OpExtInstImport "GLSL.std.450" 14 OpMemoryModel Logical GLSL450 15 OpEntryPoint Fragment %4 "main" %370 %405 16 OpExecutionMode %4 OriginUpperLeft 17 OpSource ESSL 310 18 OpName %4 "main" 19 OpName %9 "resolution" 20 OpName %16 "sums" 21 OpName %23 "c" 22 OpName %33 "r" 23 OpName %42 "buf0" 24 OpMemberName %42 0 "m22" 25 OpName %44 "" 26 OpName %65 "c" 27 OpName %73 "r" 28 OpName %84 "buf1" 29 OpMemberName %84 0 "m23" 30 OpName %86 "" 31 OpName %104 "c" 32 OpName %112 "r" 33 OpName %123 "buf2" 34 OpMemberName %123 0 "m24" 35 OpName %125 "" 36 OpName %143 "c" 37 OpName %151 "r" 38 OpName %160 "buf3" 39 OpMemberName %160 0 "m32" 40 OpName %162 "" 41 OpName %180 "c" 42 OpName %188 "r" 43 OpName %197 "buf4" 44 OpMemberName %197 0 "m33" 45 OpName %199 "" 46 OpName %218 "c" 47 OpName %226 "r" 48 OpName %235 "buf5" 49 OpMemberName %235 0 "m34" 50 OpName %237 "" 51 OpName %256 "c" 52 OpName %264 "r" 53 OpName %273 "buf6" 54 OpMemberName %273 0 "m42" 55 OpName %275 "" 56 OpName %294 "c" 57 OpName %302 "r" 58 OpName %311 "buf7" 59 OpMemberName %311 0 "m43" 60 OpName %313 "" 61 OpName %332 "c" 62 OpName %340 "r" 63 OpName %349 "buf8" 64 OpMemberName %349 0 "m44" 65 OpName %351 "" 66 OpName %368 "region_x" 67 OpName %370 "gl_FragCoord" 68 OpName %382 "region_y" 69 OpName %391 "overall_region" 70 OpName %405 "_GLF_color" 71 OpDecorate %23 RelaxedPrecision 72 OpDecorate %29 RelaxedPrecision 73 OpDecorate %33 RelaxedPrecision 74 OpDecorate %39 RelaxedPrecision 75 OpMemberDecorate %42 0 ColMajor 76 OpMemberDecorate %42 0 Offset 0 77 OpMemberDecorate %42 0 MatrixStride 16 78 OpDecorate %42 Block 79 OpDecorate %44 DescriptorSet 0 80 OpDecorate %44 Binding 0 81 OpDecorate %45 RelaxedPrecision 82 OpDecorate %46 RelaxedPrecision 83 OpDecorate %54 RelaxedPrecision 84 OpDecorate %56 RelaxedPrecision 85 OpDecorate %57 RelaxedPrecision 86 OpDecorate %58 RelaxedPrecision 87 OpDecorate %65 RelaxedPrecision 88 OpDecorate %71 RelaxedPrecision 89 OpDecorate %73 RelaxedPrecision 90 OpDecorate %79 RelaxedPrecision 91 OpMemberDecorate %84 0 ColMajor 92 OpMemberDecorate %84 0 Offset 0 93 OpMemberDecorate %84 0 MatrixStride 16 94 OpDecorate %84 Block 95 OpDecorate %86 DescriptorSet 0 96 OpDecorate %86 Binding 1 97 OpDecorate %87 RelaxedPrecision 98 OpDecorate %88 RelaxedPrecision 99 OpDecorate %95 RelaxedPrecision 100 OpDecorate %96 RelaxedPrecision 101 OpDecorate %97 RelaxedPrecision 102 OpDecorate %98 RelaxedPrecision 103 OpDecorate %104 RelaxedPrecision 104 OpDecorate %110 RelaxedPrecision 105 OpDecorate %112 RelaxedPrecision 106 OpDecorate %118 RelaxedPrecision 107 OpMemberDecorate %123 0 ColMajor 108 OpMemberDecorate %123 0 Offset 0 109 OpMemberDecorate %123 0 MatrixStride 16 110 OpDecorate %123 Block 111 OpDecorate %125 DescriptorSet 0 112 OpDecorate %125 Binding 2 113 OpDecorate %126 RelaxedPrecision 114 OpDecorate %127 RelaxedPrecision 115 OpDecorate %134 RelaxedPrecision 116 OpDecorate %135 RelaxedPrecision 117 OpDecorate %136 RelaxedPrecision 118 OpDecorate %137 RelaxedPrecision 119 OpDecorate %143 RelaxedPrecision 120 OpDecorate %149 RelaxedPrecision 121 OpDecorate %151 RelaxedPrecision 122 OpDecorate %157 RelaxedPrecision 123 OpMemberDecorate %160 0 ColMajor 124 OpMemberDecorate %160 0 Offset 0 125 OpMemberDecorate %160 0 MatrixStride 16 126 OpDecorate %160 Block 127 OpDecorate %162 DescriptorSet 0 128 OpDecorate %162 Binding 3 129 OpDecorate %163 RelaxedPrecision 130 OpDecorate %164 RelaxedPrecision 131 OpDecorate %171 RelaxedPrecision 132 OpDecorate %172 RelaxedPrecision 133 OpDecorate %173 RelaxedPrecision 134 OpDecorate %174 RelaxedPrecision 135 OpDecorate %180 RelaxedPrecision 136 OpDecorate %186 RelaxedPrecision 137 OpDecorate %188 RelaxedPrecision 138 OpDecorate %194 RelaxedPrecision 139 OpMemberDecorate %197 0 ColMajor 140 OpMemberDecorate %197 0 Offset 0 141 OpMemberDecorate %197 0 MatrixStride 16 142 OpDecorate %197 Block 143 OpDecorate %199 DescriptorSet 0 144 OpDecorate %199 Binding 4 145 OpDecorate %200 RelaxedPrecision 146 OpDecorate %201 RelaxedPrecision 147 OpDecorate %208 RelaxedPrecision 148 OpDecorate %209 RelaxedPrecision 149 OpDecorate %210 RelaxedPrecision 150 OpDecorate %211 RelaxedPrecision 151 OpDecorate %218 RelaxedPrecision 152 OpDecorate %224 RelaxedPrecision 153 OpDecorate %226 RelaxedPrecision 154 OpDecorate %232 RelaxedPrecision 155 OpMemberDecorate %235 0 ColMajor 156 OpMemberDecorate %235 0 Offset 0 157 OpMemberDecorate %235 0 MatrixStride 16 158 OpDecorate %235 Block 159 OpDecorate %237 DescriptorSet 0 160 OpDecorate %237 Binding 5 161 OpDecorate %238 RelaxedPrecision 162 OpDecorate %239 RelaxedPrecision 163 OpDecorate %246 RelaxedPrecision 164 OpDecorate %247 RelaxedPrecision 165 OpDecorate %248 RelaxedPrecision 166 OpDecorate %249 RelaxedPrecision 167 OpDecorate %256 RelaxedPrecision 168 OpDecorate %262 RelaxedPrecision 169 OpDecorate %264 RelaxedPrecision 170 OpDecorate %270 RelaxedPrecision 171 OpMemberDecorate %273 0 ColMajor 172 OpMemberDecorate %273 0 Offset 0 173 OpMemberDecorate %273 0 MatrixStride 16 174 OpDecorate %273 Block 175 OpDecorate %275 DescriptorSet 0 176 OpDecorate %275 Binding 6 177 OpDecorate %276 RelaxedPrecision 178 OpDecorate %277 RelaxedPrecision 179 OpDecorate %284 RelaxedPrecision 180 OpDecorate %285 RelaxedPrecision 181 OpDecorate %286 RelaxedPrecision 182 OpDecorate %287 RelaxedPrecision 183 OpDecorate %294 RelaxedPrecision 184 OpDecorate %300 RelaxedPrecision 185 OpDecorate %302 RelaxedPrecision 186 OpDecorate %308 RelaxedPrecision 187 OpMemberDecorate %311 0 ColMajor 188 OpMemberDecorate %311 0 Offset 0 189 OpMemberDecorate %311 0 MatrixStride 16 190 OpDecorate %311 Block 191 OpDecorate %313 DescriptorSet 0 192 OpDecorate %313 Binding 7 193 OpDecorate %314 RelaxedPrecision 194 OpDecorate %315 RelaxedPrecision 195 OpDecorate %322 RelaxedPrecision 196 OpDecorate %323 RelaxedPrecision 197 OpDecorate %324 RelaxedPrecision 198 OpDecorate %325 RelaxedPrecision 199 OpDecorate %332 RelaxedPrecision 200 OpDecorate %338 RelaxedPrecision 201 OpDecorate %340 RelaxedPrecision 202 OpDecorate %346 RelaxedPrecision 203 OpMemberDecorate %349 0 ColMajor 204 OpMemberDecorate %349 0 Offset 0 205 OpMemberDecorate %349 0 MatrixStride 16 206 OpDecorate %349 Block 207 OpDecorate %351 DescriptorSet 0 208 OpDecorate %351 Binding 8 209 OpDecorate %352 RelaxedPrecision 210 OpDecorate %353 RelaxedPrecision 211 OpDecorate %360 RelaxedPrecision 212 OpDecorate %361 RelaxedPrecision 213 OpDecorate %362 RelaxedPrecision 214 OpDecorate %363 RelaxedPrecision 215 OpDecorate %368 RelaxedPrecision 216 OpDecorate %370 BuiltIn FragCoord 217 OpDecorate %381 RelaxedPrecision 218 OpDecorate %382 RelaxedPrecision 219 OpDecorate %390 RelaxedPrecision 220 OpDecorate %391 RelaxedPrecision 221 OpDecorate %392 RelaxedPrecision 222 OpDecorate %393 RelaxedPrecision 223 OpDecorate %394 RelaxedPrecision 224 OpDecorate %395 RelaxedPrecision 225 OpDecorate %396 RelaxedPrecision 226 OpDecorate %398 RelaxedPrecision 227 OpDecorate %405 Location 0 228 OpDecorate %406 RelaxedPrecision 229 %2 = OpTypeVoid 230 %3 = OpTypeFunction %2 231 %6 = OpTypeFloat 32 232 %7 = OpTypeVector %6 2 233 %8 = OpTypePointer Private %7 234 %9 = OpVariable %8 Private 235 %10 = OpConstant %6 256 236 %11 = OpConstantComposite %7 %10 %10 237 %12 = OpTypeInt 32 0 238 %13 = OpConstant %12 9 239 %14 = OpTypeArray %6 %13 240 %15 = OpTypePointer Function %14 241 %17 = OpTypeInt 32 1 242 %18 = OpConstant %17 0 243 %19 = OpConstant %6 0 244 %20 = OpTypePointer Function %6 245 %22 = OpTypePointer Function %17 246 %30 = OpConstant %17 2 247 %31 = OpTypeBool 248 %41 = OpTypeMatrix %7 2 249 %42 = OpTypeStruct %41 250 %43 = OpTypePointer Uniform %42 251 %44 = OpVariable %43 Uniform 252 %47 = OpTypePointer Uniform %6 253 %55 = OpConstant %17 1 254 %59 = OpConstant %6 16 255 %80 = OpConstant %17 3 256 %82 = OpTypeVector %6 3 257 %83 = OpTypeMatrix %82 2 258 %84 = OpTypeStruct %83 259 %85 = OpTypePointer Uniform %84 260 %86 = OpVariable %85 Uniform 261 %119 = OpConstant %17 4 262 %121 = OpTypeVector %6 4 263 %122 = OpTypeMatrix %121 2 264 %123 = OpTypeStruct %122 265 %124 = OpTypePointer Uniform %123 266 %125 = OpVariable %124 Uniform 267 %159 = OpTypeMatrix %7 3 268 %160 = OpTypeStruct %159 269 %161 = OpTypePointer Uniform %160 270 %162 = OpVariable %161 Uniform 271 %196 = OpTypeMatrix %82 3 272 %197 = OpTypeStruct %196 273 %198 = OpTypePointer Uniform %197 274 %199 = OpVariable %198 Uniform 275 %216 = OpConstant %17 5 276 %234 = OpTypeMatrix %121 3 277 %235 = OpTypeStruct %234 278 %236 = OpTypePointer Uniform %235 279 %237 = OpVariable %236 Uniform 280 %254 = OpConstant %17 6 281 %272 = OpTypeMatrix %7 4 282 %273 = OpTypeStruct %272 283 %274 = OpTypePointer Uniform %273 284 %275 = OpVariable %274 Uniform 285 %292 = OpConstant %17 7 286 %310 = OpTypeMatrix %82 4 287 %311 = OpTypeStruct %310 288 %312 = OpTypePointer Uniform %311 289 %313 = OpVariable %312 Uniform 290 %330 = OpConstant %17 8 291 %348 = OpTypeMatrix %121 4 292 %349 = OpTypeStruct %348 293 %350 = OpTypePointer Uniform %349 294 %351 = OpVariable %350 Uniform 295 %369 = OpTypePointer Input %121 296 %370 = OpVariable %369 Input 297 %371 = OpConstant %12 0 298 %372 = OpTypePointer Input %6 299 %375 = OpTypePointer Private %6 300 %378 = OpConstant %6 3 301 %383 = OpConstant %12 1 302 %399 = OpConstant %17 9 303 %404 = OpTypePointer Output %121 304 %405 = OpVariable %404 Output 305 %410 = OpConstant %6 1 306 %416 = OpConstantComposite %121 %19 %19 %19 %410 307 %4 = OpFunction %2 None %3 308 %5 = OpLabel 309 %16 = OpVariable %15 Function 310 %23 = OpVariable %22 Function 311 %33 = OpVariable %22 Function 312 %65 = OpVariable %22 Function 313 %73 = OpVariable %22 Function 314 %104 = OpVariable %22 Function 315 %112 = OpVariable %22 Function 316 %143 = OpVariable %22 Function 317 %151 = OpVariable %22 Function 318 %180 = OpVariable %22 Function 319 %188 = OpVariable %22 Function 320 %218 = OpVariable %22 Function 321 %226 = OpVariable %22 Function 322 %256 = OpVariable %22 Function 323 %264 = OpVariable %22 Function 324 %294 = OpVariable %22 Function 325 %302 = OpVariable %22 Function 326 %332 = OpVariable %22 Function 327 %340 = OpVariable %22 Function 328 %368 = OpVariable %22 Function 329 %382 = OpVariable %22 Function 330 %391 = OpVariable %22 Function 331 OpStore %9 %11 332 %21 = OpAccessChain %20 %16 %18 333 OpStore %21 %19 334 OpStore %23 %18 335 OpBranch %24 336 %24 = OpLabel 337 OpLoopMerge %26 %27 None 338 OpBranch %28 339 %28 = OpLabel 340 %29 = OpLoad %17 %23 341 %32 = OpSLessThan %31 %29 %30 342 OpBranchConditional %32 %25 %26 343 %25 = OpLabel 344 OpStore %33 %18 345 OpBranch %34 346 %34 = OpLabel 347 OpLoopMerge %36 %37 None 348 OpBranch %38 349 %38 = OpLabel 350 %39 = OpLoad %17 %33 351 %40 = OpSLessThan %31 %39 %30 352 OpBranchConditional %40 %35 %36 353 %35 = OpLabel 354 %45 = OpLoad %17 %23 355 %46 = OpLoad %17 %33 356 %48 = OpAccessChain %47 %44 %18 %45 %46 357 %49 = OpLoad %6 %48 358 %50 = OpAccessChain %20 %16 %18 359 %51 = OpLoad %6 %50 360 %52 = OpFAdd %6 %51 %49 361 %53 = OpAccessChain %20 %16 %18 362 OpStore %53 %52 363 OpBranch %37 364 %37 = OpLabel 365 %54 = OpLoad %17 %33 366 %56 = OpIAdd %17 %54 %55 367 OpStore %33 %56 368 OpBranch %34 369 %36 = OpLabel 370 OpBranch %27 371 %27 = OpLabel 372 %57 = OpLoad %17 %23 373 %58 = OpIAdd %17 %57 %55 374 OpStore %23 %58 375 OpBranch %24 376 %26 = OpLabel 377 %60 = OpAccessChain %20 %16 %18 378 %61 = OpLoad %6 %60 379 %62 = OpFDiv %6 %61 %59 380 %63 = OpAccessChain %20 %16 %18 381 OpStore %63 %62 382 %64 = OpAccessChain %20 %16 %55 383 OpStore %64 %19 384 OpStore %65 %18 385 OpBranch %66 386 %66 = OpLabel 387 OpLoopMerge %68 %69 None 388 OpBranch %70 389 %70 = OpLabel 390 %71 = OpLoad %17 %65 391 %72 = OpSLessThan %31 %71 %30 392 OpBranchConditional %72 %67 %68 393 %67 = OpLabel 394 OpStore %73 %18 395 OpBranch %74 396 %74 = OpLabel 397 OpLoopMerge %76 %77 None 398 OpBranch %78 399 %78 = OpLabel 400 %79 = OpLoad %17 %73 401 %81 = OpSLessThan %31 %79 %80 402 OpBranchConditional %81 %75 %76 403 %75 = OpLabel 404 %87 = OpLoad %17 %65 405 %88 = OpLoad %17 %73 406 %89 = OpAccessChain %47 %86 %18 %87 %88 407 %90 = OpLoad %6 %89 408 %91 = OpAccessChain %20 %16 %55 409 %92 = OpLoad %6 %91 410 %93 = OpFAdd %6 %92 %90 411 %94 = OpAccessChain %20 %16 %55 412 OpStore %94 %93 413 OpBranch %77 414 %77 = OpLabel 415 %95 = OpLoad %17 %73 416 %96 = OpIAdd %17 %95 %55 417 OpStore %73 %96 418 OpBranch %74 419 %76 = OpLabel 420 OpBranch %69 421 %69 = OpLabel 422 %97 = OpLoad %17 %65 423 %98 = OpIAdd %17 %97 %55 424 OpStore %65 %98 425 OpBranch %66 426 %68 = OpLabel 427 %99 = OpAccessChain %20 %16 %55 428 %100 = OpLoad %6 %99 429 %101 = OpFDiv %6 %100 %59 430 %102 = OpAccessChain %20 %16 %55 431 OpStore %102 %101 432 %103 = OpAccessChain %20 %16 %30 433 OpStore %103 %19 434 OpStore %104 %18 435 OpBranch %105 436 %105 = OpLabel 437 OpLoopMerge %107 %108 None 438 OpBranch %109 439 %109 = OpLabel 440 %110 = OpLoad %17 %104 441 %111 = OpSLessThan %31 %110 %30 442 OpBranchConditional %111 %106 %107 443 %106 = OpLabel 444 OpStore %112 %18 445 OpBranch %113 446 %113 = OpLabel 447 OpLoopMerge %115 %116 None 448 OpBranch %117 449 %117 = OpLabel 450 %118 = OpLoad %17 %112 451 %120 = OpSLessThan %31 %118 %119 452 OpBranchConditional %120 %114 %115 453 %114 = OpLabel 454 %126 = OpLoad %17 %104 455 %127 = OpLoad %17 %112 456 %128 = OpAccessChain %47 %125 %18 %126 %127 457 %129 = OpLoad %6 %128 458 %130 = OpAccessChain %20 %16 %30 459 %131 = OpLoad %6 %130 460 %132 = OpFAdd %6 %131 %129 461 %133 = OpAccessChain %20 %16 %30 462 OpStore %133 %132 463 OpBranch %116 464 %116 = OpLabel 465 %134 = OpLoad %17 %112 466 %135 = OpIAdd %17 %134 %55 467 OpStore %112 %135 468 OpBranch %113 469 %115 = OpLabel 470 OpBranch %108 471 %108 = OpLabel 472 %136 = OpLoad %17 %104 473 %137 = OpIAdd %17 %136 %55 474 OpStore %104 %137 475 OpBranch %105 476 %107 = OpLabel 477 %138 = OpAccessChain %20 %16 %30 478 %139 = OpLoad %6 %138 479 %140 = OpFDiv %6 %139 %59 480 %141 = OpAccessChain %20 %16 %30 481 OpStore %141 %140 482 %142 = OpAccessChain %20 %16 %80 483 OpStore %142 %19 484 OpStore %143 %18 485 OpBranch %144 486 %144 = OpLabel 487 OpLoopMerge %146 %147 None 488 OpBranch %148 489 %148 = OpLabel 490 %149 = OpLoad %17 %143 491 %150 = OpSLessThan %31 %149 %80 492 OpBranchConditional %150 %145 %146 493 %145 = OpLabel 494 OpStore %151 %18 495 OpBranch %152 496 %152 = OpLabel 497 OpLoopMerge %154 %155 None 498 OpBranch %156 499 %156 = OpLabel 500 %157 = OpLoad %17 %151 501 %158 = OpSLessThan %31 %157 %30 502 OpBranchConditional %158 %153 %154 503 %153 = OpLabel 504 %163 = OpLoad %17 %143 505 %164 = OpLoad %17 %151 506 %165 = OpAccessChain %47 %162 %18 %163 %164 507 %166 = OpLoad %6 %165 508 %167 = OpAccessChain %20 %16 %80 509 %168 = OpLoad %6 %167 510 %169 = OpFAdd %6 %168 %166 511 %170 = OpAccessChain %20 %16 %80 512 OpStore %170 %169 513 OpBranch %155 514 %155 = OpLabel 515 %171 = OpLoad %17 %151 516 %172 = OpIAdd %17 %171 %55 517 OpStore %151 %172 518 OpBranch %152 519 %154 = OpLabel 520 OpBranch %147 521 %147 = OpLabel 522 %173 = OpLoad %17 %143 523 %174 = OpIAdd %17 %173 %55 524 OpStore %143 %174 525 OpBranch %144 526 %146 = OpLabel 527 %175 = OpAccessChain %20 %16 %80 528 %176 = OpLoad %6 %175 529 %177 = OpFDiv %6 %176 %59 530 %178 = OpAccessChain %20 %16 %80 531 OpStore %178 %177 532 %179 = OpAccessChain %20 %16 %119 533 OpStore %179 %19 534 OpStore %180 %18 535 OpBranch %181 536 %181 = OpLabel 537 OpLoopMerge %183 %184 None 538 OpBranch %185 539 %185 = OpLabel 540 %186 = OpLoad %17 %180 541 %187 = OpSLessThan %31 %186 %80 542 OpBranchConditional %187 %182 %183 543 %182 = OpLabel 544 OpStore %188 %18 545 OpBranch %189 546 %189 = OpLabel 547 OpLoopMerge %191 %192 None 548 OpBranch %193 549 %193 = OpLabel 550 %194 = OpLoad %17 %188 551 %195 = OpSLessThan %31 %194 %80 552 OpBranchConditional %195 %190 %191 553 %190 = OpLabel 554 %200 = OpLoad %17 %180 555 %201 = OpLoad %17 %188 556 %202 = OpAccessChain %47 %199 %18 %200 %201 557 %203 = OpLoad %6 %202 558 %204 = OpAccessChain %20 %16 %119 559 %205 = OpLoad %6 %204 560 %206 = OpFAdd %6 %205 %203 561 %207 = OpAccessChain %20 %16 %119 562 OpStore %207 %206 563 OpBranch %192 564 %192 = OpLabel 565 %208 = OpLoad %17 %188 566 %209 = OpIAdd %17 %208 %55 567 OpStore %188 %209 568 OpBranch %189 569 %191 = OpLabel 570 OpBranch %184 571 %184 = OpLabel 572 %210 = OpLoad %17 %180 573 %211 = OpIAdd %17 %210 %55 574 OpStore %180 %211 575 OpBranch %181 576 %183 = OpLabel 577 %212 = OpAccessChain %20 %16 %119 578 %213 = OpLoad %6 %212 579 %214 = OpFDiv %6 %213 %59 580 %215 = OpAccessChain %20 %16 %119 581 OpStore %215 %214 582 %217 = OpAccessChain %20 %16 %216 583 OpStore %217 %19 584 OpStore %218 %18 585 OpBranch %219 586 %219 = OpLabel 587 OpLoopMerge %221 %222 None 588 OpBranch %223 589 %223 = OpLabel 590 %224 = OpLoad %17 %218 591 %225 = OpSLessThan %31 %224 %80 592 OpBranchConditional %225 %220 %221 593 %220 = OpLabel 594 OpStore %226 %18 595 OpBranch %227 596 %227 = OpLabel 597 OpLoopMerge %229 %230 None 598 OpBranch %231 599 %231 = OpLabel 600 %232 = OpLoad %17 %226 601 %233 = OpSLessThan %31 %232 %119 602 OpBranchConditional %233 %228 %229 603 %228 = OpLabel 604 %238 = OpLoad %17 %218 605 %239 = OpLoad %17 %226 606 %240 = OpAccessChain %47 %237 %18 %238 %239 607 %241 = OpLoad %6 %240 608 %242 = OpAccessChain %20 %16 %216 609 %243 = OpLoad %6 %242 610 %244 = OpFAdd %6 %243 %241 611 %245 = OpAccessChain %20 %16 %216 612 OpStore %245 %244 613 OpBranch %230 614 %230 = OpLabel 615 %246 = OpLoad %17 %226 616 %247 = OpIAdd %17 %246 %55 617 OpStore %226 %247 618 OpBranch %227 619 %229 = OpLabel 620 OpBranch %222 621 %222 = OpLabel 622 %248 = OpLoad %17 %218 623 %249 = OpIAdd %17 %248 %55 624 OpStore %218 %249 625 OpBranch %219 626 %221 = OpLabel 627 %250 = OpAccessChain %20 %16 %216 628 %251 = OpLoad %6 %250 629 %252 = OpFDiv %6 %251 %59 630 %253 = OpAccessChain %20 %16 %216 631 OpStore %253 %252 632 %255 = OpAccessChain %20 %16 %254 633 OpStore %255 %19 634 OpStore %256 %18 635 OpBranch %257 636 %257 = OpLabel 637 OpLoopMerge %259 %260 None 638 OpBranch %261 639 %261 = OpLabel 640 %262 = OpLoad %17 %256 641 %263 = OpSLessThan %31 %262 %119 642 OpBranchConditional %263 %258 %259 643 %258 = OpLabel 644 OpStore %264 %18 645 OpBranch %265 646 %265 = OpLabel 647 OpLoopMerge %267 %268 None 648 OpBranch %269 649 %269 = OpLabel 650 %270 = OpLoad %17 %264 651 %271 = OpSLessThan %31 %270 %30 652 OpBranchConditional %271 %266 %267 653 %266 = OpLabel 654 %276 = OpLoad %17 %256 655 %277 = OpLoad %17 %264 656 %278 = OpAccessChain %47 %275 %18 %276 %277 657 %279 = OpLoad %6 %278 658 %280 = OpAccessChain %20 %16 %254 659 %281 = OpLoad %6 %280 660 %282 = OpFAdd %6 %281 %279 661 %283 = OpAccessChain %20 %16 %254 662 OpStore %283 %282 663 OpBranch %268 664 %268 = OpLabel 665 %284 = OpLoad %17 %264 666 %285 = OpIAdd %17 %284 %55 667 OpStore %264 %285 668 OpBranch %265 669 %267 = OpLabel 670 OpBranch %260 671 %260 = OpLabel 672 %286 = OpLoad %17 %256 673 %287 = OpIAdd %17 %286 %55 674 OpStore %256 %287 675 OpBranch %257 676 %259 = OpLabel 677 %288 = OpAccessChain %20 %16 %254 678 %289 = OpLoad %6 %288 679 %290 = OpFDiv %6 %289 %59 680 %291 = OpAccessChain %20 %16 %254 681 OpStore %291 %290 682 %293 = OpAccessChain %20 %16 %292 683 OpStore %293 %19 684 OpStore %294 %18 685 OpBranch %295 686 %295 = OpLabel 687 OpLoopMerge %297 %298 None 688 OpBranch %299 689 %299 = OpLabel 690 %300 = OpLoad %17 %294 691 %301 = OpSLessThan %31 %300 %119 692 OpBranchConditional %301 %296 %297 693 %296 = OpLabel 694 OpStore %302 %18 695 OpBranch %303 696 %303 = OpLabel 697 OpLoopMerge %305 %306 None 698 OpBranch %307 699 %307 = OpLabel 700 %308 = OpLoad %17 %302 701 %309 = OpSLessThan %31 %308 %80 702 OpBranchConditional %309 %304 %305 703 %304 = OpLabel 704 %314 = OpLoad %17 %294 705 %315 = OpLoad %17 %302 706 %316 = OpAccessChain %47 %313 %18 %314 %315 707 %317 = OpLoad %6 %316 708 %318 = OpAccessChain %20 %16 %292 709 %319 = OpLoad %6 %318 710 %320 = OpFAdd %6 %319 %317 711 %321 = OpAccessChain %20 %16 %292 712 OpStore %321 %320 713 OpBranch %306 714 %306 = OpLabel 715 %322 = OpLoad %17 %302 716 %323 = OpIAdd %17 %322 %55 717 OpStore %302 %323 718 OpBranch %303 719 %305 = OpLabel 720 OpBranch %298 721 %298 = OpLabel 722 %324 = OpLoad %17 %294 723 %325 = OpIAdd %17 %324 %55 724 OpStore %294 %325 725 OpBranch %295 726 %297 = OpLabel 727 %326 = OpAccessChain %20 %16 %292 728 %327 = OpLoad %6 %326 729 %328 = OpFDiv %6 %327 %59 730 %329 = OpAccessChain %20 %16 %292 731 OpStore %329 %328 732 %331 = OpAccessChain %20 %16 %330 733 OpStore %331 %19 734 OpStore %332 %18 735 OpBranch %333 736 %333 = OpLabel 737 OpLoopMerge %335 %336 None 738 OpBranch %337 739 %337 = OpLabel 740 %338 = OpLoad %17 %332 741 %339 = OpSLessThan %31 %338 %119 742 OpBranchConditional %339 %334 %335 743 %334 = OpLabel 744 OpStore %340 %18 745 OpBranch %341 746 %341 = OpLabel 747 OpLoopMerge %343 %344 None 748 OpBranch %345 749 %345 = OpLabel 750 %346 = OpLoad %17 %340 751 %347 = OpSLessThan %31 %346 %119 752 OpBranchConditional %347 %342 %343 753 %342 = OpLabel 754 %352 = OpLoad %17 %332 755 %353 = OpLoad %17 %340 756 %354 = OpAccessChain %47 %351 %18 %352 %353 757 %355 = OpLoad %6 %354 758 %356 = OpAccessChain %20 %16 %330 759 %357 = OpLoad %6 %356 760 %358 = OpFAdd %6 %357 %355 761 %359 = OpAccessChain %20 %16 %330 762 OpStore %359 %358 763 OpBranch %344 764 %344 = OpLabel 765 %360 = OpLoad %17 %340 766 %361 = OpIAdd %17 %360 %55 767 OpStore %340 %361 768 OpBranch %341 769 %343 = OpLabel 770 OpBranch %336 771 %336 = OpLabel 772 %362 = OpLoad %17 %332 773 %363 = OpIAdd %17 %362 %55 774 OpStore %332 %363 775 OpBranch %333 776 %335 = OpLabel 777 %364 = OpAccessChain %20 %16 %330 778 %365 = OpLoad %6 %364 779 %366 = OpFDiv %6 %365 %59 780 %367 = OpAccessChain %20 %16 %330 781 OpStore %367 %366 782 %373 = OpAccessChain %372 %370 %371 783 %374 = OpLoad %6 %373 784 %376 = OpAccessChain %375 %9 %371 785 %377 = OpLoad %6 %376 786 %379 = OpFDiv %6 %377 %378 787 %380 = OpFDiv %6 %374 %379 788 %381 = OpConvertFToS %17 %380 789 OpStore %368 %381 790 %384 = OpAccessChain %372 %370 %383 791 %385 = OpLoad %6 %384 792 %386 = OpAccessChain %375 %9 %371 793 %387 = OpLoad %6 %386 794 %388 = OpFDiv %6 %387 %378 795 %389 = OpFDiv %6 %385 %388 796 %390 = OpConvertFToS %17 %389 797 OpStore %382 %390 798 %392 = OpLoad %17 %382 799 %393 = OpIMul %17 %392 %80 800 %394 = OpLoad %17 %368 801 %395 = OpIAdd %17 %393 %394 802 OpStore %391 %395 803 %396 = OpLoad %17 %391 804 %397 = OpSGreaterThan %31 %396 %18 805 %398 = OpLoad %17 %391 806 %400 = OpSLessThan %31 %398 %399 807 %401 = OpLogicalAnd %31 %397 %400 808 OpSelectionMerge %403 None 809 OpBranchConditional %401 %402 %415 810 %402 = OpLabel 811 %406 = OpLoad %17 %391 812 %407 = OpAccessChain %20 %16 %406 813 %408 = OpLoad %6 %407 814 %409 = OpCompositeConstruct %82 %408 %408 %408 815 %411 = OpCompositeExtract %6 %409 0 816 %412 = OpCompositeExtract %6 %409 1 817 %413 = OpCompositeExtract %6 %409 2 818 %414 = OpCompositeConstruct %121 %411 %412 %413 %410 819 OpStore %405 %414 820 OpBranch %403 821 %415 = OpLabel 822 OpStore %405 %416 823 OpBranch %403 824 %403 = OpLabel 825 OpReturn 826 OpFunctionEnd 827END 828 829BUFFER framebuffer FORMAT B8G8R8A8_UNORM 830 831BUFFER m22 DATA_TYPE mat2x2<float> STD140 DATA 832 1.0 1.0 833 1.0 1.0 834END 835BUFFER m23 DATA_TYPE mat2x3<float> STD140 DATA 836 1.0 1.0 1.0 837 1.0 1.0 1.0 838END 839BUFFER m24 DATA_TYPE mat2x4<float> STD140 DATA 840 1.0 1.0 1.0 1.0 841 1.0 1.0 1.0 1.0 842END 843BUFFER m32 DATA_TYPE mat3x2<float> STD140 DATA 844 1.0 1.0 845 1.0 1.0 846 1.0 1.0 847END 848BUFFER m33 DATA_TYPE mat3x3<float> STD140 DATA 849 1.0 1.0 1.0 850 1.0 1.0 1.0 851 1.0 1.0 1.0 852END 853BUFFER m34 DATA_TYPE mat3x4<float> STD140 DATA 854 1.0 1.0 1.0 1.0 855 1.0 1.0 1.0 1.0 856 1.0 1.0 1.0 1.0 857END 858BUFFER m42 DATA_TYPE mat4x2<float> STD140 DATA 859 1.0 1.0 860 1.0 1.0 861 1.0 1.0 862 1.0 1.0 863END 864BUFFER m43 DATA_TYPE mat4x3<float> STD140 DATA 865 1.0 1.0 1.0 866 1.0 1.0 1.0 867 1.0 1.0 1.0 868 1.0 1.0 1.0 869END 870BUFFER m44 DATA_TYPE mat4x4<float> STD140 DATA 871 1.0 1.0 1.0 1.0 872 1.0 1.0 1.0 1.0 873 1.0 1.0 1.0 1.0 874 1.0 1.0 1.0 1.0 875END 876 877PIPELINE graphics gfz_pipeline 878 ATTACH gfz_vert 879 ATTACH gfz_frag 880 FRAMEBUFFER_SIZE 256 256 881 BIND BUFFER framebuffer AS color LOCATION 0 882 BIND BUFFER m22 AS uniform DESCRIPTOR_SET 0 BINDING 0 883 BIND BUFFER m23 AS uniform DESCRIPTOR_SET 0 BINDING 1 884 BIND BUFFER m24 AS uniform DESCRIPTOR_SET 0 BINDING 2 885 BIND BUFFER m32 AS uniform DESCRIPTOR_SET 0 BINDING 3 886 BIND BUFFER m33 AS uniform DESCRIPTOR_SET 0 BINDING 4 887 BIND BUFFER m34 AS uniform DESCRIPTOR_SET 0 BINDING 5 888 BIND BUFFER m42 AS uniform DESCRIPTOR_SET 0 BINDING 6 889 BIND BUFFER m43 AS uniform DESCRIPTOR_SET 0 BINDING 7 890 BIND BUFFER m44 AS uniform DESCRIPTOR_SET 0 BINDING 8 891END 892 893CLEAR_COLOR gfz_pipeline 0 0 0 255 894CLEAR gfz_pipeline 895RUN gfz_pipeline DRAW_RECT POS 0 0 SIZE 256 256 896 897EXPECT framebuffer IDX 0 0 SIZE 85 85 EQ_RGBA 0 0 0 255 898EXPECT framebuffer IDX 85 0 SIZE 85 85 EQ_RGBA 96 96 96 255 899EXPECT framebuffer IDX 171 0 SIZE 85 85 EQ_RGBA 127 127 127 255 900 901EXPECT framebuffer IDX 0 85 SIZE 85 85 EQ_RGBA 96 96 96 255 902EXPECT framebuffer IDX 85 85 SIZE 85 85 EQ_RGBA 143 143 143 255 903EXPECT framebuffer IDX 171 85 SIZE 85 85 EQ_RGBA 191 191 191 255 904 905EXPECT framebuffer IDX 0 171 SIZE 85 85 EQ_RGBA 127 127 127 255 906EXPECT framebuffer IDX 85 171 SIZE 85 85 EQ_RGBA 191 191 191 255 907EXPECT framebuffer IDX 171 171 SIZE 85 85 EQ_RGBA 255 255 255 255 908