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