| #!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<float> STD140 DATA |
| 1.0 1.0 |
| 1.0 1.0 |
| END |
| BUFFER m23 DATA_TYPE mat2x3<float> STD140 DATA |
| 1.0 1.0 1.0 |
| 1.0 1.0 1.0 |
| END |
| BUFFER m24 DATA_TYPE mat2x4<float> STD140 DATA |
| 1.0 1.0 1.0 1.0 |
| 1.0 1.0 1.0 1.0 |
| END |
| BUFFER m32 DATA_TYPE mat3x2<float> STD140 DATA |
| 1.0 1.0 |
| 1.0 1.0 |
| 1.0 1.0 |
| END |
| BUFFER m33 DATA_TYPE mat3x3<float> 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<float> 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<float> STD140 DATA |
| 1.0 1.0 |
| 1.0 1.0 |
| 1.0 1.0 |
| 1.0 1.0 |
| END |
| BUFFER m43 DATA_TYPE mat4x3<float> 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<float> 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 |