1OpCapability Shader 2%1 = OpExtInstImport "GLSL.std.450" 3OpMemoryModel Logical GLSL450 4OpEntryPoint Fragment %_entrypoint_v "_entrypoint" %sk_FragColor %sk_Clockwise 5OpExecutionMode %_entrypoint_v OriginUpperLeft 6OpName %sk_FragColor "sk_FragColor" 7OpName %sk_Clockwise "sk_Clockwise" 8OpName %_UniformBuffer "_UniformBuffer" 9OpMemberName %_UniformBuffer 0 "colorGreen" 10OpMemberName %_UniformBuffer 1 "colorRed" 11OpMemberName %_UniformBuffer 2 "colorBlack" 12OpMemberName %_UniformBuffer 3 "colorWhite" 13OpMemberName %_UniformBuffer 4 "testInputs" 14OpName %_entrypoint_v "_entrypoint_v" 15OpName %main "main" 16OpName %expectedBW "expectedBW" 17OpName %expectedWT "expectedWT" 18OpDecorate %sk_FragColor RelaxedPrecision 19OpDecorate %sk_FragColor Location 0 20OpDecorate %sk_FragColor Index 0 21OpDecorate %sk_Clockwise BuiltIn FrontFacing 22OpMemberDecorate %_UniformBuffer 0 Offset 0 23OpMemberDecorate %_UniformBuffer 0 RelaxedPrecision 24OpMemberDecorate %_UniformBuffer 1 Offset 16 25OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision 26OpMemberDecorate %_UniformBuffer 2 Offset 32 27OpMemberDecorate %_UniformBuffer 2 RelaxedPrecision 28OpMemberDecorate %_UniformBuffer 3 Offset 48 29OpMemberDecorate %_UniformBuffer 3 RelaxedPrecision 30OpMemberDecorate %_UniformBuffer 4 Offset 64 31OpMemberDecorate %_UniformBuffer 4 RelaxedPrecision 32OpDecorate %_UniformBuffer Block 33OpDecorate %10 Binding 0 34OpDecorate %10 DescriptorSet 0 35OpDecorate %expectedBW RelaxedPrecision 36OpDecorate %30 RelaxedPrecision 37OpDecorate %expectedWT RelaxedPrecision 38OpDecorate %33 RelaxedPrecision 39OpDecorate %40 RelaxedPrecision 40OpDecorate %43 RelaxedPrecision 41OpDecorate %44 RelaxedPrecision 42OpDecorate %45 RelaxedPrecision 43OpDecorate %53 RelaxedPrecision 44OpDecorate %55 RelaxedPrecision 45OpDecorate %57 RelaxedPrecision 46OpDecorate %59 RelaxedPrecision 47OpDecorate %67 RelaxedPrecision 48OpDecorate %69 RelaxedPrecision 49OpDecorate %70 RelaxedPrecision 50OpDecorate %71 RelaxedPrecision 51OpDecorate %79 RelaxedPrecision 52OpDecorate %81 RelaxedPrecision 53OpDecorate %82 RelaxedPrecision 54OpDecorate %83 RelaxedPrecision 55OpDecorate %92 RelaxedPrecision 56OpDecorate %93 RelaxedPrecision 57OpDecorate %96 RelaxedPrecision 58OpDecorate %97 RelaxedPrecision 59OpDecorate %98 RelaxedPrecision 60OpDecorate %99 RelaxedPrecision 61OpDecorate %106 RelaxedPrecision 62OpDecorate %107 RelaxedPrecision 63OpDecorate %109 RelaxedPrecision 64OpDecorate %110 RelaxedPrecision 65OpDecorate %111 RelaxedPrecision 66OpDecorate %112 RelaxedPrecision 67OpDecorate %113 RelaxedPrecision 68OpDecorate %122 RelaxedPrecision 69OpDecorate %123 RelaxedPrecision 70OpDecorate %126 RelaxedPrecision 71OpDecorate %127 RelaxedPrecision 72OpDecorate %128 RelaxedPrecision 73OpDecorate %129 RelaxedPrecision 74OpDecorate %130 RelaxedPrecision 75OpDecorate %139 RelaxedPrecision 76OpDecorate %141 RelaxedPrecision 77OpDecorate %142 RelaxedPrecision 78OpDecorate %143 RelaxedPrecision 79OpDecorate %149 RelaxedPrecision 80OpDecorate %150 RelaxedPrecision 81OpDecorate %155 RelaxedPrecision 82OpDecorate %156 RelaxedPrecision 83OpDecorate %157 RelaxedPrecision 84OpDecorate %163 RelaxedPrecision 85OpDecorate %164 RelaxedPrecision 86OpDecorate %165 RelaxedPrecision 87OpDecorate %171 RelaxedPrecision 88OpDecorate %179 RelaxedPrecision 89OpDecorate %180 RelaxedPrecision 90OpDecorate %183 RelaxedPrecision 91OpDecorate %184 RelaxedPrecision 92OpDecorate %185 RelaxedPrecision 93OpDecorate %186 RelaxedPrecision 94OpDecorate %193 RelaxedPrecision 95OpDecorate %194 RelaxedPrecision 96OpDecorate %196 RelaxedPrecision 97OpDecorate %197 RelaxedPrecision 98OpDecorate %198 RelaxedPrecision 99OpDecorate %199 RelaxedPrecision 100OpDecorate %200 RelaxedPrecision 101OpDecorate %208 RelaxedPrecision 102OpDecorate %209 RelaxedPrecision 103OpDecorate %211 RelaxedPrecision 104OpDecorate %212 RelaxedPrecision 105OpDecorate %213 RelaxedPrecision 106OpDecorate %214 RelaxedPrecision 107OpDecorate %215 RelaxedPrecision 108OpDecorate %223 RelaxedPrecision 109OpDecorate %225 RelaxedPrecision 110OpDecorate %226 RelaxedPrecision 111OpDecorate %227 RelaxedPrecision 112OpDecorate %233 RelaxedPrecision 113OpDecorate %234 RelaxedPrecision 114OpDecorate %239 RelaxedPrecision 115OpDecorate %240 RelaxedPrecision 116OpDecorate %241 RelaxedPrecision 117OpDecorate %247 RelaxedPrecision 118OpDecorate %248 RelaxedPrecision 119OpDecorate %249 RelaxedPrecision 120OpDecorate %255 RelaxedPrecision 121OpDecorate %264 RelaxedPrecision 122OpDecorate %266 RelaxedPrecision 123OpDecorate %267 RelaxedPrecision 124%float = OpTypeFloat 32 125%v4float = OpTypeVector %float 4 126%_ptr_Output_v4float = OpTypePointer Output %v4float 127%sk_FragColor = OpVariable %_ptr_Output_v4float Output 128%bool = OpTypeBool 129%_ptr_Input_bool = OpTypePointer Input %bool 130%sk_Clockwise = OpVariable %_ptr_Input_bool Input 131%_UniformBuffer = OpTypeStruct %v4float %v4float %v4float %v4float %v4float 132%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer 133%10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform 134%void = OpTypeVoid 135%15 = OpTypeFunction %void 136%v2float = OpTypeVector %float 2 137%float_0 = OpConstant %float 0 138%19 = OpConstantComposite %v2float %float_0 %float_0 139%_ptr_Function_v2float = OpTypePointer Function %v2float 140%23 = OpTypeFunction %v4float %_ptr_Function_v2float 141%_ptr_Function_v4float = OpTypePointer Function %v4float 142%float_0_5 = OpConstant %float 0.5 143%float_1 = OpConstant %float 1 144%30 = OpConstantComposite %v4float %float_0_5 %float_0_5 %float_0_5 %float_1 145%float_2_25 = OpConstant %float 2.25 146%33 = OpConstantComposite %v4float %float_1 %float_0_5 %float_1 %float_2_25 147%false = OpConstantFalse %bool 148%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float 149%int = OpTypeInt 32 1 150%int_0 = OpConstant %int 0 151%int_1 = OpConstant %int 1 152%45 = OpConstantComposite %v4float %float_0 %float_1 %float_0 %float_1 153%v4bool = OpTypeVector %bool 4 154%float_0_25 = OpConstant %float 0.25 155%float_0_75 = OpConstant %float 0.75 156%59 = OpConstantComposite %v4float %float_0_25 %float_0_75 %float_0 %float_1 157%71 = OpConstantComposite %v4float %float_0_75 %float_0_25 %float_0 %float_1 158%83 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1 159%int_2 = OpConstant %int 2 160%int_3 = OpConstant %int 3 161%v2bool = OpTypeVector %bool 2 162%v3float = OpTypeVector %float 3 163%v3bool = OpTypeVector %bool 3 164%155 = OpConstantComposite %v2float %float_0_5 %float_0_5 165%163 = OpConstantComposite %v3float %float_0_5 %float_0_5 %float_0_5 166%int_4 = OpConstant %int 4 167%198 = OpConstantComposite %v2float %float_0 %float_0_5 168%213 = OpConstantComposite %v3float %float_0 %float_0_5 %float_0 169%226 = OpConstantComposite %v4float %float_0 %float_0_5 %float_0 %float_1 170%239 = OpConstantComposite %v2float %float_1 %float_0_5 171%247 = OpConstantComposite %v3float %float_1 %float_0_5 %float_1 172%_entrypoint_v = OpFunction %void None %15 173%16 = OpLabel 174%20 = OpVariable %_ptr_Function_v2float Function 175OpStore %20 %19 176%22 = OpFunctionCall %v4float %main %20 177OpStore %sk_FragColor %22 178OpReturn 179OpFunctionEnd 180%main = OpFunction %v4float None %23 181%24 = OpFunctionParameter %_ptr_Function_v2float 182%25 = OpLabel 183%expectedBW = OpVariable %_ptr_Function_v4float Function 184%expectedWT = OpVariable %_ptr_Function_v4float Function 185%259 = OpVariable %_ptr_Function_v4float Function 186OpStore %expectedBW %30 187OpStore %expectedWT %33 188%36 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 189%40 = OpLoad %v4float %36 190%41 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1 191%43 = OpLoad %v4float %41 192%44 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %float_0 193%35 = OpExtInst %v4float %1 FMix %40 %43 %44 194%46 = OpFOrdEqual %v4bool %35 %45 195%48 = OpAll %bool %46 196OpSelectionMerge %50 None 197OpBranchConditional %48 %49 %50 198%49 = OpLabel 199%52 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 200%53 = OpLoad %v4float %52 201%54 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1 202%55 = OpLoad %v4float %54 203%57 = OpCompositeConstruct %v4float %float_0_25 %float_0_25 %float_0_25 %float_0_25 204%51 = OpExtInst %v4float %1 FMix %53 %55 %57 205%60 = OpFOrdEqual %v4bool %51 %59 206%61 = OpAll %bool %60 207OpBranch %50 208%50 = OpLabel 209%62 = OpPhi %bool %false %25 %61 %49 210OpSelectionMerge %64 None 211OpBranchConditional %62 %63 %64 212%63 = OpLabel 213%66 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 214%67 = OpLoad %v4float %66 215%68 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1 216%69 = OpLoad %v4float %68 217%70 = OpCompositeConstruct %v4float %float_0_75 %float_0_75 %float_0_75 %float_0_75 218%65 = OpExtInst %v4float %1 FMix %67 %69 %70 219%72 = OpFOrdEqual %v4bool %65 %71 220%73 = OpAll %bool %72 221OpBranch %64 222%64 = OpLabel 223%74 = OpPhi %bool %false %50 %73 %63 224OpSelectionMerge %76 None 225OpBranchConditional %74 %75 %76 226%75 = OpLabel 227%78 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 228%79 = OpLoad %v4float %78 229%80 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1 230%81 = OpLoad %v4float %80 231%82 = OpCompositeConstruct %v4float %float_1 %float_1 %float_1 %float_1 232%77 = OpExtInst %v4float %1 FMix %79 %81 %82 233%84 = OpFOrdEqual %v4bool %77 %83 234%85 = OpAll %bool %84 235OpBranch %76 236%76 = OpLabel 237%86 = OpPhi %bool %false %64 %85 %75 238OpSelectionMerge %88 None 239OpBranchConditional %86 %87 %88 240%87 = OpLabel 241%90 = OpAccessChain %_ptr_Uniform_v4float %10 %int_2 242%92 = OpLoad %v4float %90 243%93 = OpCompositeExtract %float %92 0 244%94 = OpAccessChain %_ptr_Uniform_v4float %10 %int_3 245%96 = OpLoad %v4float %94 246%97 = OpCompositeExtract %float %96 0 247%89 = OpExtInst %float %1 FMix %93 %97 %float_0_5 248%98 = OpLoad %v4float %expectedBW 249%99 = OpCompositeExtract %float %98 0 250%100 = OpFOrdEqual %bool %89 %99 251OpBranch %88 252%88 = OpLabel 253%101 = OpPhi %bool %false %76 %100 %87 254OpSelectionMerge %103 None 255OpBranchConditional %101 %102 %103 256%102 = OpLabel 257%105 = OpAccessChain %_ptr_Uniform_v4float %10 %int_2 258%106 = OpLoad %v4float %105 259%107 = OpVectorShuffle %v2float %106 %106 0 1 260%108 = OpAccessChain %_ptr_Uniform_v4float %10 %int_3 261%109 = OpLoad %v4float %108 262%110 = OpVectorShuffle %v2float %109 %109 0 1 263%111 = OpCompositeConstruct %v2float %float_0_5 %float_0_5 264%104 = OpExtInst %v2float %1 FMix %107 %110 %111 265%112 = OpLoad %v4float %expectedBW 266%113 = OpVectorShuffle %v2float %112 %112 0 1 267%114 = OpFOrdEqual %v2bool %104 %113 268%116 = OpAll %bool %114 269OpBranch %103 270%103 = OpLabel 271%117 = OpPhi %bool %false %88 %116 %102 272OpSelectionMerge %119 None 273OpBranchConditional %117 %118 %119 274%118 = OpLabel 275%121 = OpAccessChain %_ptr_Uniform_v4float %10 %int_2 276%122 = OpLoad %v4float %121 277%123 = OpVectorShuffle %v3float %122 %122 0 1 2 278%125 = OpAccessChain %_ptr_Uniform_v4float %10 %int_3 279%126 = OpLoad %v4float %125 280%127 = OpVectorShuffle %v3float %126 %126 0 1 2 281%128 = OpCompositeConstruct %v3float %float_0_5 %float_0_5 %float_0_5 282%120 = OpExtInst %v3float %1 FMix %123 %127 %128 283%129 = OpLoad %v4float %expectedBW 284%130 = OpVectorShuffle %v3float %129 %129 0 1 2 285%131 = OpFOrdEqual %v3bool %120 %130 286%133 = OpAll %bool %131 287OpBranch %119 288%119 = OpLabel 289%134 = OpPhi %bool %false %103 %133 %118 290OpSelectionMerge %136 None 291OpBranchConditional %134 %135 %136 292%135 = OpLabel 293%138 = OpAccessChain %_ptr_Uniform_v4float %10 %int_2 294%139 = OpLoad %v4float %138 295%140 = OpAccessChain %_ptr_Uniform_v4float %10 %int_3 296%141 = OpLoad %v4float %140 297%142 = OpCompositeConstruct %v4float %float_0_5 %float_0_5 %float_0_5 %float_0_5 298%137 = OpExtInst %v4float %1 FMix %139 %141 %142 299%143 = OpLoad %v4float %expectedBW 300%144 = OpFOrdEqual %v4bool %137 %143 301%145 = OpAll %bool %144 302OpBranch %136 303%136 = OpLabel 304%146 = OpPhi %bool %false %119 %145 %135 305OpSelectionMerge %148 None 306OpBranchConditional %146 %147 %148 307%147 = OpLabel 308%149 = OpLoad %v4float %expectedBW 309%150 = OpCompositeExtract %float %149 0 310%151 = OpFOrdEqual %bool %float_0_5 %150 311OpBranch %148 312%148 = OpLabel 313%152 = OpPhi %bool %false %136 %151 %147 314OpSelectionMerge %154 None 315OpBranchConditional %152 %153 %154 316%153 = OpLabel 317%156 = OpLoad %v4float %expectedBW 318%157 = OpVectorShuffle %v2float %156 %156 0 1 319%158 = OpFOrdEqual %v2bool %155 %157 320%159 = OpAll %bool %158 321OpBranch %154 322%154 = OpLabel 323%160 = OpPhi %bool %false %148 %159 %153 324OpSelectionMerge %162 None 325OpBranchConditional %160 %161 %162 326%161 = OpLabel 327%164 = OpLoad %v4float %expectedBW 328%165 = OpVectorShuffle %v3float %164 %164 0 1 2 329%166 = OpFOrdEqual %v3bool %163 %165 330%167 = OpAll %bool %166 331OpBranch %162 332%162 = OpLabel 333%168 = OpPhi %bool %false %154 %167 %161 334OpSelectionMerge %170 None 335OpBranchConditional %168 %169 %170 336%169 = OpLabel 337%171 = OpLoad %v4float %expectedBW 338%172 = OpFOrdEqual %v4bool %30 %171 339%173 = OpAll %bool %172 340OpBranch %170 341%170 = OpLabel 342%174 = OpPhi %bool %false %162 %173 %169 343OpSelectionMerge %176 None 344OpBranchConditional %174 %175 %176 345%175 = OpLabel 346%178 = OpAccessChain %_ptr_Uniform_v4float %10 %int_3 347%179 = OpLoad %v4float %178 348%180 = OpCompositeExtract %float %179 0 349%181 = OpAccessChain %_ptr_Uniform_v4float %10 %int_4 350%183 = OpLoad %v4float %181 351%184 = OpCompositeExtract %float %183 0 352%177 = OpExtInst %float %1 FMix %180 %184 %float_0 353%185 = OpLoad %v4float %expectedWT 354%186 = OpCompositeExtract %float %185 0 355%187 = OpFOrdEqual %bool %177 %186 356OpBranch %176 357%176 = OpLabel 358%188 = OpPhi %bool %false %170 %187 %175 359OpSelectionMerge %190 None 360OpBranchConditional %188 %189 %190 361%189 = OpLabel 362%192 = OpAccessChain %_ptr_Uniform_v4float %10 %int_3 363%193 = OpLoad %v4float %192 364%194 = OpVectorShuffle %v2float %193 %193 0 1 365%195 = OpAccessChain %_ptr_Uniform_v4float %10 %int_4 366%196 = OpLoad %v4float %195 367%197 = OpVectorShuffle %v2float %196 %196 0 1 368%191 = OpExtInst %v2float %1 FMix %194 %197 %198 369%199 = OpLoad %v4float %expectedWT 370%200 = OpVectorShuffle %v2float %199 %199 0 1 371%201 = OpFOrdEqual %v2bool %191 %200 372%202 = OpAll %bool %201 373OpBranch %190 374%190 = OpLabel 375%203 = OpPhi %bool %false %176 %202 %189 376OpSelectionMerge %205 None 377OpBranchConditional %203 %204 %205 378%204 = OpLabel 379%207 = OpAccessChain %_ptr_Uniform_v4float %10 %int_3 380%208 = OpLoad %v4float %207 381%209 = OpVectorShuffle %v3float %208 %208 0 1 2 382%210 = OpAccessChain %_ptr_Uniform_v4float %10 %int_4 383%211 = OpLoad %v4float %210 384%212 = OpVectorShuffle %v3float %211 %211 0 1 2 385%206 = OpExtInst %v3float %1 FMix %209 %212 %213 386%214 = OpLoad %v4float %expectedWT 387%215 = OpVectorShuffle %v3float %214 %214 0 1 2 388%216 = OpFOrdEqual %v3bool %206 %215 389%217 = OpAll %bool %216 390OpBranch %205 391%205 = OpLabel 392%218 = OpPhi %bool %false %190 %217 %204 393OpSelectionMerge %220 None 394OpBranchConditional %218 %219 %220 395%219 = OpLabel 396%222 = OpAccessChain %_ptr_Uniform_v4float %10 %int_3 397%223 = OpLoad %v4float %222 398%224 = OpAccessChain %_ptr_Uniform_v4float %10 %int_4 399%225 = OpLoad %v4float %224 400%221 = OpExtInst %v4float %1 FMix %223 %225 %226 401%227 = OpLoad %v4float %expectedWT 402%228 = OpFOrdEqual %v4bool %221 %227 403%229 = OpAll %bool %228 404OpBranch %220 405%220 = OpLabel 406%230 = OpPhi %bool %false %205 %229 %219 407OpSelectionMerge %232 None 408OpBranchConditional %230 %231 %232 409%231 = OpLabel 410%233 = OpLoad %v4float %expectedWT 411%234 = OpCompositeExtract %float %233 0 412%235 = OpFOrdEqual %bool %float_1 %234 413OpBranch %232 414%232 = OpLabel 415%236 = OpPhi %bool %false %220 %235 %231 416OpSelectionMerge %238 None 417OpBranchConditional %236 %237 %238 418%237 = OpLabel 419%240 = OpLoad %v4float %expectedWT 420%241 = OpVectorShuffle %v2float %240 %240 0 1 421%242 = OpFOrdEqual %v2bool %239 %241 422%243 = OpAll %bool %242 423OpBranch %238 424%238 = OpLabel 425%244 = OpPhi %bool %false %232 %243 %237 426OpSelectionMerge %246 None 427OpBranchConditional %244 %245 %246 428%245 = OpLabel 429%248 = OpLoad %v4float %expectedWT 430%249 = OpVectorShuffle %v3float %248 %248 0 1 2 431%250 = OpFOrdEqual %v3bool %247 %249 432%251 = OpAll %bool %250 433OpBranch %246 434%246 = OpLabel 435%252 = OpPhi %bool %false %238 %251 %245 436OpSelectionMerge %254 None 437OpBranchConditional %252 %253 %254 438%253 = OpLabel 439%255 = OpLoad %v4float %expectedWT 440%256 = OpFOrdEqual %v4bool %33 %255 441%257 = OpAll %bool %256 442OpBranch %254 443%254 = OpLabel 444%258 = OpPhi %bool %false %246 %257 %253 445OpSelectionMerge %262 None 446OpBranchConditional %258 %260 %261 447%260 = OpLabel 448%263 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 449%264 = OpLoad %v4float %263 450OpStore %259 %264 451OpBranch %262 452%261 = OpLabel 453%265 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1 454%266 = OpLoad %v4float %265 455OpStore %259 %266 456OpBranch %262 457%262 = OpLabel 458%267 = OpLoad %v4float %259 459OpReturnValue %267 460OpFunctionEnd 461