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