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: Equivalent shaders; one obfuscates an id via composites 21e5c31af7Sopenharmony_ci 22e5c31af7Sopenharmony_ci# The test passes because both shaders render the same image. 23e5c31af7Sopenharmony_ci 24e5c31af7Sopenharmony_ciSHADER vertex reference_vertex_shader PASSTHROUGH 25e5c31af7Sopenharmony_ci 26e5c31af7Sopenharmony_ciSHADER fragment reference_fragment_shader SPIRV-ASM TARGET_ENV spv1.0 27e5c31af7Sopenharmony_ci; SPIR-V 28e5c31af7Sopenharmony_ci; Version: 1.0 29e5c31af7Sopenharmony_ci; Generator: Khronos Glslang Reference Front End; 7 30e5c31af7Sopenharmony_ci; Bound: 366 31e5c31af7Sopenharmony_ci; Schema: 0 32e5c31af7Sopenharmony_ci OpCapability Shader 33e5c31af7Sopenharmony_ci %1 = OpExtInstImport "GLSL.std.450" 34e5c31af7Sopenharmony_ci OpMemoryModel Logical GLSL450 35e5c31af7Sopenharmony_ci OpEntryPoint Fragment %4 "main" %246 %268 36e5c31af7Sopenharmony_ci OpExecutionMode %4 OriginUpperLeft 37e5c31af7Sopenharmony_ci OpSource ESSL 320 38e5c31af7Sopenharmony_ci OpName %4 "main" 39e5c31af7Sopenharmony_ci OpName %246 "gl_FragCoord" 40e5c31af7Sopenharmony_ci OpName %249 "buf0" 41e5c31af7Sopenharmony_ci OpMemberName %249 0 "resolution" 42e5c31af7Sopenharmony_ci OpName %251 "" 43e5c31af7Sopenharmony_ci OpName %268 "_GLF_color" 44e5c31af7Sopenharmony_ci OpDecorate %246 BuiltIn FragCoord 45e5c31af7Sopenharmony_ci OpMemberDecorate %249 0 Offset 0 46e5c31af7Sopenharmony_ci OpDecorate %249 Block 47e5c31af7Sopenharmony_ci OpDecorate %251 DescriptorSet 0 48e5c31af7Sopenharmony_ci OpDecorate %251 Binding 0 49e5c31af7Sopenharmony_ci OpDecorate %268 Location 0 50e5c31af7Sopenharmony_ci %2 = OpTypeVoid 51e5c31af7Sopenharmony_ci %3 = OpTypeFunction %2 52e5c31af7Sopenharmony_ci %6 = OpTypeInt 32 1 53e5c31af7Sopenharmony_ci %7 = OpTypeVector %6 2 54e5c31af7Sopenharmony_ci %9 = OpTypeFloat 32 55e5c31af7Sopenharmony_ci %10 = OpTypeVector %9 4 56e5c31af7Sopenharmony_ci %20 = OpTypeInt 32 0 57e5c31af7Sopenharmony_ci %22 = OpTypePointer Function %6 58e5c31af7Sopenharmony_ci %25 = OpConstant %6 256 59e5c31af7Sopenharmony_ci %26 = OpTypeBool 60e5c31af7Sopenharmony_ci %28 = OpConstant %20 0 61e5c31af7Sopenharmony_ci %31 = OpConstant %20 256 62e5c31af7Sopenharmony_ci %32 = OpTypeArray %6 %31 63e5c31af7Sopenharmony_ci %33 = OpConstant %6 115 64e5c31af7Sopenharmony_ci %34 = OpConstant %6 133 65e5c31af7Sopenharmony_ci %35 = OpConstant %6 150 66e5c31af7Sopenharmony_ci %36 = OpConstant %6 164 67e5c31af7Sopenharmony_ci %37 = OpConstant %6 176 68e5c31af7Sopenharmony_ci %38 = OpConstant %6 184 69e5c31af7Sopenharmony_ci %39 = OpConstant %6 190 70e5c31af7Sopenharmony_ci %40 = OpConstant %6 192 71e5c31af7Sopenharmony_ci %41 = OpConstant %6 191 72e5c31af7Sopenharmony_ci %42 = OpConstant %6 187 73e5c31af7Sopenharmony_ci %43 = OpConstant %6 181 74e5c31af7Sopenharmony_ci %44 = OpConstant %6 172 75e5c31af7Sopenharmony_ci %45 = OpConstant %6 163 76e5c31af7Sopenharmony_ci %46 = OpConstant %6 153 77e5c31af7Sopenharmony_ci %47 = OpConstant %6 143 78e5c31af7Sopenharmony_ci %48 = OpConstant %6 134 79e5c31af7Sopenharmony_ci %49 = OpConstant %6 126 80e5c31af7Sopenharmony_ci %50 = OpConstant %6 120 81e5c31af7Sopenharmony_ci %51 = OpConstant %6 116 82e5c31af7Sopenharmony_ci %52 = OpConstant %6 114 83e5c31af7Sopenharmony_ci %53 = OpConstant %6 117 84e5c31af7Sopenharmony_ci %54 = OpConstant %6 121 85e5c31af7Sopenharmony_ci %55 = OpConstant %6 127 86e5c31af7Sopenharmony_ci %56 = OpConstant %6 141 87e5c31af7Sopenharmony_ci %57 = OpConstant %6 148 88e5c31af7Sopenharmony_ci %58 = OpConstant %6 154 89e5c31af7Sopenharmony_ci %59 = OpConstant %6 159 90e5c31af7Sopenharmony_ci %60 = OpConstant %6 162 91e5c31af7Sopenharmony_ci %61 = OpConstant %6 161 92e5c31af7Sopenharmony_ci %62 = OpConstant %6 157 93e5c31af7Sopenharmony_ci %63 = OpConstant %6 151 94e5c31af7Sopenharmony_ci %64 = OpConstant %6 124 95e5c31af7Sopenharmony_ci %65 = OpConstant %6 113 96e5c31af7Sopenharmony_ci %66 = OpConstant %6 103 97e5c31af7Sopenharmony_ci %67 = OpConstant %6 94 98e5c31af7Sopenharmony_ci %68 = OpConstant %6 87 99e5c31af7Sopenharmony_ci %69 = OpConstant %6 82 100e5c31af7Sopenharmony_ci %70 = OpConstant %6 79 101e5c31af7Sopenharmony_ci %71 = OpConstant %6 80 102e5c31af7Sopenharmony_ci %72 = OpConstant %6 84 103e5c31af7Sopenharmony_ci %73 = OpConstant %6 91 104e5c31af7Sopenharmony_ci %74 = OpConstant %6 101 105e5c31af7Sopenharmony_ci %75 = OpConstant %6 130 106e5c31af7Sopenharmony_ci %76 = OpConstant %6 146 107e5c31af7Sopenharmony_ci %77 = OpConstant %6 182 108e5c31af7Sopenharmony_ci %78 = OpConstant %6 199 109e5c31af7Sopenharmony_ci %79 = OpConstant %6 215 110e5c31af7Sopenharmony_ci %80 = OpConstant %6 229 111e5c31af7Sopenharmony_ci %81 = OpConstant %6 240 112e5c31af7Sopenharmony_ci %82 = OpConstant %6 249 113e5c31af7Sopenharmony_ci %83 = OpConstant %6 254 114e5c31af7Sopenharmony_ci %84 = OpConstant %6 250 115e5c31af7Sopenharmony_ci %85 = OpConstant %6 243 116e5c31af7Sopenharmony_ci %86 = OpConstant %6 233 117e5c31af7Sopenharmony_ci %87 = OpConstant %6 223 118e5c31af7Sopenharmony_ci %88 = OpConstant %6 212 119e5c31af7Sopenharmony_ci %89 = OpConstant %6 200 120e5c31af7Sopenharmony_ci %90 = OpConstant %6 180 121e5c31af7Sopenharmony_ci %91 = OpConstant %6 166 122e5c31af7Sopenharmony_ci %92 = OpConstant %6 169 123e5c31af7Sopenharmony_ci %93 = OpConstant %6 174 124e5c31af7Sopenharmony_ci %94 = OpConstant %6 179 125e5c31af7Sopenharmony_ci %95 = OpConstant %6 185 126e5c31af7Sopenharmony_ci %96 = OpConstant %6 193 127e5c31af7Sopenharmony_ci %97 = OpConstant %6 195 128e5c31af7Sopenharmony_ci %98 = OpConstant %6 188 129e5c31af7Sopenharmony_ci %99 = OpConstant %6 171 130e5c31af7Sopenharmony_ci %100 = OpConstant %6 149 131e5c31af7Sopenharmony_ci %101 = OpConstant %6 137 132e5c31af7Sopenharmony_ci %102 = OpConstant %6 125 133e5c31af7Sopenharmony_ci %103 = OpConstant %6 105 134e5c31af7Sopenharmony_ci %104 = OpConstant %6 97 135e5c31af7Sopenharmony_ci %105 = OpConstant %6 93 136e5c31af7Sopenharmony_ci %106 = OpConstant %6 98 137e5c31af7Sopenharmony_ci %107 = OpConstant %6 106 138e5c31af7Sopenharmony_ci %108 = OpConstant %6 145 139e5c31af7Sopenharmony_ci %109 = OpConstant %6 177 140e5c31af7Sopenharmony_ci %110 = OpConstant %6 208 141e5c31af7Sopenharmony_ci %111 = OpConstant %6 221 142e5c31af7Sopenharmony_ci %112 = OpConstant %6 231 143e5c31af7Sopenharmony_ci %113 = OpConstant %6 239 144e5c31af7Sopenharmony_ci %114 = OpConstant %6 244 145e5c31af7Sopenharmony_ci %115 = OpConstant %6 242 146e5c31af7Sopenharmony_ci %116 = OpConstant %6 236 147e5c31af7Sopenharmony_ci %117 = OpConstant %6 228 148e5c31af7Sopenharmony_ci %118 = OpConstant %6 218 149e5c31af7Sopenharmony_ci %119 = OpConstant %6 207 150e5c31af7Sopenharmony_ci %120 = OpConstant %6 194 151e5c31af7Sopenharmony_ci %121 = OpConstant %6 158 152e5c31af7Sopenharmony_ci %122 = OpConstant %6 135 153e5c31af7Sopenharmony_ci %123 = OpConstant %6 132 154e5c31af7Sopenharmony_ci %124 = OpConstant %6 131 155e5c31af7Sopenharmony_ci %125 = OpConstant %6 138 156e5c31af7Sopenharmony_ci %126 = OpConstant %6 147 157e5c31af7Sopenharmony_ci %127 = OpConstant %6 155 158e5c31af7Sopenharmony_ci %128 = OpConstant %6 152 159e5c31af7Sopenharmony_ci %129 = OpConstant %6 139 160e5c31af7Sopenharmony_ci %130 = OpConstant %6 129 161e5c31af7Sopenharmony_ci %131 = OpConstant %6 118 162e5c31af7Sopenharmony_ci %132 = OpConstant %6 68 163e5c31af7Sopenharmony_ci %133 = OpConstant %6 58 164e5c31af7Sopenharmony_ci %134 = OpConstant %6 49 165e5c31af7Sopenharmony_ci %135 = OpConstant %6 43 166e5c31af7Sopenharmony_ci %136 = OpConstant %6 40 167e5c31af7Sopenharmony_ci %137 = OpConstant %6 41 168e5c31af7Sopenharmony_ci %138 = OpConstant %6 44 169e5c31af7Sopenharmony_ci %139 = OpConstant %6 51 170e5c31af7Sopenharmony_ci %140 = OpConstant %6 61 171e5c31af7Sopenharmony_ci %141 = OpConstant %6 73 172e5c31af7Sopenharmony_ci %142 = OpConstant %6 119 173e5c31af7Sopenharmony_ci %143 = OpConstant %6 173 174e5c31af7Sopenharmony_ci %144 = OpConstant %6 186 175e5c31af7Sopenharmony_ci %145 = OpConstant %6 128 176e5c31af7Sopenharmony_ci %146 = OpConstant %6 104 177e5c31af7Sopenharmony_ci %147 = OpConstant %6 86 178e5c31af7Sopenharmony_ci %148 = OpConstant %6 81 179e5c31af7Sopenharmony_ci %149 = OpConstant %6 77 180e5c31af7Sopenharmony_ci %150 = OpConstant %6 76 181e5c31af7Sopenharmony_ci %151 = OpConstant %6 89 182e5c31af7Sopenharmony_ci %152 = OpConstant %6 102 183e5c31af7Sopenharmony_ci %153 = OpConstant %6 92 184e5c31af7Sopenharmony_ci %154 = OpConstant %6 83 185e5c31af7Sopenharmony_ci %155 = OpConstant %6 62 186e5c31af7Sopenharmony_ci %156 = OpConstant %6 50 187e5c31af7Sopenharmony_ci %157 = OpConstant %6 38 188e5c31af7Sopenharmony_ci %158 = OpConstant %6 26 189e5c31af7Sopenharmony_ci %159 = OpConstant %6 16 190e5c31af7Sopenharmony_ci %160 = OpConstant %6 8 191e5c31af7Sopenharmony_ci %161 = OpConstant %6 2 192e5c31af7Sopenharmony_ci %162 = OpConstant %6 0 193e5c31af7Sopenharmony_ci %163 = OpConstant %6 4 194e5c31af7Sopenharmony_ci %164 = OpConstant %6 11 195e5c31af7Sopenharmony_ci %165 = OpConstant %6 21 196e5c31af7Sopenharmony_ci %166 = OpConstant %6 33 197e5c31af7Sopenharmony_ci %167 = OpConstant %6 48 198e5c31af7Sopenharmony_ci %168 = OpConstant %6 64 199e5c31af7Sopenharmony_ci %169 = OpConstant %6 144 200e5c31af7Sopenharmony_ci %170 = OpConstant %6 123 201e5c31af7Sopenharmony_ci %171 = OpConstant %6 112 202e5c31af7Sopenharmony_ci %172 = OpConstant %6 100 203e5c31af7Sopenharmony_ci %173 = OpConstant %6 90 204e5c31af7Sopenharmony_ci %174 = OpConstant %6 65 205e5c31af7Sopenharmony_ci %175 = OpConstant %6 67 206e5c31af7Sopenharmony_ci %176 = OpConstant %6 70 207e5c31af7Sopenharmony_ci %177 = OpConstant %6 75 208e5c31af7Sopenharmony_ci %178 = OpConstant %6 95 209e5c31af7Sopenharmony_ci %179 = OpConstant %6 88 210e5c31af7Sopenharmony_ci %180 = OpConstant %6 69 211e5c31af7Sopenharmony_ci %181 = OpConstant %6 47 212e5c31af7Sopenharmony_ci %182 = OpConstant %6 36 213e5c31af7Sopenharmony_ci %183 = OpConstant %6 18 214e5c31af7Sopenharmony_ci %184 = OpConstant %6 13 215e5c31af7Sopenharmony_ci %185 = OpConstant %6 15 216e5c31af7Sopenharmony_ci %186 = OpConstant %6 22 217e5c31af7Sopenharmony_ci %187 = OpConstant %6 32 218e5c31af7Sopenharmony_ci %188 = OpConstant %6 45 219e5c31af7Sopenharmony_ci %189 = OpConstant %6 60 220e5c31af7Sopenharmony_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 221e5c31af7Sopenharmony_ci %193 = OpTypePointer Function %32 222e5c31af7Sopenharmony_ci %215 = OpConstant %9 15 223e5c31af7Sopenharmony_ci %231 = OpConstant %9 1 224e5c31af7Sopenharmony_ci %236 = OpConstant %6 1 225e5c31af7Sopenharmony_ci %238 = OpConstant %9 0 226e5c31af7Sopenharmony_ci %239 = OpConstantComposite %10 %238 %238 %238 %231 227e5c31af7Sopenharmony_ci %242 = OpTypeVector %9 2 228e5c31af7Sopenharmony_ci %245 = OpTypePointer Input %10 229e5c31af7Sopenharmony_ci %246 = OpVariable %245 Input 230e5c31af7Sopenharmony_ci %249 = OpTypeStruct %242 231e5c31af7Sopenharmony_ci %250 = OpTypePointer Uniform %249 232e5c31af7Sopenharmony_ci %251 = OpVariable %250 Uniform 233e5c31af7Sopenharmony_ci %252 = OpTypePointer Uniform %242 234e5c31af7Sopenharmony_ci %259 = OpConstant %9 256 235e5c31af7Sopenharmony_ci %267 = OpTypePointer Output %10 236e5c31af7Sopenharmony_ci %268 = OpVariable %267 Output 237e5c31af7Sopenharmony_ci %277 = OpConstantFalse %26 238e5c31af7Sopenharmony_ci %280 = OpConstantTrue %26 239e5c31af7Sopenharmony_ci %363 = OpUndef %10 240e5c31af7Sopenharmony_ci %365 = OpConstant %9 0.0666666701 241e5c31af7Sopenharmony_ci %4 = OpFunction %2 None %3 242e5c31af7Sopenharmony_ci %5 = OpLabel 243e5c31af7Sopenharmony_ci %285 = OpVariable %193 Function 244e5c31af7Sopenharmony_ci %286 = OpVariable %193 Function 245e5c31af7Sopenharmony_ci %288 = OpVariable %193 Function 246e5c31af7Sopenharmony_ci %247 = OpLoad %10 %246 247e5c31af7Sopenharmony_ci %248 = OpVectorShuffle %242 %247 %247 0 1 248e5c31af7Sopenharmony_ci %253 = OpAccessChain %252 %251 %162 249e5c31af7Sopenharmony_ci %254 = OpLoad %242 %253 250e5c31af7Sopenharmony_ci %255 = OpFDiv %242 %248 %254 251e5c31af7Sopenharmony_ci %258 = OpCompositeExtract %9 %255 0 252e5c31af7Sopenharmony_ci %260 = OpFMul %9 %258 %259 253e5c31af7Sopenharmony_ci %261 = OpConvertFToS %6 %260 254e5c31af7Sopenharmony_ci %263 = OpCompositeExtract %9 %255 1 255e5c31af7Sopenharmony_ci %264 = OpFMul %9 %263 %259 256e5c31af7Sopenharmony_ci %265 = OpConvertFToS %6 %264 257e5c31af7Sopenharmony_ci %266 = OpCompositeConstruct %7 %261 %265 258e5c31af7Sopenharmony_ci OpSelectionMerge %341 None 259e5c31af7Sopenharmony_ci OpSwitch %28 %291 260e5c31af7Sopenharmony_ci %291 = OpLabel 261e5c31af7Sopenharmony_ci OpBranch %292 262e5c31af7Sopenharmony_ci %292 = OpLabel 263e5c31af7Sopenharmony_ci %355 = OpPhi %7 %266 %291 %354 %337 264e5c31af7Sopenharmony_ci %295 = OpCompositeExtract %6 %355 1 265e5c31af7Sopenharmony_ci %296 = OpINotEqual %26 %295 %25 266e5c31af7Sopenharmony_ci OpLoopMerge %338 %337 None 267e5c31af7Sopenharmony_ci OpBranchConditional %296 %297 %338 268e5c31af7Sopenharmony_ci %297 = OpLabel 269e5c31af7Sopenharmony_ci %299 = OpCompositeExtract %6 %355 0 270e5c31af7Sopenharmony_ci OpStore %285 %190 271e5c31af7Sopenharmony_ci %302 = OpAccessChain %22 %285 %295 272e5c31af7Sopenharmony_ci %303 = OpLoad %6 %302 273e5c31af7Sopenharmony_ci %304 = OpIAdd %6 %303 %185 274e5c31af7Sopenharmony_ci %305 = OpSLessThan %26 %299 %304 275e5c31af7Sopenharmony_ci OpSelectionMerge %315 None 276e5c31af7Sopenharmony_ci OpBranchConditional %305 %306 %315 277e5c31af7Sopenharmony_ci %306 = OpLabel 278e5c31af7Sopenharmony_ci OpStore %286 %190 279e5c31af7Sopenharmony_ci %311 = OpAccessChain %22 %286 %295 280e5c31af7Sopenharmony_ci %312 = OpLoad %6 %311 281e5c31af7Sopenharmony_ci %313 = OpISub %6 %312 %185 282e5c31af7Sopenharmony_ci %314 = OpSGreaterThan %26 %299 %313 283e5c31af7Sopenharmony_ci OpBranch %315 284e5c31af7Sopenharmony_ci %315 = OpLabel 285e5c31af7Sopenharmony_ci %316 = OpPhi %26 %305 %297 %314 %306 286e5c31af7Sopenharmony_ci OpSelectionMerge %333 None 287e5c31af7Sopenharmony_ci OpBranchConditional %316 %317 %333 288e5c31af7Sopenharmony_ci %317 = OpLabel 289e5c31af7Sopenharmony_ci OpStore %288 %190 290e5c31af7Sopenharmony_ci %322 = OpAccessChain %22 %288 %295 291e5c31af7Sopenharmony_ci %323 = OpLoad %6 %322 292e5c31af7Sopenharmony_ci %324 = OpISub %6 %299 %323 293e5c31af7Sopenharmony_ci %325 = OpConvertSToF %9 %324 294e5c31af7Sopenharmony_ci %326 = OpExtInst %9 %1 FAbs %325 295e5c31af7Sopenharmony_ci %327 = OpFSub %9 %215 %326 296e5c31af7Sopenharmony_ci %328 = OpFMul %9 %327 %365 297e5c31af7Sopenharmony_ci %332 = OpCompositeConstruct %10 %328 %328 %328 %231 298e5c31af7Sopenharmony_ci OpBranch %338 299e5c31af7Sopenharmony_ci %333 = OpLabel 300e5c31af7Sopenharmony_ci %336 = OpIAdd %6 %295 %236 301e5c31af7Sopenharmony_ci %354 = OpCompositeInsert %7 %336 %355 1 302e5c31af7Sopenharmony_ci OpBranch %337 303e5c31af7Sopenharmony_ci %337 = OpLabel 304e5c31af7Sopenharmony_ci OpBranch %292 305e5c31af7Sopenharmony_ci %338 = OpLabel 306e5c31af7Sopenharmony_ci %361 = OpPhi %10 %363 %292 %332 %317 307e5c31af7Sopenharmony_ci %357 = OpPhi %26 %277 %292 %280 %317 308e5c31af7Sopenharmony_ci OpSelectionMerge %340 None 309e5c31af7Sopenharmony_ci OpBranchConditional %357 %341 %340 310e5c31af7Sopenharmony_ci %340 = OpLabel 311e5c31af7Sopenharmony_ci OpBranch %341 312e5c31af7Sopenharmony_ci %341 = OpLabel 313e5c31af7Sopenharmony_ci %360 = OpPhi %10 %361 %338 %239 %340 314e5c31af7Sopenharmony_ci OpStore %268 %360 315e5c31af7Sopenharmony_ci OpReturn 316e5c31af7Sopenharmony_ci OpFunctionEnd 317e5c31af7Sopenharmony_ciEND 318e5c31af7Sopenharmony_ci 319e5c31af7Sopenharmony_ci# uniforms for reference 320e5c31af7Sopenharmony_ci 321e5c31af7Sopenharmony_ci# resolution 322e5c31af7Sopenharmony_ciBUFFER reference_resolution DATA_TYPE vec2<float> DATA 323e5c31af7Sopenharmony_ci 256.0 256.0 324e5c31af7Sopenharmony_ciEND 325e5c31af7Sopenharmony_ci 326e5c31af7Sopenharmony_ciBUFFER reference_framebuffer FORMAT B8G8R8A8_UNORM 327e5c31af7Sopenharmony_ci 328e5c31af7Sopenharmony_ciPIPELINE graphics reference_pipeline 329e5c31af7Sopenharmony_ci ATTACH reference_vertex_shader 330e5c31af7Sopenharmony_ci ATTACH reference_fragment_shader 331e5c31af7Sopenharmony_ci FRAMEBUFFER_SIZE 256 256 332e5c31af7Sopenharmony_ci BIND BUFFER reference_framebuffer AS color LOCATION 0 333e5c31af7Sopenharmony_ci BIND BUFFER reference_resolution AS uniform DESCRIPTOR_SET 0 BINDING 0 334e5c31af7Sopenharmony_ciEND 335e5c31af7Sopenharmony_ciCLEAR_COLOR reference_pipeline 0 0 0 255 336e5c31af7Sopenharmony_ci 337e5c31af7Sopenharmony_ciCLEAR reference_pipeline 338e5c31af7Sopenharmony_ciRUN reference_pipeline DRAW_RECT POS 0 0 SIZE 256 256 339e5c31af7Sopenharmony_ci 340e5c31af7Sopenharmony_ci 341e5c31af7Sopenharmony_ciSHADER vertex variant_vertex_shader PASSTHROUGH 342e5c31af7Sopenharmony_ci 343e5c31af7Sopenharmony_ciSHADER fragment variant_fragment_shader SPIRV-ASM TARGET_ENV spv1.0 344e5c31af7Sopenharmony_ci; SPIR-V 345e5c31af7Sopenharmony_ci; Version: 1.0 346e5c31af7Sopenharmony_ci; Generator: Khronos Glslang Reference Front End; 7 347e5c31af7Sopenharmony_ci; Bound: 2249 348e5c31af7Sopenharmony_ci; Schema: 0 349e5c31af7Sopenharmony_ci OpCapability Shader 350e5c31af7Sopenharmony_ci %1 = OpExtInstImport "GLSL.std.450" 351e5c31af7Sopenharmony_ci OpMemoryModel Logical GLSL450 352e5c31af7Sopenharmony_ci OpEntryPoint Fragment %4 "main" %246 %268 353e5c31af7Sopenharmony_ci OpExecutionMode %4 OriginUpperLeft 354e5c31af7Sopenharmony_ci OpSource ESSL 320 355e5c31af7Sopenharmony_ci OpName %4 "main" 356e5c31af7Sopenharmony_ci OpName %246 "gl_FragCoord" 357e5c31af7Sopenharmony_ci OpName %249 "buf0" 358e5c31af7Sopenharmony_ci OpMemberName %249 0 "resolution" 359e5c31af7Sopenharmony_ci OpName %251 "" 360e5c31af7Sopenharmony_ci OpName %268 "_GLF_color" 361e5c31af7Sopenharmony_ci OpDecorate %246 BuiltIn FragCoord 362e5c31af7Sopenharmony_ci OpMemberDecorate %249 0 Offset 0 363e5c31af7Sopenharmony_ci OpDecorate %249 Block 364e5c31af7Sopenharmony_ci OpDecorate %251 DescriptorSet 0 365e5c31af7Sopenharmony_ci OpDecorate %251 Binding 0 366e5c31af7Sopenharmony_ci OpDecorate %268 Location 0 367e5c31af7Sopenharmony_ci %2 = OpTypeVoid 368e5c31af7Sopenharmony_ci %3 = OpTypeFunction %2 369e5c31af7Sopenharmony_ci %6 = OpTypeInt 32 1 370e5c31af7Sopenharmony_ci %7 = OpTypeVector %6 2 371e5c31af7Sopenharmony_ci %9 = OpTypeFloat 32 372e5c31af7Sopenharmony_ci %10 = OpTypeVector %9 4 373e5c31af7Sopenharmony_ci %20 = OpTypeInt 32 0 374e5c31af7Sopenharmony_ci %22 = OpTypePointer Function %6 375e5c31af7Sopenharmony_ci %25 = OpConstant %6 256 376e5c31af7Sopenharmony_ci %26 = OpTypeBool 377e5c31af7Sopenharmony_ci %28 = OpConstant %20 0 378e5c31af7Sopenharmony_ci %31 = OpConstant %20 256 379e5c31af7Sopenharmony_ci %32 = OpTypeArray %6 %31 380e5c31af7Sopenharmony_ci %33 = OpConstant %6 115 381e5c31af7Sopenharmony_ci %34 = OpConstant %6 133 382e5c31af7Sopenharmony_ci %35 = OpConstant %6 150 383e5c31af7Sopenharmony_ci %36 = OpConstant %6 164 384e5c31af7Sopenharmony_ci %37 = OpConstant %6 176 385e5c31af7Sopenharmony_ci %38 = OpConstant %6 184 386e5c31af7Sopenharmony_ci %39 = OpConstant %6 190 387e5c31af7Sopenharmony_ci %40 = OpConstant %6 192 388e5c31af7Sopenharmony_ci %41 = OpConstant %6 191 389e5c31af7Sopenharmony_ci %42 = OpConstant %6 187 390e5c31af7Sopenharmony_ci %43 = OpConstant %6 181 391e5c31af7Sopenharmony_ci %44 = OpConstant %6 172 392e5c31af7Sopenharmony_ci %45 = OpConstant %6 163 393e5c31af7Sopenharmony_ci %46 = OpConstant %6 153 394e5c31af7Sopenharmony_ci %47 = OpConstant %6 143 395e5c31af7Sopenharmony_ci %48 = OpConstant %6 134 396e5c31af7Sopenharmony_ci %49 = OpConstant %6 126 397e5c31af7Sopenharmony_ci %50 = OpConstant %6 120 398e5c31af7Sopenharmony_ci %51 = OpConstant %6 116 399e5c31af7Sopenharmony_ci %52 = OpConstant %6 114 400e5c31af7Sopenharmony_ci %53 = OpConstant %6 117 401e5c31af7Sopenharmony_ci %54 = OpConstant %6 121 402e5c31af7Sopenharmony_ci %55 = OpConstant %6 127 403e5c31af7Sopenharmony_ci %56 = OpConstant %6 141 404e5c31af7Sopenharmony_ci %57 = OpConstant %6 148 405e5c31af7Sopenharmony_ci %58 = OpConstant %6 154 406e5c31af7Sopenharmony_ci %59 = OpConstant %6 159 407e5c31af7Sopenharmony_ci %60 = OpConstant %6 162 408e5c31af7Sopenharmony_ci %61 = OpConstant %6 161 409e5c31af7Sopenharmony_ci %62 = OpConstant %6 157 410e5c31af7Sopenharmony_ci %63 = OpConstant %6 151 411e5c31af7Sopenharmony_ci %64 = OpConstant %6 124 412e5c31af7Sopenharmony_ci %65 = OpConstant %6 113 413e5c31af7Sopenharmony_ci %66 = OpConstant %6 103 414e5c31af7Sopenharmony_ci %67 = OpConstant %6 94 415e5c31af7Sopenharmony_ci %68 = OpConstant %6 87 416e5c31af7Sopenharmony_ci %69 = OpConstant %6 82 417e5c31af7Sopenharmony_ci %70 = OpConstant %6 79 418e5c31af7Sopenharmony_ci %71 = OpConstant %6 80 419e5c31af7Sopenharmony_ci %72 = OpConstant %6 84 420e5c31af7Sopenharmony_ci %73 = OpConstant %6 91 421e5c31af7Sopenharmony_ci %74 = OpConstant %6 101 422e5c31af7Sopenharmony_ci %75 = OpConstant %6 130 423e5c31af7Sopenharmony_ci %76 = OpConstant %6 146 424e5c31af7Sopenharmony_ci %77 = OpConstant %6 182 425e5c31af7Sopenharmony_ci %78 = OpConstant %6 199 426e5c31af7Sopenharmony_ci %79 = OpConstant %6 215 427e5c31af7Sopenharmony_ci %80 = OpConstant %6 229 428e5c31af7Sopenharmony_ci %81 = OpConstant %6 240 429e5c31af7Sopenharmony_ci %82 = OpConstant %6 249 430e5c31af7Sopenharmony_ci %83 = OpConstant %6 254 431e5c31af7Sopenharmony_ci %84 = OpConstant %6 250 432e5c31af7Sopenharmony_ci %85 = OpConstant %6 243 433e5c31af7Sopenharmony_ci %86 = OpConstant %6 233 434e5c31af7Sopenharmony_ci %87 = OpConstant %6 223 435e5c31af7Sopenharmony_ci %88 = OpConstant %6 212 436e5c31af7Sopenharmony_ci %89 = OpConstant %6 200 437e5c31af7Sopenharmony_ci %90 = OpConstant %6 180 438e5c31af7Sopenharmony_ci %91 = OpConstant %6 166 439e5c31af7Sopenharmony_ci %92 = OpConstant %6 169 440e5c31af7Sopenharmony_ci %93 = OpConstant %6 174 441e5c31af7Sopenharmony_ci %94 = OpConstant %6 179 442e5c31af7Sopenharmony_ci %95 = OpConstant %6 185 443e5c31af7Sopenharmony_ci %96 = OpConstant %6 193 444e5c31af7Sopenharmony_ci %97 = OpConstant %6 195 445e5c31af7Sopenharmony_ci %98 = OpConstant %6 188 446e5c31af7Sopenharmony_ci %99 = OpConstant %6 171 447e5c31af7Sopenharmony_ci %100 = OpConstant %6 149 448e5c31af7Sopenharmony_ci %101 = OpConstant %6 137 449e5c31af7Sopenharmony_ci %102 = OpConstant %6 125 450e5c31af7Sopenharmony_ci %103 = OpConstant %6 105 451e5c31af7Sopenharmony_ci %104 = OpConstant %6 97 452e5c31af7Sopenharmony_ci %105 = OpConstant %6 93 453e5c31af7Sopenharmony_ci %106 = OpConstant %6 98 454e5c31af7Sopenharmony_ci %107 = OpConstant %6 106 455e5c31af7Sopenharmony_ci %108 = OpConstant %6 145 456e5c31af7Sopenharmony_ci %109 = OpConstant %6 177 457e5c31af7Sopenharmony_ci %110 = OpConstant %6 208 458e5c31af7Sopenharmony_ci %111 = OpConstant %6 221 459e5c31af7Sopenharmony_ci %112 = OpConstant %6 231 460e5c31af7Sopenharmony_ci %113 = OpConstant %6 239 461e5c31af7Sopenharmony_ci %114 = OpConstant %6 244 462e5c31af7Sopenharmony_ci %115 = OpConstant %6 242 463e5c31af7Sopenharmony_ci %116 = OpConstant %6 236 464e5c31af7Sopenharmony_ci %117 = OpConstant %6 228 465e5c31af7Sopenharmony_ci %118 = OpConstant %6 218 466e5c31af7Sopenharmony_ci %119 = OpConstant %6 207 467e5c31af7Sopenharmony_ci %120 = OpConstant %6 194 468e5c31af7Sopenharmony_ci %121 = OpConstant %6 158 469e5c31af7Sopenharmony_ci %122 = OpConstant %6 135 470e5c31af7Sopenharmony_ci %123 = OpConstant %6 132 471e5c31af7Sopenharmony_ci %124 = OpConstant %6 131 472e5c31af7Sopenharmony_ci %125 = OpConstant %6 138 473e5c31af7Sopenharmony_ci %126 = OpConstant %6 147 474e5c31af7Sopenharmony_ci %127 = OpConstant %6 155 475e5c31af7Sopenharmony_ci %128 = OpConstant %6 152 476e5c31af7Sopenharmony_ci %129 = OpConstant %6 139 477e5c31af7Sopenharmony_ci %130 = OpConstant %6 129 478e5c31af7Sopenharmony_ci %131 = OpConstant %6 118 479e5c31af7Sopenharmony_ci %132 = OpConstant %6 68 480e5c31af7Sopenharmony_ci %133 = OpConstant %6 58 481e5c31af7Sopenharmony_ci %134 = OpConstant %6 49 482e5c31af7Sopenharmony_ci %135 = OpConstant %6 43 483e5c31af7Sopenharmony_ci %136 = OpConstant %6 40 484e5c31af7Sopenharmony_ci %137 = OpConstant %6 41 485e5c31af7Sopenharmony_ci %138 = OpConstant %6 44 486e5c31af7Sopenharmony_ci %139 = OpConstant %6 51 487e5c31af7Sopenharmony_ci %140 = OpConstant %6 61 488e5c31af7Sopenharmony_ci %141 = OpConstant %6 73 489e5c31af7Sopenharmony_ci %142 = OpConstant %6 119 490e5c31af7Sopenharmony_ci %143 = OpConstant %6 173 491e5c31af7Sopenharmony_ci %144 = OpConstant %6 186 492e5c31af7Sopenharmony_ci %145 = OpConstant %6 128 493e5c31af7Sopenharmony_ci %146 = OpConstant %6 104 494e5c31af7Sopenharmony_ci %147 = OpConstant %6 86 495e5c31af7Sopenharmony_ci %148 = OpConstant %6 81 496e5c31af7Sopenharmony_ci %149 = OpConstant %6 77 497e5c31af7Sopenharmony_ci %150 = OpConstant %6 76 498e5c31af7Sopenharmony_ci %151 = OpConstant %6 89 499e5c31af7Sopenharmony_ci %152 = OpConstant %6 102 500e5c31af7Sopenharmony_ci %153 = OpConstant %6 92 501e5c31af7Sopenharmony_ci %154 = OpConstant %6 83 502e5c31af7Sopenharmony_ci %155 = OpConstant %6 62 503e5c31af7Sopenharmony_ci %156 = OpConstant %6 50 504e5c31af7Sopenharmony_ci %157 = OpConstant %6 38 505e5c31af7Sopenharmony_ci %158 = OpConstant %6 26 506e5c31af7Sopenharmony_ci %159 = OpConstant %6 16 507e5c31af7Sopenharmony_ci %160 = OpConstant %6 8 508e5c31af7Sopenharmony_ci %161 = OpConstant %6 2 509e5c31af7Sopenharmony_ci %162 = OpConstant %6 0 510e5c31af7Sopenharmony_ci %163 = OpConstant %6 4 511e5c31af7Sopenharmony_ci %164 = OpConstant %6 11 512e5c31af7Sopenharmony_ci %165 = OpConstant %6 21 513e5c31af7Sopenharmony_ci %166 = OpConstant %6 33 514e5c31af7Sopenharmony_ci %167 = OpConstant %6 48 515e5c31af7Sopenharmony_ci %168 = OpConstant %6 64 516e5c31af7Sopenharmony_ci %169 = OpConstant %6 144 517e5c31af7Sopenharmony_ci %170 = OpConstant %6 123 518e5c31af7Sopenharmony_ci %171 = OpConstant %6 112 519e5c31af7Sopenharmony_ci %172 = OpConstant %6 100 520e5c31af7Sopenharmony_ci %173 = OpConstant %6 90 521e5c31af7Sopenharmony_ci %174 = OpConstant %6 65 522e5c31af7Sopenharmony_ci %175 = OpConstant %6 67 523e5c31af7Sopenharmony_ci %176 = OpConstant %6 70 524e5c31af7Sopenharmony_ci %177 = OpConstant %6 75 525e5c31af7Sopenharmony_ci %178 = OpConstant %6 95 526e5c31af7Sopenharmony_ci %179 = OpConstant %6 88 527e5c31af7Sopenharmony_ci %180 = OpConstant %6 69 528e5c31af7Sopenharmony_ci %181 = OpConstant %6 47 529e5c31af7Sopenharmony_ci %182 = OpConstant %6 36 530e5c31af7Sopenharmony_ci %183 = OpConstant %6 18 531e5c31af7Sopenharmony_ci %184 = OpConstant %6 13 532e5c31af7Sopenharmony_ci %185 = OpConstant %6 15 533e5c31af7Sopenharmony_ci %186 = OpConstant %6 22 534e5c31af7Sopenharmony_ci %187 = OpConstant %6 32 535e5c31af7Sopenharmony_ci %188 = OpConstant %6 45 536e5c31af7Sopenharmony_ci %189 = OpConstant %6 60 537e5c31af7Sopenharmony_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 538e5c31af7Sopenharmony_ci %193 = OpTypePointer Function %32 539e5c31af7Sopenharmony_ci %215 = OpConstant %9 15 540e5c31af7Sopenharmony_ci %231 = OpConstant %9 1 541e5c31af7Sopenharmony_ci %236 = OpConstant %6 1 542e5c31af7Sopenharmony_ci %238 = OpConstant %9 0 543e5c31af7Sopenharmony_ci %239 = OpConstantComposite %10 %238 %238 %238 %231 544e5c31af7Sopenharmony_ci %242 = OpTypeVector %9 2 545e5c31af7Sopenharmony_ci %245 = OpTypePointer Input %10 546e5c31af7Sopenharmony_ci %246 = OpVariable %245 Input 547e5c31af7Sopenharmony_ci %249 = OpTypeStruct %242 548e5c31af7Sopenharmony_ci %250 = OpTypePointer Uniform %249 549e5c31af7Sopenharmony_ci %251 = OpVariable %250 Uniform 550e5c31af7Sopenharmony_ci %252 = OpTypePointer Uniform %242 551e5c31af7Sopenharmony_ci %259 = OpConstant %9 256 552e5c31af7Sopenharmony_ci %267 = OpTypePointer Output %10 553e5c31af7Sopenharmony_ci %268 = OpVariable %267 Output 554e5c31af7Sopenharmony_ci %277 = OpConstantFalse %26 555e5c31af7Sopenharmony_ci %280 = OpConstantTrue %26 556e5c31af7Sopenharmony_ci %363 = OpUndef %10 557e5c31af7Sopenharmony_ci %365 = OpConstant %9 0.0666666701 558e5c31af7Sopenharmony_ci %4 = OpFunction %2 None %3 559e5c31af7Sopenharmony_ci %5 = OpLabel 560e5c31af7Sopenharmony_ci %285 = OpVariable %193 Function 561e5c31af7Sopenharmony_ci %286 = OpVariable %193 Function 562e5c31af7Sopenharmony_ci %288 = OpVariable %193 Function 563e5c31af7Sopenharmony_ci %247 = OpLoad %10 %246 564e5c31af7Sopenharmony_ci %248 = OpVectorShuffle %242 %247 %247 0 1 565e5c31af7Sopenharmony_ci %253 = OpAccessChain %252 %251 %162 566e5c31af7Sopenharmony_ci %254 = OpLoad %242 %253 567e5c31af7Sopenharmony_ci %255 = OpFDiv %242 %248 %254 568e5c31af7Sopenharmony_ci %588 = OpCompositeConstruct %10 %254 %215 %215 569e5c31af7Sopenharmony_ci %474 = OpSNegate %6 %69 570e5c31af7Sopenharmony_ci %258 = OpCompositeExtract %9 %255 0 571e5c31af7Sopenharmony_ci %260 = OpFMul %9 %258 %259 572e5c31af7Sopenharmony_ci %2248 = OpCompositeExtract %9 %588 2 573e5c31af7Sopenharmony_ci %593 = OpCompositeConstruct %242 %238 %2248 574e5c31af7Sopenharmony_ci %547 = OpISub %6 %50 %162 575e5c31af7Sopenharmony_ci %261 = OpConvertFToS %6 %260 576e5c31af7Sopenharmony_ci %263 = OpCompositeExtract %9 %255 1 577e5c31af7Sopenharmony_ci %264 = OpFMul %9 %263 %259 578e5c31af7Sopenharmony_ci %265 = OpConvertFToS %6 %264 579e5c31af7Sopenharmony_ci %266 = OpCompositeConstruct %7 %261 %265 580e5c31af7Sopenharmony_ci OpSelectionMerge %341 None 581e5c31af7Sopenharmony_ci OpSwitch %28 %291 582e5c31af7Sopenharmony_ci %291 = OpLabel 583e5c31af7Sopenharmony_ci OpBranch %292 584e5c31af7Sopenharmony_ci %292 = OpLabel 585e5c31af7Sopenharmony_ci %355 = OpPhi %7 %266 %291 %354 %337 586e5c31af7Sopenharmony_ci %295 = OpCompositeExtract %6 %355 1 587e5c31af7Sopenharmony_ci %296 = OpINotEqual %26 %295 %25 588e5c31af7Sopenharmony_ci OpLoopMerge %338 %337 None 589e5c31af7Sopenharmony_ci OpBranchConditional %296 %297 %338 590e5c31af7Sopenharmony_ci %297 = OpLabel 591e5c31af7Sopenharmony_ci %299 = OpCompositeExtract %6 %355 0 592e5c31af7Sopenharmony_ci OpStore %285 %190 593e5c31af7Sopenharmony_ci %302 = OpAccessChain %22 %285 %295 594e5c31af7Sopenharmony_ci %303 = OpLoad %6 %302 595e5c31af7Sopenharmony_ci %304 = OpIAdd %6 %303 %185 596e5c31af7Sopenharmony_ci %305 = OpSLessThan %26 %299 %304 597e5c31af7Sopenharmony_ci OpSelectionMerge %315 None 598e5c31af7Sopenharmony_ci OpBranchConditional %305 %306 %315 599e5c31af7Sopenharmony_ci %306 = OpLabel 600e5c31af7Sopenharmony_ci OpStore %286 %190 601e5c31af7Sopenharmony_ci %311 = OpAccessChain %22 %286 %295 602e5c31af7Sopenharmony_ci %312 = OpLoad %6 %311 603e5c31af7Sopenharmony_ci %313 = OpISub %6 %312 %185 604e5c31af7Sopenharmony_ci %314 = OpSGreaterThan %26 %299 %313 605e5c31af7Sopenharmony_ci OpBranch %315 606e5c31af7Sopenharmony_ci %315 = OpLabel 607e5c31af7Sopenharmony_ci %316 = OpPhi %26 %305 %297 %314 %306 608e5c31af7Sopenharmony_ci OpSelectionMerge %333 None 609e5c31af7Sopenharmony_ci OpBranchConditional %316 %317 %333 610e5c31af7Sopenharmony_ci %317 = OpLabel 611e5c31af7Sopenharmony_ci OpStore %288 %190 612e5c31af7Sopenharmony_ci %322 = OpAccessChain %22 %288 %295 613e5c31af7Sopenharmony_ci %323 = OpLoad %6 %322 614e5c31af7Sopenharmony_ci %324 = OpISub %6 %299 %323 615e5c31af7Sopenharmony_ci %325 = OpConvertSToF %9 %324 616e5c31af7Sopenharmony_ci %639 = OpCompositeConstruct %249 %593 617e5c31af7Sopenharmony_ci %495 = OpIAdd %6 %73 %114 618e5c31af7Sopenharmony_ci %326 = OpExtInst %9 %1 FAbs %325 619e5c31af7Sopenharmony_ci %2247 = OpCompositeExtract %9 %639 0 1 620e5c31af7Sopenharmony_ci %327 = OpFSub %9 %2247 %326 621e5c31af7Sopenharmony_ci %328 = OpFMul %9 %327 %365 622e5c31af7Sopenharmony_ci %332 = OpCompositeConstruct %10 %328 %328 %328 %231 623e5c31af7Sopenharmony_ci OpBranch %338 624e5c31af7Sopenharmony_ci %333 = OpLabel 625e5c31af7Sopenharmony_ci %336 = OpIAdd %6 %295 %236 626e5c31af7Sopenharmony_ci %354 = OpCompositeInsert %7 %336 %355 1 627e5c31af7Sopenharmony_ci OpBranch %337 628e5c31af7Sopenharmony_ci %337 = OpLabel 629e5c31af7Sopenharmony_ci OpBranch %292 630e5c31af7Sopenharmony_ci %338 = OpLabel 631e5c31af7Sopenharmony_ci %361 = OpPhi %10 %363 %292 %332 %317 632e5c31af7Sopenharmony_ci %357 = OpPhi %26 %277 %292 %280 %317 633e5c31af7Sopenharmony_ci OpSelectionMerge %340 None 634e5c31af7Sopenharmony_ci OpBranchConditional %357 %341 %340 635e5c31af7Sopenharmony_ci %340 = OpLabel 636e5c31af7Sopenharmony_ci OpBranch %341 637e5c31af7Sopenharmony_ci %341 = OpLabel 638e5c31af7Sopenharmony_ci %360 = OpPhi %10 %361 %338 %239 %340 639e5c31af7Sopenharmony_ci OpStore %268 %360 640e5c31af7Sopenharmony_ci OpReturn 641e5c31af7Sopenharmony_ci OpFunctionEnd 642e5c31af7Sopenharmony_ciEND 643e5c31af7Sopenharmony_ci 644e5c31af7Sopenharmony_ci# uniforms for variant 645e5c31af7Sopenharmony_ci 646e5c31af7Sopenharmony_ci# resolution 647e5c31af7Sopenharmony_ciBUFFER variant_resolution DATA_TYPE vec2<float> DATA 648e5c31af7Sopenharmony_ci 256.0 256.0 649e5c31af7Sopenharmony_ciEND 650e5c31af7Sopenharmony_ci 651e5c31af7Sopenharmony_ciBUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM 652e5c31af7Sopenharmony_ci 653e5c31af7Sopenharmony_ciPIPELINE graphics variant_pipeline 654e5c31af7Sopenharmony_ci ATTACH variant_vertex_shader 655e5c31af7Sopenharmony_ci ATTACH variant_fragment_shader 656e5c31af7Sopenharmony_ci FRAMEBUFFER_SIZE 256 256 657e5c31af7Sopenharmony_ci BIND BUFFER variant_framebuffer AS color LOCATION 0 658e5c31af7Sopenharmony_ci BIND BUFFER variant_resolution AS uniform DESCRIPTOR_SET 0 BINDING 0 659e5c31af7Sopenharmony_ciEND 660e5c31af7Sopenharmony_ciCLEAR_COLOR variant_pipeline 0 0 0 255 661e5c31af7Sopenharmony_ci 662e5c31af7Sopenharmony_ciCLEAR variant_pipeline 663e5c31af7Sopenharmony_ciRUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256 664e5c31af7Sopenharmony_ci 665e5c31af7Sopenharmony_ciEXPECT reference_framebuffer EQ_HISTOGRAM_EMD_BUFFER variant_framebuffer TOLERANCE 0.005 666