1e5c31af7Sopenharmony_ci#!amber 2e5c31af7Sopenharmony_ci 3e5c31af7Sopenharmony_ci# Copyright 2020 Google LLC 4e5c31af7Sopenharmony_ci# 5e5c31af7Sopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License"); 6e5c31af7Sopenharmony_ci# you may not use this file except in compliance with the License. 7e5c31af7Sopenharmony_ci# You may obtain a copy of the License at 8e5c31af7Sopenharmony_ci# 9e5c31af7Sopenharmony_ci# http://www.apache.org/licenses/LICENSE-2.0 10e5c31af7Sopenharmony_ci# 11e5c31af7Sopenharmony_ci# Unless required by applicable law or agreed to in writing, software 12e5c31af7Sopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS, 13e5c31af7Sopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14e5c31af7Sopenharmony_ci# See the License for the specific language governing permissions and 15e5c31af7Sopenharmony_ci# limitations under the License. 16e5c31af7Sopenharmony_ci 17e5c31af7Sopenharmony_ci 18e5c31af7Sopenharmony_ci# A test for a bug found by the GraphicsFuzz project. 19e5c31af7Sopenharmony_ci 20e5c31af7Sopenharmony_ci# Short description: Three shaders diff: OpSelect -> OpPhi 21e5c31af7Sopenharmony_ci 22e5c31af7Sopenharmony_ci# The test renders three images using semantically equivalent shaders, and then 23e5c31af7Sopenharmony_ci# checks that the images are similar. 24e5c31af7Sopenharmony_ci# The test passes because the shaders have the same semantics and so the images 25e5c31af7Sopenharmony_ci# should be the same. 26e5c31af7Sopenharmony_ci 27e5c31af7Sopenharmony_ciSHADER vertex reference_vertex_shader PASSTHROUGH 28e5c31af7Sopenharmony_ci 29e5c31af7Sopenharmony_ciSHADER fragment reference_fragment_shader SPIRV-ASM TARGET_ENV spv1.0 30e5c31af7Sopenharmony_ci; SPIR-V 31e5c31af7Sopenharmony_ci; Version: 1.0 32e5c31af7Sopenharmony_ci; Generator: Khronos Glslang Reference Front End; 7 33e5c31af7Sopenharmony_ci; Bound: 366 34e5c31af7Sopenharmony_ci; Schema: 0 35e5c31af7Sopenharmony_ci OpCapability Shader 36e5c31af7Sopenharmony_ci %1 = OpExtInstImport "GLSL.std.450" 37e5c31af7Sopenharmony_ci OpMemoryModel Logical GLSL450 38e5c31af7Sopenharmony_ci OpEntryPoint Fragment %4 "main" %246 %268 39e5c31af7Sopenharmony_ci OpExecutionMode %4 OriginUpperLeft 40e5c31af7Sopenharmony_ci OpSource ESSL 320 41e5c31af7Sopenharmony_ci OpName %4 "main" 42e5c31af7Sopenharmony_ci OpName %246 "gl_FragCoord" 43e5c31af7Sopenharmony_ci OpName %249 "buf0" 44e5c31af7Sopenharmony_ci OpMemberName %249 0 "resolution" 45e5c31af7Sopenharmony_ci OpName %251 "" 46e5c31af7Sopenharmony_ci OpName %268 "_GLF_color" 47e5c31af7Sopenharmony_ci OpDecorate %246 BuiltIn FragCoord 48e5c31af7Sopenharmony_ci OpMemberDecorate %249 0 Offset 0 49e5c31af7Sopenharmony_ci OpDecorate %249 Block 50e5c31af7Sopenharmony_ci OpDecorate %251 DescriptorSet 0 51e5c31af7Sopenharmony_ci OpDecorate %251 Binding 0 52e5c31af7Sopenharmony_ci OpDecorate %268 Location 0 53e5c31af7Sopenharmony_ci %2 = OpTypeVoid 54e5c31af7Sopenharmony_ci %3 = OpTypeFunction %2 55e5c31af7Sopenharmony_ci %6 = OpTypeInt 32 1 56e5c31af7Sopenharmony_ci %7 = OpTypeVector %6 2 57e5c31af7Sopenharmony_ci %9 = OpTypeFloat 32 58e5c31af7Sopenharmony_ci %10 = OpTypeVector %9 4 59e5c31af7Sopenharmony_ci %20 = OpTypeInt 32 0 60e5c31af7Sopenharmony_ci %22 = OpTypePointer Function %6 61e5c31af7Sopenharmony_ci %25 = OpConstant %6 256 62e5c31af7Sopenharmony_ci %26 = OpTypeBool 63e5c31af7Sopenharmony_ci %28 = OpConstant %20 0 64e5c31af7Sopenharmony_ci %31 = OpConstant %20 256 65e5c31af7Sopenharmony_ci %32 = OpTypeArray %6 %31 66e5c31af7Sopenharmony_ci %33 = OpConstant %6 115 67e5c31af7Sopenharmony_ci %34 = OpConstant %6 133 68e5c31af7Sopenharmony_ci %35 = OpConstant %6 150 69e5c31af7Sopenharmony_ci %36 = OpConstant %6 164 70e5c31af7Sopenharmony_ci %37 = OpConstant %6 176 71e5c31af7Sopenharmony_ci %38 = OpConstant %6 184 72e5c31af7Sopenharmony_ci %39 = OpConstant %6 190 73e5c31af7Sopenharmony_ci %40 = OpConstant %6 192 74e5c31af7Sopenharmony_ci %41 = OpConstant %6 191 75e5c31af7Sopenharmony_ci %42 = OpConstant %6 187 76e5c31af7Sopenharmony_ci %43 = OpConstant %6 181 77e5c31af7Sopenharmony_ci %44 = OpConstant %6 172 78e5c31af7Sopenharmony_ci %45 = OpConstant %6 163 79e5c31af7Sopenharmony_ci %46 = OpConstant %6 153 80e5c31af7Sopenharmony_ci %47 = OpConstant %6 143 81e5c31af7Sopenharmony_ci %48 = OpConstant %6 134 82e5c31af7Sopenharmony_ci %49 = OpConstant %6 126 83e5c31af7Sopenharmony_ci %50 = OpConstant %6 120 84e5c31af7Sopenharmony_ci %51 = OpConstant %6 116 85e5c31af7Sopenharmony_ci %52 = OpConstant %6 114 86e5c31af7Sopenharmony_ci %53 = OpConstant %6 117 87e5c31af7Sopenharmony_ci %54 = OpConstant %6 121 88e5c31af7Sopenharmony_ci %55 = OpConstant %6 127 89e5c31af7Sopenharmony_ci %56 = OpConstant %6 141 90e5c31af7Sopenharmony_ci %57 = OpConstant %6 148 91e5c31af7Sopenharmony_ci %58 = OpConstant %6 154 92e5c31af7Sopenharmony_ci %59 = OpConstant %6 159 93e5c31af7Sopenharmony_ci %60 = OpConstant %6 162 94e5c31af7Sopenharmony_ci %61 = OpConstant %6 161 95e5c31af7Sopenharmony_ci %62 = OpConstant %6 157 96e5c31af7Sopenharmony_ci %63 = OpConstant %6 151 97e5c31af7Sopenharmony_ci %64 = OpConstant %6 124 98e5c31af7Sopenharmony_ci %65 = OpConstant %6 113 99e5c31af7Sopenharmony_ci %66 = OpConstant %6 103 100e5c31af7Sopenharmony_ci %67 = OpConstant %6 94 101e5c31af7Sopenharmony_ci %68 = OpConstant %6 87 102e5c31af7Sopenharmony_ci %69 = OpConstant %6 82 103e5c31af7Sopenharmony_ci %70 = OpConstant %6 79 104e5c31af7Sopenharmony_ci %71 = OpConstant %6 80 105e5c31af7Sopenharmony_ci %72 = OpConstant %6 84 106e5c31af7Sopenharmony_ci %73 = OpConstant %6 91 107e5c31af7Sopenharmony_ci %74 = OpConstant %6 101 108e5c31af7Sopenharmony_ci %75 = OpConstant %6 130 109e5c31af7Sopenharmony_ci %76 = OpConstant %6 146 110e5c31af7Sopenharmony_ci %77 = OpConstant %6 182 111e5c31af7Sopenharmony_ci %78 = OpConstant %6 199 112e5c31af7Sopenharmony_ci %79 = OpConstant %6 215 113e5c31af7Sopenharmony_ci %80 = OpConstant %6 229 114e5c31af7Sopenharmony_ci %81 = OpConstant %6 240 115e5c31af7Sopenharmony_ci %82 = OpConstant %6 249 116e5c31af7Sopenharmony_ci %83 = OpConstant %6 254 117e5c31af7Sopenharmony_ci %84 = OpConstant %6 250 118e5c31af7Sopenharmony_ci %85 = OpConstant %6 243 119e5c31af7Sopenharmony_ci %86 = OpConstant %6 233 120e5c31af7Sopenharmony_ci %87 = OpConstant %6 223 121e5c31af7Sopenharmony_ci %88 = OpConstant %6 212 122e5c31af7Sopenharmony_ci %89 = OpConstant %6 200 123e5c31af7Sopenharmony_ci %90 = OpConstant %6 180 124e5c31af7Sopenharmony_ci %91 = OpConstant %6 166 125e5c31af7Sopenharmony_ci %92 = OpConstant %6 169 126e5c31af7Sopenharmony_ci %93 = OpConstant %6 174 127e5c31af7Sopenharmony_ci %94 = OpConstant %6 179 128e5c31af7Sopenharmony_ci %95 = OpConstant %6 185 129e5c31af7Sopenharmony_ci %96 = OpConstant %6 193 130e5c31af7Sopenharmony_ci %97 = OpConstant %6 195 131e5c31af7Sopenharmony_ci %98 = OpConstant %6 188 132e5c31af7Sopenharmony_ci %99 = OpConstant %6 171 133e5c31af7Sopenharmony_ci %100 = OpConstant %6 149 134e5c31af7Sopenharmony_ci %101 = OpConstant %6 137 135e5c31af7Sopenharmony_ci %102 = OpConstant %6 125 136e5c31af7Sopenharmony_ci %103 = OpConstant %6 105 137e5c31af7Sopenharmony_ci %104 = OpConstant %6 97 138e5c31af7Sopenharmony_ci %105 = OpConstant %6 93 139e5c31af7Sopenharmony_ci %106 = OpConstant %6 98 140e5c31af7Sopenharmony_ci %107 = OpConstant %6 106 141e5c31af7Sopenharmony_ci %108 = OpConstant %6 145 142e5c31af7Sopenharmony_ci %109 = OpConstant %6 177 143e5c31af7Sopenharmony_ci %110 = OpConstant %6 208 144e5c31af7Sopenharmony_ci %111 = OpConstant %6 221 145e5c31af7Sopenharmony_ci %112 = OpConstant %6 231 146e5c31af7Sopenharmony_ci %113 = OpConstant %6 239 147e5c31af7Sopenharmony_ci %114 = OpConstant %6 244 148e5c31af7Sopenharmony_ci %115 = OpConstant %6 242 149e5c31af7Sopenharmony_ci %116 = OpConstant %6 236 150e5c31af7Sopenharmony_ci %117 = OpConstant %6 228 151e5c31af7Sopenharmony_ci %118 = OpConstant %6 218 152e5c31af7Sopenharmony_ci %119 = OpConstant %6 207 153e5c31af7Sopenharmony_ci %120 = OpConstant %6 194 154e5c31af7Sopenharmony_ci %121 = OpConstant %6 158 155e5c31af7Sopenharmony_ci %122 = OpConstant %6 135 156e5c31af7Sopenharmony_ci %123 = OpConstant %6 132 157e5c31af7Sopenharmony_ci %124 = OpConstant %6 131 158e5c31af7Sopenharmony_ci %125 = OpConstant %6 138 159e5c31af7Sopenharmony_ci %126 = OpConstant %6 147 160e5c31af7Sopenharmony_ci %127 = OpConstant %6 155 161e5c31af7Sopenharmony_ci %128 = OpConstant %6 152 162e5c31af7Sopenharmony_ci %129 = OpConstant %6 139 163e5c31af7Sopenharmony_ci %130 = OpConstant %6 129 164e5c31af7Sopenharmony_ci %131 = OpConstant %6 118 165e5c31af7Sopenharmony_ci %132 = OpConstant %6 68 166e5c31af7Sopenharmony_ci %133 = OpConstant %6 58 167e5c31af7Sopenharmony_ci %134 = OpConstant %6 49 168e5c31af7Sopenharmony_ci %135 = OpConstant %6 43 169e5c31af7Sopenharmony_ci %136 = OpConstant %6 40 170e5c31af7Sopenharmony_ci %137 = OpConstant %6 41 171e5c31af7Sopenharmony_ci %138 = OpConstant %6 44 172e5c31af7Sopenharmony_ci %139 = OpConstant %6 51 173e5c31af7Sopenharmony_ci %140 = OpConstant %6 61 174e5c31af7Sopenharmony_ci %141 = OpConstant %6 73 175e5c31af7Sopenharmony_ci %142 = OpConstant %6 119 176e5c31af7Sopenharmony_ci %143 = OpConstant %6 173 177e5c31af7Sopenharmony_ci %144 = OpConstant %6 186 178e5c31af7Sopenharmony_ci %145 = OpConstant %6 128 179e5c31af7Sopenharmony_ci %146 = OpConstant %6 104 180e5c31af7Sopenharmony_ci %147 = OpConstant %6 86 181e5c31af7Sopenharmony_ci %148 = OpConstant %6 81 182e5c31af7Sopenharmony_ci %149 = OpConstant %6 77 183e5c31af7Sopenharmony_ci %150 = OpConstant %6 76 184e5c31af7Sopenharmony_ci %151 = OpConstant %6 89 185e5c31af7Sopenharmony_ci %152 = OpConstant %6 102 186e5c31af7Sopenharmony_ci %153 = OpConstant %6 92 187e5c31af7Sopenharmony_ci %154 = OpConstant %6 83 188e5c31af7Sopenharmony_ci %155 = OpConstant %6 62 189e5c31af7Sopenharmony_ci %156 = OpConstant %6 50 190e5c31af7Sopenharmony_ci %157 = OpConstant %6 38 191e5c31af7Sopenharmony_ci %158 = OpConstant %6 26 192e5c31af7Sopenharmony_ci %159 = OpConstant %6 16 193e5c31af7Sopenharmony_ci %160 = OpConstant %6 8 194e5c31af7Sopenharmony_ci %161 = OpConstant %6 2 195e5c31af7Sopenharmony_ci %162 = OpConstant %6 0 196e5c31af7Sopenharmony_ci %163 = OpConstant %6 4 197e5c31af7Sopenharmony_ci %164 = OpConstant %6 11 198e5c31af7Sopenharmony_ci %165 = OpConstant %6 21 199e5c31af7Sopenharmony_ci %166 = OpConstant %6 33 200e5c31af7Sopenharmony_ci %167 = OpConstant %6 48 201e5c31af7Sopenharmony_ci %168 = OpConstant %6 64 202e5c31af7Sopenharmony_ci %169 = OpConstant %6 144 203e5c31af7Sopenharmony_ci %170 = OpConstant %6 123 204e5c31af7Sopenharmony_ci %171 = OpConstant %6 112 205e5c31af7Sopenharmony_ci %172 = OpConstant %6 100 206e5c31af7Sopenharmony_ci %173 = OpConstant %6 90 207e5c31af7Sopenharmony_ci %174 = OpConstant %6 65 208e5c31af7Sopenharmony_ci %175 = OpConstant %6 67 209e5c31af7Sopenharmony_ci %176 = OpConstant %6 70 210e5c31af7Sopenharmony_ci %177 = OpConstant %6 75 211e5c31af7Sopenharmony_ci %178 = OpConstant %6 95 212e5c31af7Sopenharmony_ci %179 = OpConstant %6 88 213e5c31af7Sopenharmony_ci %180 = OpConstant %6 69 214e5c31af7Sopenharmony_ci %181 = OpConstant %6 47 215e5c31af7Sopenharmony_ci %182 = OpConstant %6 36 216e5c31af7Sopenharmony_ci %183 = OpConstant %6 18 217e5c31af7Sopenharmony_ci %184 = OpConstant %6 13 218e5c31af7Sopenharmony_ci %185 = OpConstant %6 15 219e5c31af7Sopenharmony_ci %186 = OpConstant %6 22 220e5c31af7Sopenharmony_ci %187 = OpConstant %6 32 221e5c31af7Sopenharmony_ci %188 = OpConstant %6 45 222e5c31af7Sopenharmony_ci %189 = OpConstant %6 60 223e5c31af7Sopenharmony_ci %190 = OpConstantComposite %32 %33 %34 %35 %36 %37 %38 %39 %40 %41 %42 %43 %44 %45 %46 %47 %48 %49 %50 %51 %52 %52 %53 %54 %55 %48 %56 %57 %58 %59 %60 %45 %61 %62 %63 %47 %48 %64 %65 %66 %67 %68 %69 %70 %71 %72 %73 %74 %52 %75 %76 %36 %77 %78 %79 %80 %81 %82 %83 %25 %83 %84 %85 %86 %87 %88 %89 %39 %90 %44 %91 %45 %61 %60 %36 %92 %93 %94 %95 %39 %96 %97 %97 %40 %98 %90 %99 %61 %100 %101 %102 %52 %103 %104 %105 %73 %105 %106 %107 %53 %75 %108 %61 %109 %96 %110 %111 %112 %113 %85 %114 %115 %116 %117 %118 %119 %120 %43 %92 %121 %57 %56 %122 %123 %124 %123 %122 %125 %47 %126 %63 %58 %127 %127 %128 %76 %129 %130 %131 %107 %105 %71 %132 %133 %134 %135 %136 %137 %138 %139 %140 %141 %68 %66 %142 %48 %100 %60 %143 %43 %144 %98 %144 %43 %93 %36 %46 %56 %145 %51 %146 %67 %147 %148 %149 %150 %149 %71 %72 %151 %67 %106 %152 %146 %146 %152 %106 %153 %154 %141 %155 %156 %157 %158 %159 %160 %161 %162 %162 %163 %164 %165 %166 %167 %168 %148 %106 %52 %130 %56 %63 %121 %61 %61 %121 %128 %169 %48 %170 %171 %172 %173 %148 %141 %132 %174 %174 %175 %176 %177 %148 %68 %153 %104 %74 %66 %152 %172 %178 %179 %70 %180 %133 %181 %182 %158 %183 %184 %164 %164 %185 %186 %187 %188 %189 %149 %67 224e5c31af7Sopenharmony_ci %193 = OpTypePointer Function %32 225e5c31af7Sopenharmony_ci %215 = OpConstant %9 15 226e5c31af7Sopenharmony_ci %231 = OpConstant %9 1 227e5c31af7Sopenharmony_ci %236 = OpConstant %6 1 228e5c31af7Sopenharmony_ci %238 = OpConstant %9 0 229e5c31af7Sopenharmony_ci %239 = OpConstantComposite %10 %238 %238 %238 %231 230e5c31af7Sopenharmony_ci %242 = OpTypeVector %9 2 231e5c31af7Sopenharmony_ci %245 = OpTypePointer Input %10 232e5c31af7Sopenharmony_ci %246 = OpVariable %245 Input 233e5c31af7Sopenharmony_ci %249 = OpTypeStruct %242 234e5c31af7Sopenharmony_ci %250 = OpTypePointer Uniform %249 235e5c31af7Sopenharmony_ci %251 = OpVariable %250 Uniform 236e5c31af7Sopenharmony_ci %252 = OpTypePointer Uniform %242 237e5c31af7Sopenharmony_ci %259 = OpConstant %9 256 238e5c31af7Sopenharmony_ci %267 = OpTypePointer Output %10 239e5c31af7Sopenharmony_ci %268 = OpVariable %267 Output 240e5c31af7Sopenharmony_ci %277 = OpConstantFalse %26 241e5c31af7Sopenharmony_ci %280 = OpConstantTrue %26 242e5c31af7Sopenharmony_ci %363 = OpUndef %10 243e5c31af7Sopenharmony_ci %365 = OpConstant %9 0.0666666701 244e5c31af7Sopenharmony_ci %4 = OpFunction %2 None %3 245e5c31af7Sopenharmony_ci %5 = OpLabel 246e5c31af7Sopenharmony_ci %285 = OpVariable %193 Function 247e5c31af7Sopenharmony_ci %286 = OpVariable %193 Function 248e5c31af7Sopenharmony_ci %288 = OpVariable %193 Function 249e5c31af7Sopenharmony_ci %247 = OpLoad %10 %246 250e5c31af7Sopenharmony_ci %248 = OpVectorShuffle %242 %247 %247 0 1 251e5c31af7Sopenharmony_ci %253 = OpAccessChain %252 %251 %162 252e5c31af7Sopenharmony_ci %254 = OpLoad %242 %253 253e5c31af7Sopenharmony_ci %255 = OpFDiv %242 %248 %254 254e5c31af7Sopenharmony_ci %258 = OpCompositeExtract %9 %255 0 255e5c31af7Sopenharmony_ci %260 = OpFMul %9 %258 %259 256e5c31af7Sopenharmony_ci %261 = OpConvertFToS %6 %260 257e5c31af7Sopenharmony_ci %263 = OpCompositeExtract %9 %255 1 258e5c31af7Sopenharmony_ci %264 = OpFMul %9 %263 %259 259e5c31af7Sopenharmony_ci %265 = OpConvertFToS %6 %264 260e5c31af7Sopenharmony_ci %266 = OpCompositeConstruct %7 %261 %265 261e5c31af7Sopenharmony_ci OpSelectionMerge %341 None 262e5c31af7Sopenharmony_ci OpSwitch %28 %291 263e5c31af7Sopenharmony_ci %291 = OpLabel 264e5c31af7Sopenharmony_ci OpBranch %292 265e5c31af7Sopenharmony_ci %292 = OpLabel 266e5c31af7Sopenharmony_ci %355 = OpPhi %7 %266 %291 %354 %337 267e5c31af7Sopenharmony_ci %295 = OpCompositeExtract %6 %355 1 268e5c31af7Sopenharmony_ci %296 = OpINotEqual %26 %295 %25 269e5c31af7Sopenharmony_ci OpLoopMerge %338 %337 None 270e5c31af7Sopenharmony_ci OpBranchConditional %296 %297 %338 271e5c31af7Sopenharmony_ci %297 = OpLabel 272e5c31af7Sopenharmony_ci %299 = OpCompositeExtract %6 %355 0 273e5c31af7Sopenharmony_ci OpStore %285 %190 274e5c31af7Sopenharmony_ci %302 = OpAccessChain %22 %285 %295 275e5c31af7Sopenharmony_ci %303 = OpLoad %6 %302 276e5c31af7Sopenharmony_ci %304 = OpIAdd %6 %303 %185 277e5c31af7Sopenharmony_ci %305 = OpSLessThan %26 %299 %304 278e5c31af7Sopenharmony_ci OpSelectionMerge %315 None 279e5c31af7Sopenharmony_ci OpBranchConditional %305 %306 %315 280e5c31af7Sopenharmony_ci %306 = OpLabel 281e5c31af7Sopenharmony_ci OpStore %286 %190 282e5c31af7Sopenharmony_ci %311 = OpAccessChain %22 %286 %295 283e5c31af7Sopenharmony_ci %312 = OpLoad %6 %311 284e5c31af7Sopenharmony_ci %313 = OpISub %6 %312 %185 285e5c31af7Sopenharmony_ci %314 = OpSGreaterThan %26 %299 %313 286e5c31af7Sopenharmony_ci OpBranch %315 287e5c31af7Sopenharmony_ci %315 = OpLabel 288e5c31af7Sopenharmony_ci %316 = OpPhi %26 %305 %297 %314 %306 289e5c31af7Sopenharmony_ci OpSelectionMerge %333 None 290e5c31af7Sopenharmony_ci OpBranchConditional %316 %317 %333 291e5c31af7Sopenharmony_ci %317 = OpLabel 292e5c31af7Sopenharmony_ci OpStore %288 %190 293e5c31af7Sopenharmony_ci %322 = OpAccessChain %22 %288 %295 294e5c31af7Sopenharmony_ci %323 = OpLoad %6 %322 295e5c31af7Sopenharmony_ci %324 = OpISub %6 %299 %323 296e5c31af7Sopenharmony_ci %325 = OpConvertSToF %9 %324 297e5c31af7Sopenharmony_ci %326 = OpExtInst %9 %1 FAbs %325 298e5c31af7Sopenharmony_ci %327 = OpFSub %9 %215 %326 299e5c31af7Sopenharmony_ci %328 = OpFMul %9 %327 %365 300e5c31af7Sopenharmony_ci %332 = OpCompositeConstruct %10 %328 %328 %328 %231 301e5c31af7Sopenharmony_ci OpBranch %338 302e5c31af7Sopenharmony_ci %333 = OpLabel 303e5c31af7Sopenharmony_ci %336 = OpIAdd %6 %295 %236 304e5c31af7Sopenharmony_ci %354 = OpCompositeInsert %7 %336 %355 1 305e5c31af7Sopenharmony_ci OpBranch %337 306e5c31af7Sopenharmony_ci %337 = OpLabel 307e5c31af7Sopenharmony_ci OpBranch %292 308e5c31af7Sopenharmony_ci %338 = OpLabel 309e5c31af7Sopenharmony_ci %361 = OpPhi %10 %363 %292 %332 %317 310e5c31af7Sopenharmony_ci %357 = OpPhi %26 %277 %292 %280 %317 311e5c31af7Sopenharmony_ci OpSelectionMerge %340 None 312e5c31af7Sopenharmony_ci OpBranchConditional %357 %341 %340 313e5c31af7Sopenharmony_ci %340 = OpLabel 314e5c31af7Sopenharmony_ci OpBranch %341 315e5c31af7Sopenharmony_ci %341 = OpLabel 316e5c31af7Sopenharmony_ci %360 = OpPhi %10 %361 %338 %239 %340 317e5c31af7Sopenharmony_ci OpStore %268 %360 318e5c31af7Sopenharmony_ci OpReturn 319e5c31af7Sopenharmony_ci OpFunctionEnd 320e5c31af7Sopenharmony_ciEND 321e5c31af7Sopenharmony_ci 322e5c31af7Sopenharmony_ci# uniforms for reference 323e5c31af7Sopenharmony_ci 324e5c31af7Sopenharmony_ci# resolution 325e5c31af7Sopenharmony_ciBUFFER reference_resolution DATA_TYPE vec2<float> STD140 DATA 326e5c31af7Sopenharmony_ci 32.0 16.0 327e5c31af7Sopenharmony_ciEND 328e5c31af7Sopenharmony_ci 329e5c31af7Sopenharmony_ciBUFFER reference_framebuffer FORMAT B8G8R8A8_UNORM 330e5c31af7Sopenharmony_ci 331e5c31af7Sopenharmony_ciPIPELINE graphics reference_pipeline 332e5c31af7Sopenharmony_ci ATTACH reference_vertex_shader 333e5c31af7Sopenharmony_ci ATTACH reference_fragment_shader 334e5c31af7Sopenharmony_ci FRAMEBUFFER_SIZE 32 16 335e5c31af7Sopenharmony_ci BIND BUFFER reference_framebuffer AS color LOCATION 0 336e5c31af7Sopenharmony_ci BIND BUFFER reference_resolution AS uniform DESCRIPTOR_SET 0 BINDING 0 337e5c31af7Sopenharmony_ciEND 338e5c31af7Sopenharmony_ciCLEAR_COLOR reference_pipeline 0 0 0 255 339e5c31af7Sopenharmony_ci 340e5c31af7Sopenharmony_ciCLEAR reference_pipeline 341e5c31af7Sopenharmony_ciRUN reference_pipeline DRAW_RECT POS 0 0 SIZE 32 16 342e5c31af7Sopenharmony_ci 343e5c31af7Sopenharmony_ci 344e5c31af7Sopenharmony_ciSHADER vertex variant_vertex_shader PASSTHROUGH 345e5c31af7Sopenharmony_ci 346e5c31af7Sopenharmony_ciSHADER fragment variant_fragment_shader SPIRV-ASM TARGET_ENV spv1.0 347e5c31af7Sopenharmony_ci; SPIR-V 348e5c31af7Sopenharmony_ci; Version: 1.0 349e5c31af7Sopenharmony_ci; Generator: Khronos Glslang Reference Front End; 7 350e5c31af7Sopenharmony_ci; Bound: 534 351e5c31af7Sopenharmony_ci; Schema: 0 352e5c31af7Sopenharmony_ci OpCapability Shader 353e5c31af7Sopenharmony_ci %1 = OpExtInstImport "GLSL.std.450" 354e5c31af7Sopenharmony_ci OpMemoryModel Logical GLSL450 355e5c31af7Sopenharmony_ci OpEntryPoint Fragment %4 "main" %246 %268 356e5c31af7Sopenharmony_ci OpExecutionMode %4 OriginUpperLeft 357e5c31af7Sopenharmony_ci OpSource ESSL 320 358e5c31af7Sopenharmony_ci OpName %4 "main" 359e5c31af7Sopenharmony_ci OpName %246 "gl_FragCoord" 360e5c31af7Sopenharmony_ci OpName %249 "buf0" 361e5c31af7Sopenharmony_ci OpMemberName %249 0 "resolution" 362e5c31af7Sopenharmony_ci OpName %251 "" 363e5c31af7Sopenharmony_ci OpName %268 "_GLF_color" 364e5c31af7Sopenharmony_ci OpDecorate %246 BuiltIn FragCoord 365e5c31af7Sopenharmony_ci OpMemberDecorate %249 0 Offset 0 366e5c31af7Sopenharmony_ci OpDecorate %249 Block 367e5c31af7Sopenharmony_ci OpDecorate %251 DescriptorSet 0 368e5c31af7Sopenharmony_ci OpDecorate %251 Binding 0 369e5c31af7Sopenharmony_ci OpDecorate %268 Location 0 370e5c31af7Sopenharmony_ci %2 = OpTypeVoid 371e5c31af7Sopenharmony_ci %3 = OpTypeFunction %2 372e5c31af7Sopenharmony_ci %6 = OpTypeInt 32 1 373e5c31af7Sopenharmony_ci %7 = OpTypeVector %6 2 374e5c31af7Sopenharmony_ci %9 = OpTypeFloat 32 375e5c31af7Sopenharmony_ci %10 = OpTypeVector %9 4 376e5c31af7Sopenharmony_ci %20 = OpTypeInt 32 0 377e5c31af7Sopenharmony_ci %22 = OpTypePointer Function %6 378e5c31af7Sopenharmony_ci %25 = OpConstant %6 256 379e5c31af7Sopenharmony_ci %26 = OpTypeBool 380e5c31af7Sopenharmony_ci %28 = OpConstant %20 0 381e5c31af7Sopenharmony_ci %31 = OpConstant %20 256 382e5c31af7Sopenharmony_ci %32 = OpTypeArray %6 %31 383e5c31af7Sopenharmony_ci %33 = OpConstant %6 115 384e5c31af7Sopenharmony_ci %34 = OpConstant %6 133 385e5c31af7Sopenharmony_ci %35 = OpConstant %6 150 386e5c31af7Sopenharmony_ci %36 = OpConstant %6 164 387e5c31af7Sopenharmony_ci %37 = OpConstant %6 176 388e5c31af7Sopenharmony_ci %38 = OpConstant %6 184 389e5c31af7Sopenharmony_ci %39 = OpConstant %6 190 390e5c31af7Sopenharmony_ci %40 = OpConstant %6 192 391e5c31af7Sopenharmony_ci %41 = OpConstant %6 191 392e5c31af7Sopenharmony_ci %42 = OpConstant %6 187 393e5c31af7Sopenharmony_ci %43 = OpConstant %6 181 394e5c31af7Sopenharmony_ci %44 = OpConstant %6 172 395e5c31af7Sopenharmony_ci %45 = OpConstant %6 163 396e5c31af7Sopenharmony_ci %46 = OpConstant %6 153 397e5c31af7Sopenharmony_ci %47 = OpConstant %6 143 398e5c31af7Sopenharmony_ci %48 = OpConstant %6 134 399e5c31af7Sopenharmony_ci %49 = OpConstant %6 126 400e5c31af7Sopenharmony_ci %50 = OpConstant %6 120 401e5c31af7Sopenharmony_ci %51 = OpConstant %6 116 402e5c31af7Sopenharmony_ci %52 = OpConstant %6 114 403e5c31af7Sopenharmony_ci %53 = OpConstant %6 117 404e5c31af7Sopenharmony_ci %54 = OpConstant %6 121 405e5c31af7Sopenharmony_ci %55 = OpConstant %6 127 406e5c31af7Sopenharmony_ci %56 = OpConstant %6 141 407e5c31af7Sopenharmony_ci %57 = OpConstant %6 148 408e5c31af7Sopenharmony_ci %58 = OpConstant %6 154 409e5c31af7Sopenharmony_ci %59 = OpConstant %6 159 410e5c31af7Sopenharmony_ci %60 = OpConstant %6 162 411e5c31af7Sopenharmony_ci %61 = OpConstant %6 161 412e5c31af7Sopenharmony_ci %62 = OpConstant %6 157 413e5c31af7Sopenharmony_ci %63 = OpConstant %6 151 414e5c31af7Sopenharmony_ci %64 = OpConstant %6 124 415e5c31af7Sopenharmony_ci %65 = OpConstant %6 113 416e5c31af7Sopenharmony_ci %66 = OpConstant %6 103 417e5c31af7Sopenharmony_ci %67 = OpConstant %6 94 418e5c31af7Sopenharmony_ci %68 = OpConstant %6 87 419e5c31af7Sopenharmony_ci %69 = OpConstant %6 82 420e5c31af7Sopenharmony_ci %70 = OpConstant %6 79 421e5c31af7Sopenharmony_ci %71 = OpConstant %6 80 422e5c31af7Sopenharmony_ci %72 = OpConstant %6 84 423e5c31af7Sopenharmony_ci %73 = OpConstant %6 91 424e5c31af7Sopenharmony_ci %74 = OpConstant %6 101 425e5c31af7Sopenharmony_ci %75 = OpConstant %6 130 426e5c31af7Sopenharmony_ci %76 = OpConstant %6 146 427e5c31af7Sopenharmony_ci %77 = OpConstant %6 182 428e5c31af7Sopenharmony_ci %78 = OpConstant %6 199 429e5c31af7Sopenharmony_ci %79 = OpConstant %6 215 430e5c31af7Sopenharmony_ci %80 = OpConstant %6 229 431e5c31af7Sopenharmony_ci %81 = OpConstant %6 240 432e5c31af7Sopenharmony_ci %82 = OpConstant %6 249 433e5c31af7Sopenharmony_ci %83 = OpConstant %6 254 434e5c31af7Sopenharmony_ci %84 = OpConstant %6 250 435e5c31af7Sopenharmony_ci %85 = OpConstant %6 243 436e5c31af7Sopenharmony_ci %86 = OpConstant %6 233 437e5c31af7Sopenharmony_ci %87 = OpConstant %6 223 438e5c31af7Sopenharmony_ci %88 = OpConstant %6 212 439e5c31af7Sopenharmony_ci %89 = OpConstant %6 200 440e5c31af7Sopenharmony_ci %90 = OpConstant %6 180 441e5c31af7Sopenharmony_ci %91 = OpConstant %6 166 442e5c31af7Sopenharmony_ci %92 = OpConstant %6 169 443e5c31af7Sopenharmony_ci %93 = OpConstant %6 174 444e5c31af7Sopenharmony_ci %94 = OpConstant %6 179 445e5c31af7Sopenharmony_ci %95 = OpConstant %6 185 446e5c31af7Sopenharmony_ci %96 = OpConstant %6 193 447e5c31af7Sopenharmony_ci %97 = OpConstant %6 195 448e5c31af7Sopenharmony_ci %98 = OpConstant %6 188 449e5c31af7Sopenharmony_ci %99 = OpConstant %6 171 450e5c31af7Sopenharmony_ci %100 = OpConstant %6 149 451e5c31af7Sopenharmony_ci %101 = OpConstant %6 137 452e5c31af7Sopenharmony_ci %102 = OpConstant %6 125 453e5c31af7Sopenharmony_ci %103 = OpConstant %6 105 454e5c31af7Sopenharmony_ci %104 = OpConstant %6 97 455e5c31af7Sopenharmony_ci %105 = OpConstant %6 93 456e5c31af7Sopenharmony_ci %106 = OpConstant %6 98 457e5c31af7Sopenharmony_ci %107 = OpConstant %6 106 458e5c31af7Sopenharmony_ci %108 = OpConstant %6 145 459e5c31af7Sopenharmony_ci %109 = OpConstant %6 177 460e5c31af7Sopenharmony_ci %110 = OpConstant %6 208 461e5c31af7Sopenharmony_ci %111 = OpConstant %6 221 462e5c31af7Sopenharmony_ci %112 = OpConstant %6 231 463e5c31af7Sopenharmony_ci %113 = OpConstant %6 239 464e5c31af7Sopenharmony_ci %114 = OpConstant %6 244 465e5c31af7Sopenharmony_ci %115 = OpConstant %6 242 466e5c31af7Sopenharmony_ci %116 = OpConstant %6 236 467e5c31af7Sopenharmony_ci %117 = OpConstant %6 228 468e5c31af7Sopenharmony_ci %118 = OpConstant %6 218 469e5c31af7Sopenharmony_ci %119 = OpConstant %6 207 470e5c31af7Sopenharmony_ci %120 = OpConstant %6 194 471e5c31af7Sopenharmony_ci %121 = OpConstant %6 158 472e5c31af7Sopenharmony_ci %122 = OpConstant %6 135 473e5c31af7Sopenharmony_ci %123 = OpConstant %6 132 474e5c31af7Sopenharmony_ci %124 = OpConstant %6 131 475e5c31af7Sopenharmony_ci %125 = OpConstant %6 138 476e5c31af7Sopenharmony_ci %126 = OpConstant %6 147 477e5c31af7Sopenharmony_ci %127 = OpConstant %6 155 478e5c31af7Sopenharmony_ci %128 = OpConstant %6 152 479e5c31af7Sopenharmony_ci %129 = OpConstant %6 139 480e5c31af7Sopenharmony_ci %130 = OpConstant %6 129 481e5c31af7Sopenharmony_ci %131 = OpConstant %6 118 482e5c31af7Sopenharmony_ci %132 = OpConstant %6 68 483e5c31af7Sopenharmony_ci %133 = OpConstant %6 58 484e5c31af7Sopenharmony_ci %134 = OpConstant %6 49 485e5c31af7Sopenharmony_ci %135 = OpConstant %6 43 486e5c31af7Sopenharmony_ci %136 = OpConstant %6 40 487e5c31af7Sopenharmony_ci %137 = OpConstant %6 41 488e5c31af7Sopenharmony_ci %138 = OpConstant %6 44 489e5c31af7Sopenharmony_ci %139 = OpConstant %6 51 490e5c31af7Sopenharmony_ci %140 = OpConstant %6 61 491e5c31af7Sopenharmony_ci %141 = OpConstant %6 73 492e5c31af7Sopenharmony_ci %142 = OpConstant %6 119 493e5c31af7Sopenharmony_ci %143 = OpConstant %6 173 494e5c31af7Sopenharmony_ci %144 = OpConstant %6 186 495e5c31af7Sopenharmony_ci %145 = OpConstant %6 128 496e5c31af7Sopenharmony_ci %146 = OpConstant %6 104 497e5c31af7Sopenharmony_ci %147 = OpConstant %6 86 498e5c31af7Sopenharmony_ci %148 = OpConstant %6 81 499e5c31af7Sopenharmony_ci %149 = OpConstant %6 77 500e5c31af7Sopenharmony_ci %150 = OpConstant %6 76 501e5c31af7Sopenharmony_ci %151 = OpConstant %6 89 502e5c31af7Sopenharmony_ci %152 = OpConstant %6 102 503e5c31af7Sopenharmony_ci %153 = OpConstant %6 92 504e5c31af7Sopenharmony_ci %154 = OpConstant %6 83 505e5c31af7Sopenharmony_ci %155 = OpConstant %6 62 506e5c31af7Sopenharmony_ci %156 = OpConstant %6 50 507e5c31af7Sopenharmony_ci %157 = OpConstant %6 38 508e5c31af7Sopenharmony_ci %158 = OpConstant %6 26 509e5c31af7Sopenharmony_ci %159 = OpConstant %6 16 510e5c31af7Sopenharmony_ci %160 = OpConstant %6 8 511e5c31af7Sopenharmony_ci %161 = OpConstant %6 2 512e5c31af7Sopenharmony_ci %162 = OpConstant %6 0 513e5c31af7Sopenharmony_ci %163 = OpConstant %6 4 514e5c31af7Sopenharmony_ci %164 = OpConstant %6 11 515e5c31af7Sopenharmony_ci %165 = OpConstant %6 21 516e5c31af7Sopenharmony_ci %166 = OpConstant %6 33 517e5c31af7Sopenharmony_ci %167 = OpConstant %6 48 518e5c31af7Sopenharmony_ci %168 = OpConstant %6 64 519e5c31af7Sopenharmony_ci %169 = OpConstant %6 144 520e5c31af7Sopenharmony_ci %170 = OpConstant %6 123 521e5c31af7Sopenharmony_ci %171 = OpConstant %6 112 522e5c31af7Sopenharmony_ci %172 = OpConstant %6 100 523e5c31af7Sopenharmony_ci %173 = OpConstant %6 90 524e5c31af7Sopenharmony_ci %174 = OpConstant %6 65 525e5c31af7Sopenharmony_ci %175 = OpConstant %6 67 526e5c31af7Sopenharmony_ci %176 = OpConstant %6 70 527e5c31af7Sopenharmony_ci %177 = OpConstant %6 75 528e5c31af7Sopenharmony_ci %178 = OpConstant %6 95 529e5c31af7Sopenharmony_ci %179 = OpConstant %6 88 530e5c31af7Sopenharmony_ci %180 = OpConstant %6 69 531e5c31af7Sopenharmony_ci %181 = OpConstant %6 47 532e5c31af7Sopenharmony_ci %182 = OpConstant %6 36 533e5c31af7Sopenharmony_ci %183 = OpConstant %6 18 534e5c31af7Sopenharmony_ci %184 = OpConstant %6 13 535e5c31af7Sopenharmony_ci %185 = OpConstant %6 15 536e5c31af7Sopenharmony_ci %186 = OpConstant %6 22 537e5c31af7Sopenharmony_ci %187 = OpConstant %6 32 538e5c31af7Sopenharmony_ci %188 = OpConstant %6 45 539e5c31af7Sopenharmony_ci %189 = OpConstant %6 60 540e5c31af7Sopenharmony_ci %190 = OpConstantComposite %32 %33 %34 %35 %36 %37 %38 %39 %40 %41 %42 %43 %44 %45 %46 %47 %48 %49 %50 %51 %52 %52 %53 %54 %55 %48 %56 %57 %58 %59 %60 %45 %61 %62 %63 %47 %48 %64 %65 %66 %67 %68 %69 %70 %71 %72 %73 %74 %52 %75 %76 %36 %77 %78 %79 %80 %81 %82 %83 %25 %83 %84 %85 %86 %87 %88 %89 %39 %90 %44 %91 %45 %61 %60 %36 %92 %93 %94 %95 %39 %96 %97 %97 %40 %98 %90 %99 %61 %100 %101 %102 %52 %103 %104 %105 %73 %105 %106 %107 %53 %75 %108 %61 %109 %96 %110 %111 %112 %113 %85 %114 %115 %116 %117 %118 %119 %120 %43 %92 %121 %57 %56 %122 %123 %124 %123 %122 %125 %47 %126 %63 %58 %127 %127 %128 %76 %129 %130 %131 %107 %105 %71 %132 %133 %134 %135 %136 %137 %138 %139 %140 %141 %68 %66 %142 %48 %100 %60 %143 %43 %144 %98 %144 %43 %93 %36 %46 %56 %145 %51 %146 %67 %147 %148 %149 %150 %149 %71 %72 %151 %67 %106 %152 %146 %146 %152 %106 %153 %154 %141 %155 %156 %157 %158 %159 %160 %161 %162 %162 %163 %164 %165 %166 %167 %168 %148 %106 %52 %130 %56 %63 %121 %61 %61 %121 %128 %169 %48 %170 %171 %172 %173 %148 %141 %132 %174 %174 %175 %176 %177 %148 %68 %153 %104 %74 %66 %152 %172 %178 %179 %70 %180 %133 %181 %182 %158 %183 %184 %164 %164 %185 %186 %187 %188 %189 %149 %67 541e5c31af7Sopenharmony_ci %193 = OpTypePointer Function %32 542e5c31af7Sopenharmony_ci %215 = OpConstant %9 15 543e5c31af7Sopenharmony_ci %231 = OpConstant %9 1 544e5c31af7Sopenharmony_ci %236 = OpConstant %6 1 545e5c31af7Sopenharmony_ci %238 = OpConstant %9 0 546e5c31af7Sopenharmony_ci %239 = OpConstantComposite %10 %238 %238 %238 %231 547e5c31af7Sopenharmony_ci %242 = OpTypeVector %9 2 548e5c31af7Sopenharmony_ci %245 = OpTypePointer Input %10 549e5c31af7Sopenharmony_ci %246 = OpVariable %245 Input 550e5c31af7Sopenharmony_ci %249 = OpTypeStruct %242 551e5c31af7Sopenharmony_ci %250 = OpTypePointer Uniform %249 552e5c31af7Sopenharmony_ci %251 = OpVariable %250 Uniform 553e5c31af7Sopenharmony_ci %252 = OpTypePointer Uniform %242 554e5c31af7Sopenharmony_ci %259 = OpConstant %9 256 555e5c31af7Sopenharmony_ci %267 = OpTypePointer Output %10 556e5c31af7Sopenharmony_ci %268 = OpVariable %267 Output 557e5c31af7Sopenharmony_ci %277 = OpConstantFalse %26 558e5c31af7Sopenharmony_ci %280 = OpConstantTrue %26 559e5c31af7Sopenharmony_ci %363 = OpUndef %10 560e5c31af7Sopenharmony_ci %365 = OpConstant %9 0.0666666701 561e5c31af7Sopenharmony_ci %523 = OpConstant %6 0 562e5c31af7Sopenharmony_ci %4 = OpFunction %2 None %3 563e5c31af7Sopenharmony_ci %5 = OpLabel 564e5c31af7Sopenharmony_ci %285 = OpVariable %193 Function 565e5c31af7Sopenharmony_ci %286 = OpVariable %193 Function 566e5c31af7Sopenharmony_ci %288 = OpVariable %193 Function 567e5c31af7Sopenharmony_ci %247 = OpLoad %10 %246 568e5c31af7Sopenharmony_ci %248 = OpVectorShuffle %242 %247 %247 0 1 569e5c31af7Sopenharmony_ci %253 = OpAccessChain %252 %251 %162 570e5c31af7Sopenharmony_ci %254 = OpLoad %242 %253 571e5c31af7Sopenharmony_ci %255 = OpFDiv %242 %248 %254 572e5c31af7Sopenharmony_ci %258 = OpCompositeExtract %9 %255 0 573e5c31af7Sopenharmony_ci %260 = OpFMul %9 %258 %259 574e5c31af7Sopenharmony_ci %261 = OpConvertFToS %6 %260 575e5c31af7Sopenharmony_ci %263 = OpCompositeExtract %9 %255 1 576e5c31af7Sopenharmony_ci %264 = OpFMul %9 %263 %259 577e5c31af7Sopenharmony_ci %265 = OpConvertFToS %6 %264 578e5c31af7Sopenharmony_ci %266 = OpCompositeConstruct %7 %261 %265 579e5c31af7Sopenharmony_ci OpSelectionMerge %341 None 580e5c31af7Sopenharmony_ci OpSwitch %28 %291 581e5c31af7Sopenharmony_ci %291 = OpLabel 582e5c31af7Sopenharmony_ci OpBranch %292 583e5c31af7Sopenharmony_ci %292 = OpLabel 584e5c31af7Sopenharmony_ci %355 = OpPhi %7 %266 %291 %354 %337 585e5c31af7Sopenharmony_ci %295 = OpCompositeExtract %6 %355 1 586e5c31af7Sopenharmony_ci %296 = OpINotEqual %26 %295 %25 587e5c31af7Sopenharmony_ci OpLoopMerge %338 %337 None 588e5c31af7Sopenharmony_ci OpBranchConditional %296 %297 %338 589e5c31af7Sopenharmony_ci %297 = OpLabel 590e5c31af7Sopenharmony_ci %299 = OpCompositeExtract %6 %355 0 591e5c31af7Sopenharmony_ci OpStore %285 %190 592e5c31af7Sopenharmony_ci %302 = OpAccessChain %22 %285 %295 593e5c31af7Sopenharmony_ci %303 = OpLoad %6 %302 594e5c31af7Sopenharmony_ci %304 = OpIAdd %6 %303 %185 595e5c31af7Sopenharmony_ci %305 = OpSLessThan %26 %299 %304 596e5c31af7Sopenharmony_ci OpBranch %306 597e5c31af7Sopenharmony_ci %306 = OpLabel 598e5c31af7Sopenharmony_ci OpSelectionMerge %516 None 599e5c31af7Sopenharmony_ci OpBranchConditional %305 %517 %516 600e5c31af7Sopenharmony_ci %517 = OpLabel 601e5c31af7Sopenharmony_ci OpStore %286 %190 602e5c31af7Sopenharmony_ci OpBranch %516 603e5c31af7Sopenharmony_ci %516 = OpLabel 604e5c31af7Sopenharmony_ci %311 = OpAccessChain %22 %286 %295 605e5c31af7Sopenharmony_ci OpSelectionMerge %518 None 606e5c31af7Sopenharmony_ci OpBranchConditional %305 %519 %521 607e5c31af7Sopenharmony_ci %519 = OpLabel 608e5c31af7Sopenharmony_ci %520 = OpLoad %6 %311 609e5c31af7Sopenharmony_ci OpBranch %518 610e5c31af7Sopenharmony_ci %521 = OpLabel 611e5c31af7Sopenharmony_ci %522 = OpCopyObject %6 %523 612e5c31af7Sopenharmony_ci OpBranch %518 613e5c31af7Sopenharmony_ci %518 = OpLabel 614e5c31af7Sopenharmony_ci %312 = OpPhi %6 %520 %519 %522 %521 615e5c31af7Sopenharmony_ci %313 = OpISub %6 %312 %185 616e5c31af7Sopenharmony_ci %314 = OpSGreaterThan %26 %299 %313 617e5c31af7Sopenharmony_ci OpSelectionMerge %315 None 618e5c31af7Sopenharmony_ci OpBranchConditional %305 %532 %533 619e5c31af7Sopenharmony_ci %532 = OpLabel 620e5c31af7Sopenharmony_ci OpBranch %315 621e5c31af7Sopenharmony_ci %533 = OpLabel 622e5c31af7Sopenharmony_ci OpBranch %315 623e5c31af7Sopenharmony_ci %315 = OpLabel 624e5c31af7Sopenharmony_ci %316 = OpPhi %26 %314 %532 %305 %533 625e5c31af7Sopenharmony_ci OpSelectionMerge %333 None 626e5c31af7Sopenharmony_ci OpBranchConditional %316 %317 %333 627e5c31af7Sopenharmony_ci %317 = OpLabel 628e5c31af7Sopenharmony_ci OpStore %288 %190 629e5c31af7Sopenharmony_ci %322 = OpAccessChain %22 %288 %295 630e5c31af7Sopenharmony_ci %323 = OpLoad %6 %322 631e5c31af7Sopenharmony_ci %324 = OpISub %6 %299 %323 632e5c31af7Sopenharmony_ci %325 = OpConvertSToF %9 %324 633e5c31af7Sopenharmony_ci %326 = OpExtInst %9 %1 FAbs %325 634e5c31af7Sopenharmony_ci %327 = OpFSub %9 %215 %326 635e5c31af7Sopenharmony_ci %328 = OpFMul %9 %327 %365 636e5c31af7Sopenharmony_ci %332 = OpCompositeConstruct %10 %328 %328 %328 %231 637e5c31af7Sopenharmony_ci OpBranch %338 638e5c31af7Sopenharmony_ci %333 = OpLabel 639e5c31af7Sopenharmony_ci %336 = OpIAdd %6 %295 %236 640e5c31af7Sopenharmony_ci %354 = OpCompositeInsert %7 %336 %355 1 641e5c31af7Sopenharmony_ci OpBranch %337 642e5c31af7Sopenharmony_ci %337 = OpLabel 643e5c31af7Sopenharmony_ci OpBranch %292 644e5c31af7Sopenharmony_ci %338 = OpLabel 645e5c31af7Sopenharmony_ci %361 = OpPhi %10 %363 %292 %332 %317 646e5c31af7Sopenharmony_ci %357 = OpPhi %26 %277 %292 %280 %317 647e5c31af7Sopenharmony_ci OpSelectionMerge %340 None 648e5c31af7Sopenharmony_ci OpBranchConditional %357 %341 %340 649e5c31af7Sopenharmony_ci %340 = OpLabel 650e5c31af7Sopenharmony_ci OpBranch %341 651e5c31af7Sopenharmony_ci %341 = OpLabel 652e5c31af7Sopenharmony_ci %360 = OpPhi %10 %361 %338 %239 %340 653e5c31af7Sopenharmony_ci OpStore %268 %360 654e5c31af7Sopenharmony_ci OpReturn 655e5c31af7Sopenharmony_ci OpFunctionEnd 656e5c31af7Sopenharmony_ciEND 657e5c31af7Sopenharmony_ci 658e5c31af7Sopenharmony_ci# uniforms for variant 659e5c31af7Sopenharmony_ci 660e5c31af7Sopenharmony_ci# resolution 661e5c31af7Sopenharmony_ciBUFFER variant_resolution DATA_TYPE vec2<float> STD140 DATA 662e5c31af7Sopenharmony_ci 32.0 16.0 663e5c31af7Sopenharmony_ciEND 664e5c31af7Sopenharmony_ci 665e5c31af7Sopenharmony_ciBUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM 666e5c31af7Sopenharmony_ci 667e5c31af7Sopenharmony_ciPIPELINE graphics variant_pipeline 668e5c31af7Sopenharmony_ci ATTACH variant_vertex_shader 669e5c31af7Sopenharmony_ci ATTACH variant_fragment_shader 670e5c31af7Sopenharmony_ci FRAMEBUFFER_SIZE 32 16 671e5c31af7Sopenharmony_ci BIND BUFFER variant_framebuffer AS color LOCATION 0 672e5c31af7Sopenharmony_ci BIND BUFFER variant_resolution AS uniform DESCRIPTOR_SET 0 BINDING 0 673e5c31af7Sopenharmony_ciEND 674e5c31af7Sopenharmony_ciCLEAR_COLOR variant_pipeline 0 0 0 255 675e5c31af7Sopenharmony_ci 676e5c31af7Sopenharmony_ciCLEAR variant_pipeline 677e5c31af7Sopenharmony_ciRUN variant_pipeline DRAW_RECT POS 0 0 SIZE 32 16 678e5c31af7Sopenharmony_ci 679e5c31af7Sopenharmony_ci 680e5c31af7Sopenharmony_ciSHADER vertex variant_2_vertex_shader PASSTHROUGH 681e5c31af7Sopenharmony_ci 682e5c31af7Sopenharmony_ciSHADER fragment variant_2_fragment_shader SPIRV-ASM TARGET_ENV spv1.0 683e5c31af7Sopenharmony_ci; SPIR-V 684e5c31af7Sopenharmony_ci; Version: 1.0 685e5c31af7Sopenharmony_ci; Generator: Khronos Glslang Reference Front End; 7 686e5c31af7Sopenharmony_ci; Bound: 524 687e5c31af7Sopenharmony_ci; Schema: 0 688e5c31af7Sopenharmony_ci OpCapability Shader 689e5c31af7Sopenharmony_ci %1 = OpExtInstImport "GLSL.std.450" 690e5c31af7Sopenharmony_ci OpMemoryModel Logical GLSL450 691e5c31af7Sopenharmony_ci OpEntryPoint Fragment %4 "main" %246 %268 692e5c31af7Sopenharmony_ci OpExecutionMode %4 OriginUpperLeft 693e5c31af7Sopenharmony_ci OpSource ESSL 320 694e5c31af7Sopenharmony_ci OpName %4 "main" 695e5c31af7Sopenharmony_ci OpName %246 "gl_FragCoord" 696e5c31af7Sopenharmony_ci OpName %249 "buf0" 697e5c31af7Sopenharmony_ci OpMemberName %249 0 "resolution" 698e5c31af7Sopenharmony_ci OpName %251 "" 699e5c31af7Sopenharmony_ci OpName %268 "_GLF_color" 700e5c31af7Sopenharmony_ci OpDecorate %246 BuiltIn FragCoord 701e5c31af7Sopenharmony_ci OpMemberDecorate %249 0 Offset 0 702e5c31af7Sopenharmony_ci OpDecorate %249 Block 703e5c31af7Sopenharmony_ci OpDecorate %251 DescriptorSet 0 704e5c31af7Sopenharmony_ci OpDecorate %251 Binding 0 705e5c31af7Sopenharmony_ci OpDecorate %268 Location 0 706e5c31af7Sopenharmony_ci %2 = OpTypeVoid 707e5c31af7Sopenharmony_ci %3 = OpTypeFunction %2 708e5c31af7Sopenharmony_ci %6 = OpTypeInt 32 1 709e5c31af7Sopenharmony_ci %7 = OpTypeVector %6 2 710e5c31af7Sopenharmony_ci %9 = OpTypeFloat 32 711e5c31af7Sopenharmony_ci %10 = OpTypeVector %9 4 712e5c31af7Sopenharmony_ci %20 = OpTypeInt 32 0 713e5c31af7Sopenharmony_ci %22 = OpTypePointer Function %6 714e5c31af7Sopenharmony_ci %25 = OpConstant %6 256 715e5c31af7Sopenharmony_ci %26 = OpTypeBool 716e5c31af7Sopenharmony_ci %28 = OpConstant %20 0 717e5c31af7Sopenharmony_ci %31 = OpConstant %20 256 718e5c31af7Sopenharmony_ci %32 = OpTypeArray %6 %31 719e5c31af7Sopenharmony_ci %33 = OpConstant %6 115 720e5c31af7Sopenharmony_ci %34 = OpConstant %6 133 721e5c31af7Sopenharmony_ci %35 = OpConstant %6 150 722e5c31af7Sopenharmony_ci %36 = OpConstant %6 164 723e5c31af7Sopenharmony_ci %37 = OpConstant %6 176 724e5c31af7Sopenharmony_ci %38 = OpConstant %6 184 725e5c31af7Sopenharmony_ci %39 = OpConstant %6 190 726e5c31af7Sopenharmony_ci %40 = OpConstant %6 192 727e5c31af7Sopenharmony_ci %41 = OpConstant %6 191 728e5c31af7Sopenharmony_ci %42 = OpConstant %6 187 729e5c31af7Sopenharmony_ci %43 = OpConstant %6 181 730e5c31af7Sopenharmony_ci %44 = OpConstant %6 172 731e5c31af7Sopenharmony_ci %45 = OpConstant %6 163 732e5c31af7Sopenharmony_ci %46 = OpConstant %6 153 733e5c31af7Sopenharmony_ci %47 = OpConstant %6 143 734e5c31af7Sopenharmony_ci %48 = OpConstant %6 134 735e5c31af7Sopenharmony_ci %49 = OpConstant %6 126 736e5c31af7Sopenharmony_ci %50 = OpConstant %6 120 737e5c31af7Sopenharmony_ci %51 = OpConstant %6 116 738e5c31af7Sopenharmony_ci %52 = OpConstant %6 114 739e5c31af7Sopenharmony_ci %53 = OpConstant %6 117 740e5c31af7Sopenharmony_ci %54 = OpConstant %6 121 741e5c31af7Sopenharmony_ci %55 = OpConstant %6 127 742e5c31af7Sopenharmony_ci %56 = OpConstant %6 141 743e5c31af7Sopenharmony_ci %57 = OpConstant %6 148 744e5c31af7Sopenharmony_ci %58 = OpConstant %6 154 745e5c31af7Sopenharmony_ci %59 = OpConstant %6 159 746e5c31af7Sopenharmony_ci %60 = OpConstant %6 162 747e5c31af7Sopenharmony_ci %61 = OpConstant %6 161 748e5c31af7Sopenharmony_ci %62 = OpConstant %6 157 749e5c31af7Sopenharmony_ci %63 = OpConstant %6 151 750e5c31af7Sopenharmony_ci %64 = OpConstant %6 124 751e5c31af7Sopenharmony_ci %65 = OpConstant %6 113 752e5c31af7Sopenharmony_ci %66 = OpConstant %6 103 753e5c31af7Sopenharmony_ci %67 = OpConstant %6 94 754e5c31af7Sopenharmony_ci %68 = OpConstant %6 87 755e5c31af7Sopenharmony_ci %69 = OpConstant %6 82 756e5c31af7Sopenharmony_ci %70 = OpConstant %6 79 757e5c31af7Sopenharmony_ci %71 = OpConstant %6 80 758e5c31af7Sopenharmony_ci %72 = OpConstant %6 84 759e5c31af7Sopenharmony_ci %73 = OpConstant %6 91 760e5c31af7Sopenharmony_ci %74 = OpConstant %6 101 761e5c31af7Sopenharmony_ci %75 = OpConstant %6 130 762e5c31af7Sopenharmony_ci %76 = OpConstant %6 146 763e5c31af7Sopenharmony_ci %77 = OpConstant %6 182 764e5c31af7Sopenharmony_ci %78 = OpConstant %6 199 765e5c31af7Sopenharmony_ci %79 = OpConstant %6 215 766e5c31af7Sopenharmony_ci %80 = OpConstant %6 229 767e5c31af7Sopenharmony_ci %81 = OpConstant %6 240 768e5c31af7Sopenharmony_ci %82 = OpConstant %6 249 769e5c31af7Sopenharmony_ci %83 = OpConstant %6 254 770e5c31af7Sopenharmony_ci %84 = OpConstant %6 250 771e5c31af7Sopenharmony_ci %85 = OpConstant %6 243 772e5c31af7Sopenharmony_ci %86 = OpConstant %6 233 773e5c31af7Sopenharmony_ci %87 = OpConstant %6 223 774e5c31af7Sopenharmony_ci %88 = OpConstant %6 212 775e5c31af7Sopenharmony_ci %89 = OpConstant %6 200 776e5c31af7Sopenharmony_ci %90 = OpConstant %6 180 777e5c31af7Sopenharmony_ci %91 = OpConstant %6 166 778e5c31af7Sopenharmony_ci %92 = OpConstant %6 169 779e5c31af7Sopenharmony_ci %93 = OpConstant %6 174 780e5c31af7Sopenharmony_ci %94 = OpConstant %6 179 781e5c31af7Sopenharmony_ci %95 = OpConstant %6 185 782e5c31af7Sopenharmony_ci %96 = OpConstant %6 193 783e5c31af7Sopenharmony_ci %97 = OpConstant %6 195 784e5c31af7Sopenharmony_ci %98 = OpConstant %6 188 785e5c31af7Sopenharmony_ci %99 = OpConstant %6 171 786e5c31af7Sopenharmony_ci %100 = OpConstant %6 149 787e5c31af7Sopenharmony_ci %101 = OpConstant %6 137 788e5c31af7Sopenharmony_ci %102 = OpConstant %6 125 789e5c31af7Sopenharmony_ci %103 = OpConstant %6 105 790e5c31af7Sopenharmony_ci %104 = OpConstant %6 97 791e5c31af7Sopenharmony_ci %105 = OpConstant %6 93 792e5c31af7Sopenharmony_ci %106 = OpConstant %6 98 793e5c31af7Sopenharmony_ci %107 = OpConstant %6 106 794e5c31af7Sopenharmony_ci %108 = OpConstant %6 145 795e5c31af7Sopenharmony_ci %109 = OpConstant %6 177 796e5c31af7Sopenharmony_ci %110 = OpConstant %6 208 797e5c31af7Sopenharmony_ci %111 = OpConstant %6 221 798e5c31af7Sopenharmony_ci %112 = OpConstant %6 231 799e5c31af7Sopenharmony_ci %113 = OpConstant %6 239 800e5c31af7Sopenharmony_ci %114 = OpConstant %6 244 801e5c31af7Sopenharmony_ci %115 = OpConstant %6 242 802e5c31af7Sopenharmony_ci %116 = OpConstant %6 236 803e5c31af7Sopenharmony_ci %117 = OpConstant %6 228 804e5c31af7Sopenharmony_ci %118 = OpConstant %6 218 805e5c31af7Sopenharmony_ci %119 = OpConstant %6 207 806e5c31af7Sopenharmony_ci %120 = OpConstant %6 194 807e5c31af7Sopenharmony_ci %121 = OpConstant %6 158 808e5c31af7Sopenharmony_ci %122 = OpConstant %6 135 809e5c31af7Sopenharmony_ci %123 = OpConstant %6 132 810e5c31af7Sopenharmony_ci %124 = OpConstant %6 131 811e5c31af7Sopenharmony_ci %125 = OpConstant %6 138 812e5c31af7Sopenharmony_ci %126 = OpConstant %6 147 813e5c31af7Sopenharmony_ci %127 = OpConstant %6 155 814e5c31af7Sopenharmony_ci %128 = OpConstant %6 152 815e5c31af7Sopenharmony_ci %129 = OpConstant %6 139 816e5c31af7Sopenharmony_ci %130 = OpConstant %6 129 817e5c31af7Sopenharmony_ci %131 = OpConstant %6 118 818e5c31af7Sopenharmony_ci %132 = OpConstant %6 68 819e5c31af7Sopenharmony_ci %133 = OpConstant %6 58 820e5c31af7Sopenharmony_ci %134 = OpConstant %6 49 821e5c31af7Sopenharmony_ci %135 = OpConstant %6 43 822e5c31af7Sopenharmony_ci %136 = OpConstant %6 40 823e5c31af7Sopenharmony_ci %137 = OpConstant %6 41 824e5c31af7Sopenharmony_ci %138 = OpConstant %6 44 825e5c31af7Sopenharmony_ci %139 = OpConstant %6 51 826e5c31af7Sopenharmony_ci %140 = OpConstant %6 61 827e5c31af7Sopenharmony_ci %141 = OpConstant %6 73 828e5c31af7Sopenharmony_ci %142 = OpConstant %6 119 829e5c31af7Sopenharmony_ci %143 = OpConstant %6 173 830e5c31af7Sopenharmony_ci %144 = OpConstant %6 186 831e5c31af7Sopenharmony_ci %145 = OpConstant %6 128 832e5c31af7Sopenharmony_ci %146 = OpConstant %6 104 833e5c31af7Sopenharmony_ci %147 = OpConstant %6 86 834e5c31af7Sopenharmony_ci %148 = OpConstant %6 81 835e5c31af7Sopenharmony_ci %149 = OpConstant %6 77 836e5c31af7Sopenharmony_ci %150 = OpConstant %6 76 837e5c31af7Sopenharmony_ci %151 = OpConstant %6 89 838e5c31af7Sopenharmony_ci %152 = OpConstant %6 102 839e5c31af7Sopenharmony_ci %153 = OpConstant %6 92 840e5c31af7Sopenharmony_ci %154 = OpConstant %6 83 841e5c31af7Sopenharmony_ci %155 = OpConstant %6 62 842e5c31af7Sopenharmony_ci %156 = OpConstant %6 50 843e5c31af7Sopenharmony_ci %157 = OpConstant %6 38 844e5c31af7Sopenharmony_ci %158 = OpConstant %6 26 845e5c31af7Sopenharmony_ci %159 = OpConstant %6 16 846e5c31af7Sopenharmony_ci %160 = OpConstant %6 8 847e5c31af7Sopenharmony_ci %161 = OpConstant %6 2 848e5c31af7Sopenharmony_ci %162 = OpConstant %6 0 849e5c31af7Sopenharmony_ci %163 = OpConstant %6 4 850e5c31af7Sopenharmony_ci %164 = OpConstant %6 11 851e5c31af7Sopenharmony_ci %165 = OpConstant %6 21 852e5c31af7Sopenharmony_ci %166 = OpConstant %6 33 853e5c31af7Sopenharmony_ci %167 = OpConstant %6 48 854e5c31af7Sopenharmony_ci %168 = OpConstant %6 64 855e5c31af7Sopenharmony_ci %169 = OpConstant %6 144 856e5c31af7Sopenharmony_ci %170 = OpConstant %6 123 857e5c31af7Sopenharmony_ci %171 = OpConstant %6 112 858e5c31af7Sopenharmony_ci %172 = OpConstant %6 100 859e5c31af7Sopenharmony_ci %173 = OpConstant %6 90 860e5c31af7Sopenharmony_ci %174 = OpConstant %6 65 861e5c31af7Sopenharmony_ci %175 = OpConstant %6 67 862e5c31af7Sopenharmony_ci %176 = OpConstant %6 70 863e5c31af7Sopenharmony_ci %177 = OpConstant %6 75 864e5c31af7Sopenharmony_ci %178 = OpConstant %6 95 865e5c31af7Sopenharmony_ci %179 = OpConstant %6 88 866e5c31af7Sopenharmony_ci %180 = OpConstant %6 69 867e5c31af7Sopenharmony_ci %181 = OpConstant %6 47 868e5c31af7Sopenharmony_ci %182 = OpConstant %6 36 869e5c31af7Sopenharmony_ci %183 = OpConstant %6 18 870e5c31af7Sopenharmony_ci %184 = OpConstant %6 13 871e5c31af7Sopenharmony_ci %185 = OpConstant %6 15 872e5c31af7Sopenharmony_ci %186 = OpConstant %6 22 873e5c31af7Sopenharmony_ci %187 = OpConstant %6 32 874e5c31af7Sopenharmony_ci %188 = OpConstant %6 45 875e5c31af7Sopenharmony_ci %189 = OpConstant %6 60 876e5c31af7Sopenharmony_ci %190 = OpConstantComposite %32 %33 %34 %35 %36 %37 %38 %39 %40 %41 %42 %43 %44 %45 %46 %47 %48 %49 %50 %51 %52 %52 %53 %54 %55 %48 %56 %57 %58 %59 %60 %45 %61 %62 %63 %47 %48 %64 %65 %66 %67 %68 %69 %70 %71 %72 %73 %74 %52 %75 %76 %36 %77 %78 %79 %80 %81 %82 %83 %25 %83 %84 %85 %86 %87 %88 %89 %39 %90 %44 %91 %45 %61 %60 %36 %92 %93 %94 %95 %39 %96 %97 %97 %40 %98 %90 %99 %61 %100 %101 %102 %52 %103 %104 %105 %73 %105 %106 %107 %53 %75 %108 %61 %109 %96 %110 %111 %112 %113 %85 %114 %115 %116 %117 %118 %119 %120 %43 %92 %121 %57 %56 %122 %123 %124 %123 %122 %125 %47 %126 %63 %58 %127 %127 %128 %76 %129 %130 %131 %107 %105 %71 %132 %133 %134 %135 %136 %137 %138 %139 %140 %141 %68 %66 %142 %48 %100 %60 %143 %43 %144 %98 %144 %43 %93 %36 %46 %56 %145 %51 %146 %67 %147 %148 %149 %150 %149 %71 %72 %151 %67 %106 %152 %146 %146 %152 %106 %153 %154 %141 %155 %156 %157 %158 %159 %160 %161 %162 %162 %163 %164 %165 %166 %167 %168 %148 %106 %52 %130 %56 %63 %121 %61 %61 %121 %128 %169 %48 %170 %171 %172 %173 %148 %141 %132 %174 %174 %175 %176 %177 %148 %68 %153 %104 %74 %66 %152 %172 %178 %179 %70 %180 %133 %181 %182 %158 %183 %184 %164 %164 %185 %186 %187 %188 %189 %149 %67 877e5c31af7Sopenharmony_ci %193 = OpTypePointer Function %32 878e5c31af7Sopenharmony_ci %215 = OpConstant %9 15 879e5c31af7Sopenharmony_ci %231 = OpConstant %9 1 880e5c31af7Sopenharmony_ci %236 = OpConstant %6 1 881e5c31af7Sopenharmony_ci %238 = OpConstant %9 0 882e5c31af7Sopenharmony_ci %239 = OpConstantComposite %10 %238 %238 %238 %231 883e5c31af7Sopenharmony_ci %242 = OpTypeVector %9 2 884e5c31af7Sopenharmony_ci %245 = OpTypePointer Input %10 885e5c31af7Sopenharmony_ci %246 = OpVariable %245 Input 886e5c31af7Sopenharmony_ci %249 = OpTypeStruct %242 887e5c31af7Sopenharmony_ci %250 = OpTypePointer Uniform %249 888e5c31af7Sopenharmony_ci %251 = OpVariable %250 Uniform 889e5c31af7Sopenharmony_ci %252 = OpTypePointer Uniform %242 890e5c31af7Sopenharmony_ci %259 = OpConstant %9 256 891e5c31af7Sopenharmony_ci %267 = OpTypePointer Output %10 892e5c31af7Sopenharmony_ci %268 = OpVariable %267 Output 893e5c31af7Sopenharmony_ci %277 = OpConstantFalse %26 894e5c31af7Sopenharmony_ci %280 = OpConstantTrue %26 895e5c31af7Sopenharmony_ci %363 = OpUndef %10 896e5c31af7Sopenharmony_ci %365 = OpConstant %9 0.0666666701 897e5c31af7Sopenharmony_ci %523 = OpConstant %6 0 898e5c31af7Sopenharmony_ci %4 = OpFunction %2 None %3 899e5c31af7Sopenharmony_ci %5 = OpLabel 900e5c31af7Sopenharmony_ci %285 = OpVariable %193 Function 901e5c31af7Sopenharmony_ci %286 = OpVariable %193 Function 902e5c31af7Sopenharmony_ci %288 = OpVariable %193 Function 903e5c31af7Sopenharmony_ci %247 = OpLoad %10 %246 904e5c31af7Sopenharmony_ci %248 = OpVectorShuffle %242 %247 %247 0 1 905e5c31af7Sopenharmony_ci %253 = OpAccessChain %252 %251 %162 906e5c31af7Sopenharmony_ci %254 = OpLoad %242 %253 907e5c31af7Sopenharmony_ci %255 = OpFDiv %242 %248 %254 908e5c31af7Sopenharmony_ci %258 = OpCompositeExtract %9 %255 0 909e5c31af7Sopenharmony_ci %260 = OpFMul %9 %258 %259 910e5c31af7Sopenharmony_ci %261 = OpConvertFToS %6 %260 911e5c31af7Sopenharmony_ci %263 = OpCompositeExtract %9 %255 1 912e5c31af7Sopenharmony_ci %264 = OpFMul %9 %263 %259 913e5c31af7Sopenharmony_ci %265 = OpConvertFToS %6 %264 914e5c31af7Sopenharmony_ci %266 = OpCompositeConstruct %7 %261 %265 915e5c31af7Sopenharmony_ci OpSelectionMerge %341 None 916e5c31af7Sopenharmony_ci OpSwitch %28 %291 917e5c31af7Sopenharmony_ci %291 = OpLabel 918e5c31af7Sopenharmony_ci OpBranch %292 919e5c31af7Sopenharmony_ci %292 = OpLabel 920e5c31af7Sopenharmony_ci %355 = OpPhi %7 %266 %291 %354 %337 921e5c31af7Sopenharmony_ci %295 = OpCompositeExtract %6 %355 1 922e5c31af7Sopenharmony_ci %296 = OpINotEqual %26 %295 %25 923e5c31af7Sopenharmony_ci OpLoopMerge %338 %337 None 924e5c31af7Sopenharmony_ci OpBranchConditional %296 %297 %338 925e5c31af7Sopenharmony_ci %297 = OpLabel 926e5c31af7Sopenharmony_ci %299 = OpCompositeExtract %6 %355 0 927e5c31af7Sopenharmony_ci OpStore %285 %190 928e5c31af7Sopenharmony_ci %302 = OpAccessChain %22 %285 %295 929e5c31af7Sopenharmony_ci %303 = OpLoad %6 %302 930e5c31af7Sopenharmony_ci %304 = OpIAdd %6 %303 %185 931e5c31af7Sopenharmony_ci %305 = OpSLessThan %26 %299 %304 932e5c31af7Sopenharmony_ci OpBranch %306 933e5c31af7Sopenharmony_ci %306 = OpLabel 934e5c31af7Sopenharmony_ci OpSelectionMerge %516 None 935e5c31af7Sopenharmony_ci OpBranchConditional %305 %517 %516 936e5c31af7Sopenharmony_ci %517 = OpLabel 937e5c31af7Sopenharmony_ci OpStore %286 %190 938e5c31af7Sopenharmony_ci OpBranch %516 939e5c31af7Sopenharmony_ci %516 = OpLabel 940e5c31af7Sopenharmony_ci %311 = OpAccessChain %22 %286 %295 941e5c31af7Sopenharmony_ci OpSelectionMerge %518 None 942e5c31af7Sopenharmony_ci OpBranchConditional %305 %519 %521 943e5c31af7Sopenharmony_ci %519 = OpLabel 944e5c31af7Sopenharmony_ci %520 = OpLoad %6 %311 945e5c31af7Sopenharmony_ci OpBranch %518 946e5c31af7Sopenharmony_ci %521 = OpLabel 947e5c31af7Sopenharmony_ci %522 = OpCopyObject %6 %523 948e5c31af7Sopenharmony_ci OpBranch %518 949e5c31af7Sopenharmony_ci %518 = OpLabel 950e5c31af7Sopenharmony_ci %312 = OpPhi %6 %520 %519 %522 %521 951e5c31af7Sopenharmony_ci %313 = OpISub %6 %312 %185 952e5c31af7Sopenharmony_ci %314 = OpSGreaterThan %26 %299 %313 953e5c31af7Sopenharmony_ci OpBranch %315 954e5c31af7Sopenharmony_ci %315 = OpLabel 955e5c31af7Sopenharmony_ci %316 = OpSelect %26 %305 %314 %305 956e5c31af7Sopenharmony_ci OpSelectionMerge %333 None 957e5c31af7Sopenharmony_ci OpBranchConditional %316 %317 %333 958e5c31af7Sopenharmony_ci %317 = OpLabel 959e5c31af7Sopenharmony_ci OpStore %288 %190 960e5c31af7Sopenharmony_ci %322 = OpAccessChain %22 %288 %295 961e5c31af7Sopenharmony_ci %323 = OpLoad %6 %322 962e5c31af7Sopenharmony_ci %324 = OpISub %6 %299 %323 963e5c31af7Sopenharmony_ci %325 = OpConvertSToF %9 %324 964e5c31af7Sopenharmony_ci %326 = OpExtInst %9 %1 FAbs %325 965e5c31af7Sopenharmony_ci %327 = OpFSub %9 %215 %326 966e5c31af7Sopenharmony_ci %328 = OpFMul %9 %327 %365 967e5c31af7Sopenharmony_ci %332 = OpCompositeConstruct %10 %328 %328 %328 %231 968e5c31af7Sopenharmony_ci OpBranch %338 969e5c31af7Sopenharmony_ci %333 = OpLabel 970e5c31af7Sopenharmony_ci %336 = OpIAdd %6 %295 %236 971e5c31af7Sopenharmony_ci %354 = OpCompositeInsert %7 %336 %355 1 972e5c31af7Sopenharmony_ci OpBranch %337 973e5c31af7Sopenharmony_ci %337 = OpLabel 974e5c31af7Sopenharmony_ci OpBranch %292 975e5c31af7Sopenharmony_ci %338 = OpLabel 976e5c31af7Sopenharmony_ci %361 = OpPhi %10 %363 %292 %332 %317 977e5c31af7Sopenharmony_ci %357 = OpPhi %26 %277 %292 %280 %317 978e5c31af7Sopenharmony_ci OpSelectionMerge %340 None 979e5c31af7Sopenharmony_ci OpBranchConditional %357 %341 %340 980e5c31af7Sopenharmony_ci %340 = OpLabel 981e5c31af7Sopenharmony_ci OpBranch %341 982e5c31af7Sopenharmony_ci %341 = OpLabel 983e5c31af7Sopenharmony_ci %360 = OpPhi %10 %361 %338 %239 %340 984e5c31af7Sopenharmony_ci OpStore %268 %360 985e5c31af7Sopenharmony_ci OpReturn 986e5c31af7Sopenharmony_ci OpFunctionEnd 987e5c31af7Sopenharmony_ciEND 988e5c31af7Sopenharmony_ci 989e5c31af7Sopenharmony_ci# uniforms for variant_2 990e5c31af7Sopenharmony_ci 991e5c31af7Sopenharmony_ci# resolution 992e5c31af7Sopenharmony_ciBUFFER variant_2_resolution DATA_TYPE vec2<float> STD140 DATA 993e5c31af7Sopenharmony_ci 32.0 16.0 994e5c31af7Sopenharmony_ciEND 995e5c31af7Sopenharmony_ci 996e5c31af7Sopenharmony_ciBUFFER variant_2_framebuffer FORMAT B8G8R8A8_UNORM 997e5c31af7Sopenharmony_ci 998e5c31af7Sopenharmony_ciPIPELINE graphics variant_2_pipeline 999e5c31af7Sopenharmony_ci ATTACH variant_2_vertex_shader 1000e5c31af7Sopenharmony_ci ATTACH variant_2_fragment_shader 1001e5c31af7Sopenharmony_ci FRAMEBUFFER_SIZE 32 16 1002e5c31af7Sopenharmony_ci BIND BUFFER variant_2_framebuffer AS color LOCATION 0 1003e5c31af7Sopenharmony_ci BIND BUFFER variant_2_resolution AS uniform DESCRIPTOR_SET 0 BINDING 0 1004e5c31af7Sopenharmony_ciEND 1005e5c31af7Sopenharmony_ciCLEAR_COLOR variant_2_pipeline 0 0 0 255 1006e5c31af7Sopenharmony_ci 1007e5c31af7Sopenharmony_ciCLEAR variant_2_pipeline 1008e5c31af7Sopenharmony_ciRUN variant_2_pipeline DRAW_RECT POS 0 0 SIZE 32 16 1009e5c31af7Sopenharmony_ci 1010e5c31af7Sopenharmony_ciEXPECT reference_framebuffer EQ_HISTOGRAM_EMD_BUFFER variant_framebuffer TOLERANCE 0.005 1011e5c31af7Sopenharmony_ciEXPECT reference_framebuffer EQ_HISTOGRAM_EMD_BUFFER variant_2_framebuffer TOLERANCE 0.005 1012