1 OpCapability Shader 2 %1 = OpExtInstImport "GLSL.std.450" 3 OpMemoryModel Logical GLSL450 4 OpEntryPoint Fragment %main "main" %sk_FragColor 5 OpExecutionMode %main OriginUpperLeft 6 OpName %_kGuardedDivideEpsilon "$kGuardedDivideEpsilon" 7 OpName %sk_FragColor "sk_FragColor" 8 OpName %_UniformBuffer "_UniformBuffer" 9 OpMemberName %_UniformBuffer 0 "src" 10 OpMemberName %_UniformBuffer 1 "dst" 11 OpName %blend_color_saturation_Qhh3 "blend_color_saturation_Qhh3" 12 OpName %blend_hslc_h4h2h4h4 "blend_hslc_h4h2h4h4" 13 OpName %alpha "alpha" 14 OpName %sda "sda" 15 OpName %dsa "dsa" 16 OpName %l "l" 17 OpName %r "r" 18 OpName %_2_mn "_2_mn" 19 OpName %_3_mx "_3_mx" 20 OpName %_4_lum "_4_lum" 21 OpName %_5_result "_5_result" 22 OpName %_6_minComp "_6_minComp" 23 OpName %_7_maxComp "_7_maxComp" 24 OpName %main "main" 25 OpDecorate %_kGuardedDivideEpsilon RelaxedPrecision 26 OpDecorate %sk_FragColor RelaxedPrecision 27 OpDecorate %sk_FragColor Location 0 28 OpDecorate %sk_FragColor Index 0 29 OpMemberDecorate %_UniformBuffer 0 Offset 0 30 OpMemberDecorate %_UniformBuffer 0 RelaxedPrecision 31 OpMemberDecorate %_UniformBuffer 1 Offset 16 32 OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision 33 OpDecorate %_UniformBuffer Block 34 OpDecorate %16 Binding 0 35 OpDecorate %16 DescriptorSet 0 36 OpDecorate %26 RelaxedPrecision 37 OpDecorate %27 RelaxedPrecision 38 OpDecorate %28 RelaxedPrecision 39 OpDecorate %29 RelaxedPrecision 40 OpDecorate %30 RelaxedPrecision 41 OpDecorate %31 RelaxedPrecision 42 OpDecorate %34 RelaxedPrecision 43 OpDecorate %35 RelaxedPrecision 44 OpDecorate %36 RelaxedPrecision 45 OpDecorate %37 RelaxedPrecision 46 OpDecorate %38 RelaxedPrecision 47 OpDecorate %39 RelaxedPrecision 48 OpDecorate %40 RelaxedPrecision 49 OpDecorate %alpha RelaxedPrecision 50 OpDecorate %51 RelaxedPrecision 51 OpDecorate %52 RelaxedPrecision 52 OpDecorate %53 RelaxedPrecision 53 OpDecorate %54 RelaxedPrecision 54 OpDecorate %55 RelaxedPrecision 55 OpDecorate %sda RelaxedPrecision 56 OpDecorate %57 RelaxedPrecision 57 OpDecorate %58 RelaxedPrecision 58 OpDecorate %59 RelaxedPrecision 59 OpDecorate %60 RelaxedPrecision 60 OpDecorate %61 RelaxedPrecision 61 OpDecorate %dsa RelaxedPrecision 62 OpDecorate %63 RelaxedPrecision 63 OpDecorate %64 RelaxedPrecision 64 OpDecorate %65 RelaxedPrecision 65 OpDecorate %66 RelaxedPrecision 66 OpDecorate %67 RelaxedPrecision 67 OpDecorate %l RelaxedPrecision 68 OpDecorate %69 RelaxedPrecision 69 OpDecorate %70 RelaxedPrecision 70 OpDecorate %76 RelaxedPrecision 71 OpDecorate %r RelaxedPrecision 72 OpDecorate %78 RelaxedPrecision 73 OpDecorate %79 RelaxedPrecision 74 OpDecorate %85 RelaxedPrecision 75 OpDecorate %86 RelaxedPrecision 76 OpDecorate %87 RelaxedPrecision 77 OpDecorate %_2_mn RelaxedPrecision 78 OpDecorate %94 RelaxedPrecision 79 OpDecorate %95 RelaxedPrecision 80 OpDecorate %96 RelaxedPrecision 81 OpDecorate %_3_mx RelaxedPrecision 82 OpDecorate %105 RelaxedPrecision 83 OpDecorate %106 RelaxedPrecision 84 OpDecorate %109 RelaxedPrecision 85 OpDecorate %110 RelaxedPrecision 86 OpDecorate %112 RelaxedPrecision 87 OpDecorate %113 RelaxedPrecision 88 OpDecorate %115 RelaxedPrecision 89 OpDecorate %_4_lum RelaxedPrecision 90 OpDecorate %117 RelaxedPrecision 91 OpDecorate %122 RelaxedPrecision 92 OpDecorate %_5_result RelaxedPrecision 93 OpDecorate %124 RelaxedPrecision 94 OpDecorate %125 RelaxedPrecision 95 OpDecorate %126 RelaxedPrecision 96 OpDecorate %127 RelaxedPrecision 97 OpDecorate %128 RelaxedPrecision 98 OpDecorate %129 RelaxedPrecision 99 OpDecorate %_6_minComp RelaxedPrecision 100 OpDecorate %133 RelaxedPrecision 101 OpDecorate %134 RelaxedPrecision 102 OpDecorate %135 RelaxedPrecision 103 OpDecorate %_7_maxComp RelaxedPrecision 104 OpDecorate %146 RelaxedPrecision 105 OpDecorate %147 RelaxedPrecision 106 OpDecorate %148 RelaxedPrecision 107 OpDecorate %149 RelaxedPrecision 108 OpDecorate %150 RelaxedPrecision 109 OpDecorate %151 RelaxedPrecision 110 OpDecorate %152 RelaxedPrecision 111 OpDecorate %153 RelaxedPrecision 112 OpDecorate %161 RelaxedPrecision 113 OpDecorate %162 RelaxedPrecision 114 OpDecorate %163 RelaxedPrecision 115 OpDecorate %164 RelaxedPrecision 116 OpDecorate %165 RelaxedPrecision 117 OpDecorate %166 RelaxedPrecision 118 OpDecorate %167 RelaxedPrecision 119 OpDecorate %168 RelaxedPrecision 120 OpDecorate %169 RelaxedPrecision 121 OpDecorate %170 RelaxedPrecision 122 OpDecorate %171 RelaxedPrecision 123 OpDecorate %172 RelaxedPrecision 124 OpDecorate %173 RelaxedPrecision 125 OpDecorate %174 RelaxedPrecision 126 OpDecorate %175 RelaxedPrecision 127 OpDecorate %176 RelaxedPrecision 128 OpDecorate %177 RelaxedPrecision 129 OpDecorate %178 RelaxedPrecision 130 OpDecorate %179 RelaxedPrecision 131 OpDecorate %180 RelaxedPrecision 132 OpDecorate %181 RelaxedPrecision 133 OpDecorate %182 RelaxedPrecision 134 OpDecorate %183 RelaxedPrecision 135 OpDecorate %184 RelaxedPrecision 136 OpDecorate %185 RelaxedPrecision 137 OpDecorate %186 RelaxedPrecision 138 OpDecorate %187 RelaxedPrecision 139 OpDecorate %188 RelaxedPrecision 140 OpDecorate %189 RelaxedPrecision 141 OpDecorate %190 RelaxedPrecision 142 OpDecorate %200 RelaxedPrecision 143 OpDecorate %204 RelaxedPrecision 144 %float = OpTypeFloat 32 145%_ptr_Private_float = OpTypePointer Private %float 146%_kGuardedDivideEpsilon = OpVariable %_ptr_Private_float Private 147 %bool = OpTypeBool 148 %false = OpConstantFalse %bool 149%float_9_99999994en09 = OpConstant %float 9.99999994e-09 150 %float_0 = OpConstant %float 0 151 %v4float = OpTypeVector %float 4 152%_ptr_Output_v4float = OpTypePointer Output %v4float 153%sk_FragColor = OpVariable %_ptr_Output_v4float Output 154%_UniformBuffer = OpTypeStruct %v4float %v4float 155%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer 156 %16 = OpVariable %_ptr_Uniform__UniformBuffer Uniform 157 %v3float = OpTypeVector %float 3 158%_ptr_Function_v3float = OpTypePointer Function %v3float 159 %21 = OpTypeFunction %float %_ptr_Function_v3float 160 %v2float = OpTypeVector %float 2 161%_ptr_Function_v2float = OpTypePointer Function %v2float 162%_ptr_Function_v4float = OpTypePointer Function %v4float 163 %44 = OpTypeFunction %v4float %_ptr_Function_v2float %_ptr_Function_v4float %_ptr_Function_v4float 164%_ptr_Function_float = OpTypePointer Function %float 165 %float_1 = OpConstant %float 1 166 %114 = OpConstantComposite %v3float %float_0 %float_0 %float_0 167%float_0_300000012 = OpConstant %float 0.300000012 168%float_0_589999974 = OpConstant %float 0.589999974 169%float_0_109999999 = OpConstant %float 0.109999999 170 %121 = OpConstantComposite %v3float %float_0_300000012 %float_0_589999974 %float_0_109999999 171 %void = OpTypeVoid 172 %192 = OpTypeFunction %void 173 %194 = OpConstantComposite %v2float %float_0 %float_1 174%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float 175 %int = OpTypeInt 32 1 176 %int_0 = OpConstant %int 0 177 %int_1 = OpConstant %int 1 178%blend_color_saturation_Qhh3 = OpFunction %float None %21 179 %22 = OpFunctionParameter %_ptr_Function_v3float 180 %23 = OpLabel 181 %26 = OpLoad %v3float %22 182 %27 = OpCompositeExtract %float %26 0 183 %28 = OpLoad %v3float %22 184 %29 = OpCompositeExtract %float %28 1 185 %25 = OpExtInst %float %1 FMax %27 %29 186 %30 = OpLoad %v3float %22 187 %31 = OpCompositeExtract %float %30 2 188 %24 = OpExtInst %float %1 FMax %25 %31 189 %34 = OpLoad %v3float %22 190 %35 = OpCompositeExtract %float %34 0 191 %36 = OpLoad %v3float %22 192 %37 = OpCompositeExtract %float %36 1 193 %33 = OpExtInst %float %1 FMin %35 %37 194 %38 = OpLoad %v3float %22 195 %39 = OpCompositeExtract %float %38 2 196 %32 = OpExtInst %float %1 FMin %33 %39 197 %40 = OpFSub %float %24 %32 198 OpReturnValue %40 199 OpFunctionEnd 200%blend_hslc_h4h2h4h4 = OpFunction %v4float None %44 201 %45 = OpFunctionParameter %_ptr_Function_v2float 202 %46 = OpFunctionParameter %_ptr_Function_v4float 203 %47 = OpFunctionParameter %_ptr_Function_v4float 204 %48 = OpLabel 205 %alpha = OpVariable %_ptr_Function_float Function 206 %sda = OpVariable %_ptr_Function_v3float Function 207 %dsa = OpVariable %_ptr_Function_v3float Function 208 %l = OpVariable %_ptr_Function_v3float Function 209 %72 = OpVariable %_ptr_Function_v3float Function 210 %r = OpVariable %_ptr_Function_v3float Function 211 %81 = OpVariable %_ptr_Function_v3float Function 212 %_2_mn = OpVariable %_ptr_Function_float Function 213 %_3_mx = OpVariable %_ptr_Function_float Function 214 %101 = OpVariable %_ptr_Function_v3float Function 215 %107 = OpVariable %_ptr_Function_v3float Function 216 %_4_lum = OpVariable %_ptr_Function_float Function 217 %_5_result = OpVariable %_ptr_Function_v3float Function 218 %_6_minComp = OpVariable %_ptr_Function_float Function 219 %_7_maxComp = OpVariable %_ptr_Function_float Function 220 %51 = OpLoad %v4float %47 221 %52 = OpCompositeExtract %float %51 3 222 %53 = OpLoad %v4float %46 223 %54 = OpCompositeExtract %float %53 3 224 %55 = OpFMul %float %52 %54 225 OpStore %alpha %55 226 %57 = OpLoad %v4float %46 227 %58 = OpVectorShuffle %v3float %57 %57 0 1 2 228 %59 = OpLoad %v4float %47 229 %60 = OpCompositeExtract %float %59 3 230 %61 = OpVectorTimesScalar %v3float %58 %60 231 OpStore %sda %61 232 %63 = OpLoad %v4float %47 233 %64 = OpVectorShuffle %v3float %63 %63 0 1 2 234 %65 = OpLoad %v4float %46 235 %66 = OpCompositeExtract %float %65 3 236 %67 = OpVectorTimesScalar %v3float %64 %66 237 OpStore %dsa %67 238 %69 = OpLoad %v2float %45 239 %70 = OpCompositeExtract %float %69 0 240 %71 = OpFUnordNotEqual %bool %70 %float_0 241 OpSelectionMerge %75 None 242 OpBranchConditional %71 %73 %74 243 %73 = OpLabel 244 OpStore %72 %67 245 OpBranch %75 246 %74 = OpLabel 247 OpStore %72 %61 248 OpBranch %75 249 %75 = OpLabel 250 %76 = OpLoad %v3float %72 251 OpStore %l %76 252 %78 = OpLoad %v2float %45 253 %79 = OpCompositeExtract %float %78 0 254 %80 = OpFUnordNotEqual %bool %79 %float_0 255 OpSelectionMerge %84 None 256 OpBranchConditional %80 %82 %83 257 %82 = OpLabel 258 OpStore %81 %61 259 OpBranch %84 260 %83 = OpLabel 261 OpStore %81 %67 262 OpBranch %84 263 %84 = OpLabel 264 %85 = OpLoad %v3float %81 265 OpStore %r %85 266 %86 = OpLoad %v2float %45 267 %87 = OpCompositeExtract %float %86 1 268 %88 = OpFUnordNotEqual %bool %87 %float_0 269 OpSelectionMerge %90 None 270 OpBranchConditional %88 %89 %90 271 %89 = OpLabel 272 %94 = OpCompositeExtract %float %76 0 273 %95 = OpCompositeExtract %float %76 1 274 %93 = OpExtInst %float %1 FMin %94 %95 275 %96 = OpCompositeExtract %float %76 2 276 %92 = OpExtInst %float %1 FMin %93 %96 277 OpStore %_2_mn %92 278 %99 = OpExtInst %float %1 FMax %94 %95 279 %98 = OpExtInst %float %1 FMax %99 %96 280 OpStore %_3_mx %98 281 %100 = OpFOrdGreaterThan %bool %98 %92 282 OpSelectionMerge %104 None 283 OpBranchConditional %100 %102 %103 284 %102 = OpLabel 285 %105 = OpCompositeConstruct %v3float %92 %92 %92 286 %106 = OpFSub %v3float %76 %105 287 OpStore %107 %85 288 %108 = OpFunctionCall %float %blend_color_saturation_Qhh3 %107 289 %109 = OpVectorTimesScalar %v3float %106 %108 290 %110 = OpFSub %float %98 %92 291 %112 = OpFDiv %float %float_1 %110 292 %113 = OpVectorTimesScalar %v3float %109 %112 293 OpStore %101 %113 294 OpBranch %104 295 %103 = OpLabel 296 OpStore %101 %114 297 OpBranch %104 298 %104 = OpLabel 299 %115 = OpLoad %v3float %101 300 OpStore %l %115 301 OpStore %r %67 302 OpBranch %90 303 %90 = OpLabel 304 %122 = OpLoad %v3float %r 305 %117 = OpDot %float %121 %122 306 OpStore %_4_lum %117 307 %125 = OpLoad %v3float %l 308 %124 = OpDot %float %121 %125 309 %126 = OpFSub %float %117 %124 310 %127 = OpLoad %v3float %l 311 %128 = OpCompositeConstruct %v3float %126 %126 %126 312 %129 = OpFAdd %v3float %128 %127 313 OpStore %_5_result %129 314 %133 = OpCompositeExtract %float %129 0 315 %134 = OpCompositeExtract %float %129 1 316 %132 = OpExtInst %float %1 FMin %133 %134 317 %135 = OpCompositeExtract %float %129 2 318 %131 = OpExtInst %float %1 FMin %132 %135 319 OpStore %_6_minComp %131 320 %138 = OpExtInst %float %1 FMax %133 %134 321 %137 = OpExtInst %float %1 FMax %138 %135 322 OpStore %_7_maxComp %137 323 %139 = OpFOrdLessThan %bool %131 %float_0 324 OpSelectionMerge %141 None 325 OpBranchConditional %139 %140 %141 326 %140 = OpLabel 327 %142 = OpFUnordNotEqual %bool %117 %131 328 OpBranch %141 329 %141 = OpLabel 330 %143 = OpPhi %bool %false %90 %142 %140 331 OpSelectionMerge %145 None 332 OpBranchConditional %143 %144 %145 333 %144 = OpLabel 334 %146 = OpCompositeConstruct %v3float %117 %117 %117 335 %147 = OpFSub %v3float %129 %146 336 %148 = OpFSub %float %117 %131 337 %149 = OpLoad %float %_kGuardedDivideEpsilon 338 %150 = OpFAdd %float %148 %149 339 %151 = OpFDiv %float %117 %150 340 %152 = OpVectorTimesScalar %v3float %147 %151 341 %153 = OpFAdd %v3float %146 %152 342 OpStore %_5_result %153 343 OpBranch %145 344 %145 = OpLabel 345 %154 = OpFOrdGreaterThan %bool %137 %55 346 OpSelectionMerge %156 None 347 OpBranchConditional %154 %155 %156 348 %155 = OpLabel 349 %157 = OpFUnordNotEqual %bool %137 %117 350 OpBranch %156 351 %156 = OpLabel 352 %158 = OpPhi %bool %false %145 %157 %155 353 OpSelectionMerge %160 None 354 OpBranchConditional %158 %159 %160 355 %159 = OpLabel 356 %161 = OpLoad %v3float %_5_result 357 %162 = OpCompositeConstruct %v3float %117 %117 %117 358 %163 = OpFSub %v3float %161 %162 359 %164 = OpFSub %float %55 %117 360 %165 = OpVectorTimesScalar %v3float %163 %164 361 %166 = OpFSub %float %137 %117 362 %167 = OpLoad %float %_kGuardedDivideEpsilon 363 %168 = OpFAdd %float %166 %167 364 %169 = OpFDiv %float %float_1 %168 365 %170 = OpVectorTimesScalar %v3float %165 %169 366 %171 = OpFAdd %v3float %162 %170 367 OpStore %_5_result %171 368 OpBranch %160 369 %160 = OpLabel 370 %172 = OpLoad %v3float %_5_result 371 %173 = OpLoad %v4float %47 372 %174 = OpVectorShuffle %v3float %173 %173 0 1 2 373 %175 = OpFAdd %v3float %172 %174 374 %176 = OpFSub %v3float %175 %67 375 %177 = OpLoad %v4float %46 376 %178 = OpVectorShuffle %v3float %177 %177 0 1 2 377 %179 = OpFAdd %v3float %176 %178 378 %180 = OpFSub %v3float %179 %61 379 %181 = OpCompositeExtract %float %180 0 380 %182 = OpCompositeExtract %float %180 1 381 %183 = OpCompositeExtract %float %180 2 382 %184 = OpLoad %v4float %46 383 %185 = OpCompositeExtract %float %184 3 384 %186 = OpLoad %v4float %47 385 %187 = OpCompositeExtract %float %186 3 386 %188 = OpFAdd %float %185 %187 387 %189 = OpFSub %float %188 %55 388 %190 = OpCompositeConstruct %v4float %181 %182 %183 %189 389 OpReturnValue %190 390 OpFunctionEnd 391 %main = OpFunction %void None %192 392 %193 = OpLabel 393 %195 = OpVariable %_ptr_Function_v2float Function 394 %201 = OpVariable %_ptr_Function_v4float Function 395 %205 = OpVariable %_ptr_Function_v4float Function 396 %10 = OpSelect %float %false %float_9_99999994en09 %float_0 397 OpStore %_kGuardedDivideEpsilon %10 398 OpStore %195 %194 399 %196 = OpAccessChain %_ptr_Uniform_v4float %16 %int_0 400 %200 = OpLoad %v4float %196 401 OpStore %201 %200 402 %202 = OpAccessChain %_ptr_Uniform_v4float %16 %int_1 403 %204 = OpLoad %v4float %202 404 OpStore %205 %204 405 %206 = OpFunctionCall %v4float %blend_hslc_h4h2h4h4 %195 %201 %205 406 OpStore %sk_FragColor %206 407 OpReturn 408 OpFunctionEnd 409