blob: 05466e9db18d67dec125df5563fd20a6f1b790d7 [file] [log] [blame]
#!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