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" 11OpName %_entrypoint_v "_entrypoint_v" 12OpName %main "main" 13OpName %result "result" 14OpName %a "a" 15OpName %b "b" 16OpName %c "c" 17OpName %d "d" 18OpName %e "e" 19OpName %f "f" 20OpDecorate %sk_FragColor RelaxedPrecision 21OpDecorate %sk_FragColor Location 0 22OpDecorate %sk_FragColor Index 0 23OpDecorate %sk_Clockwise BuiltIn FrontFacing 24OpMemberDecorate %_UniformBuffer 0 Offset 0 25OpMemberDecorate %_UniformBuffer 0 RelaxedPrecision 26OpMemberDecorate %_UniformBuffer 1 Offset 16 27OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision 28OpDecorate %_UniformBuffer Block 29OpDecorate %10 Binding 0 30OpDecorate %10 DescriptorSet 0 31OpDecorate %159 RelaxedPrecision 32OpDecorate %162 RelaxedPrecision 33OpDecorate %163 RelaxedPrecision 34%float = OpTypeFloat 32 35%v4float = OpTypeVector %float 4 36%_ptr_Output_v4float = OpTypePointer Output %v4float 37%sk_FragColor = OpVariable %_ptr_Output_v4float Output 38%bool = OpTypeBool 39%_ptr_Input_bool = OpTypePointer Input %bool 40%sk_Clockwise = OpVariable %_ptr_Input_bool Input 41%_UniformBuffer = OpTypeStruct %v4float %v4float 42%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer 43%10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform 44%void = OpTypeVoid 45%15 = OpTypeFunction %void 46%v2float = OpTypeVector %float 2 47%float_0 = OpConstant %float 0 48%19 = OpConstantComposite %v2float %float_0 %float_0 49%_ptr_Function_v2float = OpTypePointer Function %v2float 50%23 = OpTypeFunction %v4float %_ptr_Function_v2float 51%_ptr_Function_float = OpTypePointer Function %float 52%mat2v2float = OpTypeMatrix %v2float 2 53%_ptr_Function_mat2v2float = OpTypePointer Function %mat2v2float 54%float_1 = OpConstant %float 1 55%v3float = OpTypeVector %float 3 56%mat3v3float = OpTypeMatrix %v3float 3 57%int = OpTypeInt 32 1 58%int_0 = OpConstant %int 0 59%mat4v4float = OpTypeMatrix %v4float 4 60%_ptr_Function_mat3v3float = OpTypePointer Function %mat3v3float 61%_ptr_Function_v3float = OpTypePointer Function %v3float 62%_ptr_Function_mat4v4float = OpTypePointer Function %mat4v4float 63%_ptr_Function_v4float = OpTypePointer Function %v4float 64%float_6 = OpConstant %float 6 65%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float 66%int_1 = OpConstant %int 1 67%_entrypoint_v = OpFunction %void None %15 68%16 = OpLabel 69%20 = OpVariable %_ptr_Function_v2float Function 70OpStore %20 %19 71%22 = OpFunctionCall %v4float %main %20 72OpStore %sk_FragColor %22 73OpReturn 74OpFunctionEnd 75%main = OpFunction %v4float None %23 76%24 = OpFunctionParameter %_ptr_Function_v2float 77%25 = OpLabel 78%result = OpVariable %_ptr_Function_float Function 79%a = OpVariable %_ptr_Function_mat2v2float Function 80%b = OpVariable %_ptr_Function_mat2v2float Function 81%c = OpVariable %_ptr_Function_mat3v3float Function 82%d = OpVariable %_ptr_Function_mat3v3float Function 83%e = OpVariable %_ptr_Function_mat4v4float Function 84%f = OpVariable %_ptr_Function_mat2v2float Function 85%153 = OpVariable %_ptr_Function_v4float Function 86OpStore %result %float_0 87%34 = OpCompositeConstruct %v3float %float_1 %float_0 %float_0 88%35 = OpCompositeConstruct %v3float %float_0 %float_1 %float_0 89%36 = OpCompositeConstruct %v3float %float_0 %float_0 %float_1 90%32 = OpCompositeConstruct %mat3v3float %34 %35 %36 91%39 = OpCompositeExtract %v3float %32 0 92%40 = OpVectorShuffle %v2float %39 %39 0 1 93%41 = OpCompositeExtract %v3float %32 1 94%42 = OpVectorShuffle %v2float %41 %41 0 1 95%38 = OpCompositeConstruct %mat2v2float %40 %42 96OpStore %a %38 97%43 = OpLoad %float %result 98%46 = OpAccessChain %_ptr_Function_v2float %a %int_0 99%47 = OpLoad %v2float %46 100%48 = OpCompositeExtract %float %47 0 101%49 = OpFAdd %float %43 %48 102OpStore %result %49 103%52 = OpCompositeConstruct %v4float %float_1 %float_0 %float_0 %float_0 104%53 = OpCompositeConstruct %v4float %float_0 %float_1 %float_0 %float_0 105%54 = OpCompositeConstruct %v4float %float_0 %float_0 %float_1 %float_0 106%55 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %float_1 107%51 = OpCompositeConstruct %mat4v4float %52 %53 %54 %55 108%58 = OpCompositeExtract %v4float %51 0 109%59 = OpVectorShuffle %v2float %58 %58 0 1 110%60 = OpCompositeExtract %v4float %51 1 111%61 = OpVectorShuffle %v2float %60 %60 0 1 112%57 = OpCompositeConstruct %mat2v2float %59 %61 113OpStore %b %57 114%62 = OpLoad %float %result 115%63 = OpAccessChain %_ptr_Function_v2float %b %int_0 116%64 = OpLoad %v2float %63 117%65 = OpCompositeExtract %float %64 0 118%66 = OpFAdd %float %62 %65 119OpStore %result %66 120%70 = OpCompositeConstruct %v4float %float_1 %float_0 %float_0 %float_0 121%71 = OpCompositeConstruct %v4float %float_0 %float_1 %float_0 %float_0 122%72 = OpCompositeConstruct %v4float %float_0 %float_0 %float_1 %float_0 123%73 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %float_1 124%69 = OpCompositeConstruct %mat4v4float %70 %71 %72 %73 125%75 = OpCompositeExtract %v4float %69 0 126%76 = OpVectorShuffle %v3float %75 %75 0 1 2 127%77 = OpCompositeExtract %v4float %69 1 128%78 = OpVectorShuffle %v3float %77 %77 0 1 2 129%79 = OpCompositeExtract %v4float %69 2 130%80 = OpVectorShuffle %v3float %79 %79 0 1 2 131%74 = OpCompositeConstruct %mat3v3float %76 %78 %80 132OpStore %c %74 133%81 = OpLoad %float %result 134%82 = OpAccessChain %_ptr_Function_v3float %c %int_0 135%84 = OpLoad %v3float %82 136%85 = OpCompositeExtract %float %84 0 137%86 = OpFAdd %float %81 %85 138OpStore %result %86 139%89 = OpCompositeConstruct %v2float %float_1 %float_0 140%90 = OpCompositeConstruct %v2float %float_0 %float_1 141%88 = OpCompositeConstruct %mat2v2float %89 %90 142%92 = OpCompositeExtract %v2float %88 0 143%93 = OpCompositeConstruct %v3float %92 %float_0 144%94 = OpCompositeExtract %v2float %88 1 145%95 = OpCompositeConstruct %v3float %94 %float_0 146%96 = OpCompositeConstruct %v3float %float_0 %float_0 %float_1 147%91 = OpCompositeConstruct %mat3v3float %93 %95 %96 148OpStore %d %91 149%97 = OpLoad %float %result 150%98 = OpAccessChain %_ptr_Function_v3float %d %int_0 151%99 = OpLoad %v3float %98 152%100 = OpCompositeExtract %float %99 0 153%101 = OpFAdd %float %97 %100 154OpStore %result %101 155%105 = OpCompositeConstruct %v2float %float_1 %float_0 156%106 = OpCompositeConstruct %v2float %float_0 %float_1 157%104 = OpCompositeConstruct %mat2v2float %105 %106 158%108 = OpCompositeExtract %v2float %104 0 159%109 = OpCompositeConstruct %v3float %108 %float_0 160%110 = OpCompositeExtract %v2float %104 1 161%111 = OpCompositeConstruct %v3float %110 %float_0 162%112 = OpCompositeConstruct %v3float %float_0 %float_0 %float_1 163%107 = OpCompositeConstruct %mat3v3float %109 %111 %112 164%114 = OpCompositeExtract %v3float %107 0 165%115 = OpCompositeConstruct %v4float %114 %float_0 166%116 = OpCompositeExtract %v3float %107 1 167%117 = OpCompositeConstruct %v4float %116 %float_0 168%118 = OpCompositeExtract %v3float %107 2 169%119 = OpCompositeConstruct %v4float %118 %float_0 170%120 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %float_1 171%113 = OpCompositeConstruct %mat4v4float %115 %117 %119 %120 172OpStore %e %113 173%121 = OpLoad %float %result 174%122 = OpAccessChain %_ptr_Function_v4float %e %int_0 175%124 = OpLoad %v4float %122 176%125 = OpCompositeExtract %float %124 0 177%126 = OpFAdd %float %121 %125 178OpStore %result %126 179%129 = OpCompositeConstruct %v4float %float_1 %float_0 %float_0 %float_0 180%130 = OpCompositeConstruct %v4float %float_0 %float_1 %float_0 %float_0 181%131 = OpCompositeConstruct %v4float %float_0 %float_0 %float_1 %float_0 182%132 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %float_1 183%128 = OpCompositeConstruct %mat4v4float %129 %130 %131 %132 184%134 = OpCompositeExtract %v4float %128 0 185%135 = OpVectorShuffle %v3float %134 %134 0 1 2 186%136 = OpCompositeExtract %v4float %128 1 187%137 = OpVectorShuffle %v3float %136 %136 0 1 2 188%138 = OpCompositeExtract %v4float %128 2 189%139 = OpVectorShuffle %v3float %138 %138 0 1 2 190%133 = OpCompositeConstruct %mat3v3float %135 %137 %139 191%141 = OpCompositeExtract %v3float %133 0 192%142 = OpVectorShuffle %v2float %141 %141 0 1 193%143 = OpCompositeExtract %v3float %133 1 194%144 = OpVectorShuffle %v2float %143 %143 0 1 195%140 = OpCompositeConstruct %mat2v2float %142 %144 196OpStore %f %140 197%145 = OpLoad %float %result 198%146 = OpAccessChain %_ptr_Function_v2float %f %int_0 199%147 = OpLoad %v2float %146 200%148 = OpCompositeExtract %float %147 0 201%149 = OpFAdd %float %145 %148 202OpStore %result %149 203%150 = OpLoad %float %result 204%152 = OpFOrdEqual %bool %150 %float_6 205OpSelectionMerge %156 None 206OpBranchConditional %152 %154 %155 207%154 = OpLabel 208%157 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 209%159 = OpLoad %v4float %157 210OpStore %153 %159 211OpBranch %156 212%155 = OpLabel 213%160 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1 214%162 = OpLoad %v4float %160 215OpStore %153 %162 216OpBranch %156 217%156 = OpLabel 218%163 = OpLoad %v4float %153 219OpReturnValue %163 220OpFunctionEnd 221