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 "N" 10OpMemberName %_UniformBuffer 1 "I" 11OpMemberName %_UniformBuffer 2 "NRef" 12OpMemberName %_UniformBuffer 3 "colorGreen" 13OpMemberName %_UniformBuffer 4 "colorRed" 14OpName %_entrypoint_v "_entrypoint_v" 15OpName %main "main" 16OpName %expectedPos "expectedPos" 17OpName %expectedNeg "expectedNeg" 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 %expectedPos RelaxedPrecision 36OpDecorate %32 RelaxedPrecision 37OpDecorate %expectedNeg RelaxedPrecision 38OpDecorate %38 RelaxedPrecision 39OpDecorate %40 RelaxedPrecision 40OpDecorate %45 RelaxedPrecision 41OpDecorate %46 RelaxedPrecision 42OpDecorate %49 RelaxedPrecision 43OpDecorate %50 RelaxedPrecision 44OpDecorate %53 RelaxedPrecision 45OpDecorate %54 RelaxedPrecision 46OpDecorate %55 RelaxedPrecision 47OpDecorate %56 RelaxedPrecision 48OpDecorate %60 RelaxedPrecision 49OpDecorate %62 RelaxedPrecision 50OpDecorate %63 RelaxedPrecision 51OpDecorate %65 RelaxedPrecision 52OpDecorate %66 RelaxedPrecision 53OpDecorate %68 RelaxedPrecision 54OpDecorate %69 RelaxedPrecision 55OpDecorate %70 RelaxedPrecision 56OpDecorate %71 RelaxedPrecision 57OpDecorate %78 RelaxedPrecision 58OpDecorate %80 RelaxedPrecision 59OpDecorate %81 RelaxedPrecision 60OpDecorate %84 RelaxedPrecision 61OpDecorate %85 RelaxedPrecision 62OpDecorate %87 RelaxedPrecision 63OpDecorate %88 RelaxedPrecision 64OpDecorate %89 RelaxedPrecision 65OpDecorate %90 RelaxedPrecision 66OpDecorate %97 RelaxedPrecision 67OpDecorate %99 RelaxedPrecision 68OpDecorate %101 RelaxedPrecision 69OpDecorate %103 RelaxedPrecision 70OpDecorate %104 RelaxedPrecision 71OpDecorate %111 RelaxedPrecision 72OpDecorate %112 RelaxedPrecision 73OpDecorate %117 RelaxedPrecision 74OpDecorate %118 RelaxedPrecision 75OpDecorate %119 RelaxedPrecision 76OpDecorate %125 RelaxedPrecision 77OpDecorate %126 RelaxedPrecision 78OpDecorate %127 RelaxedPrecision 79OpDecorate %133 RelaxedPrecision 80OpDecorate %143 RelaxedPrecision 81OpDecorate %146 RelaxedPrecision 82OpDecorate %147 RelaxedPrecision 83%float = OpTypeFloat 32 84%v4float = OpTypeVector %float 4 85%_ptr_Output_v4float = OpTypePointer Output %v4float 86%sk_FragColor = OpVariable %_ptr_Output_v4float Output 87%bool = OpTypeBool 88%_ptr_Input_bool = OpTypePointer Input %bool 89%sk_Clockwise = OpVariable %_ptr_Input_bool Input 90%_UniformBuffer = OpTypeStruct %v4float %v4float %v4float %v4float %v4float 91%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer 92%10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform 93%void = OpTypeVoid 94%15 = OpTypeFunction %void 95%v2float = OpTypeVector %float 2 96%float_0 = OpConstant %float 0 97%19 = OpConstantComposite %v2float %float_0 %float_0 98%_ptr_Function_v2float = OpTypePointer Function %v2float 99%23 = OpTypeFunction %v4float %_ptr_Function_v2float 100%_ptr_Function_v4float = OpTypePointer Function %v4float 101%float_1 = OpConstant %float 1 102%float_2 = OpConstant %float 2 103%float_3 = OpConstant %float 3 104%float_4 = OpConstant %float 4 105%32 = OpConstantComposite %v4float %float_1 %float_2 %float_3 %float_4 106%float_n1 = OpConstant %float -1 107%float_n2 = OpConstant %float -2 108%float_n3 = OpConstant %float -3 109%float_n4 = OpConstant %float -4 110%38 = OpConstantComposite %v4float %float_n1 %float_n2 %float_n3 %float_n4 111%false = OpConstantFalse %bool 112%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float 113%int = OpTypeInt 32 1 114%int_0 = OpConstant %int 0 115%int_1 = OpConstant %int 1 116%int_2 = OpConstant %int 2 117%v2bool = OpTypeVector %bool 2 118%v3float = OpTypeVector %float 3 119%v3bool = OpTypeVector %bool 3 120%v4bool = OpTypeVector %bool 4 121%117 = OpConstantComposite %v2float %float_n1 %float_n2 122%125 = OpConstantComposite %v3float %float_1 %float_2 %float_3 123%int_3 = OpConstant %int 3 124%int_4 = OpConstant %int 4 125%_entrypoint_v = OpFunction %void None %15 126%16 = OpLabel 127%20 = OpVariable %_ptr_Function_v2float Function 128OpStore %20 %19 129%22 = OpFunctionCall %v4float %main %20 130OpStore %sk_FragColor %22 131OpReturn 132OpFunctionEnd 133%main = OpFunction %v4float None %23 134%24 = OpFunctionParameter %_ptr_Function_v2float 135%25 = OpLabel 136%expectedPos = OpVariable %_ptr_Function_v4float Function 137%expectedNeg = OpVariable %_ptr_Function_v4float Function 138%137 = OpVariable %_ptr_Function_v4float Function 139OpStore %expectedPos %32 140OpStore %expectedNeg %38 141%41 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 142%45 = OpLoad %v4float %41 143%46 = OpCompositeExtract %float %45 0 144%47 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1 145%49 = OpLoad %v4float %47 146%50 = OpCompositeExtract %float %49 0 147%51 = OpAccessChain %_ptr_Uniform_v4float %10 %int_2 148%53 = OpLoad %v4float %51 149%54 = OpCompositeExtract %float %53 0 150%40 = OpExtInst %float %1 FaceForward %46 %50 %54 151%55 = OpLoad %v4float %expectedNeg 152%56 = OpCompositeExtract %float %55 0 153%57 = OpFOrdEqual %bool %40 %56 154OpSelectionMerge %59 None 155OpBranchConditional %57 %58 %59 156%58 = OpLabel 157%61 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 158%62 = OpLoad %v4float %61 159%63 = OpVectorShuffle %v2float %62 %62 0 1 160%64 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1 161%65 = OpLoad %v4float %64 162%66 = OpVectorShuffle %v2float %65 %65 0 1 163%67 = OpAccessChain %_ptr_Uniform_v4float %10 %int_2 164%68 = OpLoad %v4float %67 165%69 = OpVectorShuffle %v2float %68 %68 0 1 166%60 = OpExtInst %v2float %1 FaceForward %63 %66 %69 167%70 = OpLoad %v4float %expectedNeg 168%71 = OpVectorShuffle %v2float %70 %70 0 1 169%72 = OpFOrdEqual %v2bool %60 %71 170%74 = OpAll %bool %72 171OpBranch %59 172%59 = OpLabel 173%75 = OpPhi %bool %false %25 %74 %58 174OpSelectionMerge %77 None 175OpBranchConditional %75 %76 %77 176%76 = OpLabel 177%79 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 178%80 = OpLoad %v4float %79 179%81 = OpVectorShuffle %v3float %80 %80 0 1 2 180%83 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1 181%84 = OpLoad %v4float %83 182%85 = OpVectorShuffle %v3float %84 %84 0 1 2 183%86 = OpAccessChain %_ptr_Uniform_v4float %10 %int_2 184%87 = OpLoad %v4float %86 185%88 = OpVectorShuffle %v3float %87 %87 0 1 2 186%78 = OpExtInst %v3float %1 FaceForward %81 %85 %88 187%89 = OpLoad %v4float %expectedPos 188%90 = OpVectorShuffle %v3float %89 %89 0 1 2 189%91 = OpFOrdEqual %v3bool %78 %90 190%93 = OpAll %bool %91 191OpBranch %77 192%77 = OpLabel 193%94 = OpPhi %bool %false %59 %93 %76 194OpSelectionMerge %96 None 195OpBranchConditional %94 %95 %96 196%95 = OpLabel 197%98 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 198%99 = OpLoad %v4float %98 199%100 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1 200%101 = OpLoad %v4float %100 201%102 = OpAccessChain %_ptr_Uniform_v4float %10 %int_2 202%103 = OpLoad %v4float %102 203%97 = OpExtInst %v4float %1 FaceForward %99 %101 %103 204%104 = OpLoad %v4float %expectedPos 205%105 = OpFOrdEqual %v4bool %97 %104 206%107 = OpAll %bool %105 207OpBranch %96 208%96 = OpLabel 209%108 = OpPhi %bool %false %77 %107 %95 210OpSelectionMerge %110 None 211OpBranchConditional %108 %109 %110 212%109 = OpLabel 213%111 = OpLoad %v4float %expectedNeg 214%112 = OpCompositeExtract %float %111 0 215%113 = OpFOrdEqual %bool %float_n1 %112 216OpBranch %110 217%110 = OpLabel 218%114 = OpPhi %bool %false %96 %113 %109 219OpSelectionMerge %116 None 220OpBranchConditional %114 %115 %116 221%115 = OpLabel 222%118 = OpLoad %v4float %expectedNeg 223%119 = OpVectorShuffle %v2float %118 %118 0 1 224%120 = OpFOrdEqual %v2bool %117 %119 225%121 = OpAll %bool %120 226OpBranch %116 227%116 = OpLabel 228%122 = OpPhi %bool %false %110 %121 %115 229OpSelectionMerge %124 None 230OpBranchConditional %122 %123 %124 231%123 = OpLabel 232%126 = OpLoad %v4float %expectedPos 233%127 = OpVectorShuffle %v3float %126 %126 0 1 2 234%128 = OpFOrdEqual %v3bool %125 %127 235%129 = OpAll %bool %128 236OpBranch %124 237%124 = OpLabel 238%130 = OpPhi %bool %false %116 %129 %123 239OpSelectionMerge %132 None 240OpBranchConditional %130 %131 %132 241%131 = OpLabel 242%133 = OpLoad %v4float %expectedPos 243%134 = OpFOrdEqual %v4bool %32 %133 244%135 = OpAll %bool %134 245OpBranch %132 246%132 = OpLabel 247%136 = OpPhi %bool %false %124 %135 %131 248OpSelectionMerge %140 None 249OpBranchConditional %136 %138 %139 250%138 = OpLabel 251%141 = OpAccessChain %_ptr_Uniform_v4float %10 %int_3 252%143 = OpLoad %v4float %141 253OpStore %137 %143 254OpBranch %140 255%139 = OpLabel 256%144 = OpAccessChain %_ptr_Uniform_v4float %10 %int_4 257%146 = OpLoad %v4float %144 258OpStore %137 %146 259OpBranch %140 260%140 = OpLabel 261%147 = OpLoad %v4float %137 262OpReturnValue %147 263OpFunctionEnd 264