1 OpCapability Shader 2 %1 = OpExtInstImport "GLSL.std.450" 3 OpMemoryModel Logical GLSL450 4 OpEntryPoint Fragment %_entrypoint_v "_entrypoint" %sk_FragColor 5 OpExecutionMode %_entrypoint_v OriginUpperLeft 6 OpName %sk_FragColor "sk_FragColor" 7 OpName %_UniformBuffer "_UniformBuffer" 8 OpMemberName %_UniformBuffer 0 "colorGreen" 9 OpMemberName %_UniformBuffer 1 "colorRed" 10 OpName %_entrypoint_v "_entrypoint_v" 11 OpName %main "main" 12 OpName %f "f" 13 OpName %i "i" 14 OpName %u "u" 15 OpName %b "b" 16 OpName %f1 "f1" 17 OpName %f2 "f2" 18 OpName %f3 "f3" 19 OpName %f4 "f4" 20 OpName %i1 "i1" 21 OpName %i2 "i2" 22 OpName %i3 "i3" 23 OpName %i4 "i4" 24 OpName %u1 "u1" 25 OpName %u2 "u2" 26 OpName %u3 "u3" 27 OpName %u4 "u4" 28 OpName %b1 "b1" 29 OpName %b2 "b2" 30 OpName %b3 "b3" 31 OpName %b4 "b4" 32 OpDecorate %sk_FragColor RelaxedPrecision 33 OpDecorate %sk_FragColor Location 0 34 OpDecorate %sk_FragColor Index 0 35 OpMemberDecorate %_UniformBuffer 0 Offset 0 36 OpMemberDecorate %_UniformBuffer 0 RelaxedPrecision 37 OpMemberDecorate %_UniformBuffer 1 Offset 16 38 OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision 39 OpDecorate %_UniformBuffer Block 40 OpDecorate %7 Binding 0 41 OpDecorate %7 DescriptorSet 0 42 OpDecorate %29 RelaxedPrecision 43 OpDecorate %30 RelaxedPrecision 44 OpDecorate %34 RelaxedPrecision 45 OpDecorate %35 RelaxedPrecision 46 OpDecorate %41 RelaxedPrecision 47 OpDecorate %42 RelaxedPrecision 48 OpDecorate %48 RelaxedPrecision 49 OpDecorate %49 RelaxedPrecision 50 OpDecorate %83 RelaxedPrecision 51 OpDecorate %84 RelaxedPrecision 52 OpDecorate %85 RelaxedPrecision 53 OpDecorate %86 RelaxedPrecision 54 OpDecorate %87 RelaxedPrecision 55 OpDecorate %88 RelaxedPrecision 56 OpDecorate %89 RelaxedPrecision 57 OpDecorate %90 RelaxedPrecision 58 OpDecorate %91 RelaxedPrecision 59 OpDecorate %92 RelaxedPrecision 60 OpDecorate %93 RelaxedPrecision 61 OpDecorate %94 RelaxedPrecision 62 OpDecorate %95 RelaxedPrecision 63 OpDecorate %96 RelaxedPrecision 64 OpDecorate %97 RelaxedPrecision 65 OpDecorate %98 RelaxedPrecision 66 OpDecorate %99 RelaxedPrecision 67 OpDecorate %100 RelaxedPrecision 68 OpDecorate %101 RelaxedPrecision 69 OpDecorate %102 RelaxedPrecision 70 OpDecorate %103 RelaxedPrecision 71 OpDecorate %104 RelaxedPrecision 72 OpDecorate %105 RelaxedPrecision 73 OpDecorate %106 RelaxedPrecision 74 OpDecorate %107 RelaxedPrecision 75 OpDecorate %108 RelaxedPrecision 76 OpDecorate %109 RelaxedPrecision 77 OpDecorate %118 RelaxedPrecision 78 OpDecorate %120 RelaxedPrecision 79 OpDecorate %121 RelaxedPrecision 80 %float = OpTypeFloat 32 81 %v4float = OpTypeVector %float 4 82%_ptr_Output_v4float = OpTypePointer Output %v4float 83%sk_FragColor = OpVariable %_ptr_Output_v4float Output 84%_UniformBuffer = OpTypeStruct %v4float %v4float 85%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer 86 %7 = OpVariable %_ptr_Uniform__UniformBuffer Uniform 87 %void = OpTypeVoid 88 %12 = OpTypeFunction %void 89 %float_0 = OpConstant %float 0 90 %v2float = OpTypeVector %float 2 91 %16 = OpConstantComposite %v2float %float_0 %float_0 92%_ptr_Function_v2float = OpTypePointer Function %v2float 93 %20 = OpTypeFunction %v4float %_ptr_Function_v2float 94%_ptr_Function_float = OpTypePointer Function %float 95%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float 96 %int = OpTypeInt 32 1 97 %int_0 = OpConstant %int 0 98%_ptr_Function_int = OpTypePointer Function %int 99 %uint = OpTypeInt 32 0 100%_ptr_Function_uint = OpTypePointer Function %uint 101 %bool = OpTypeBool 102%_ptr_Function_bool = OpTypePointer Function %bool 103 %float_1 = OpConstant %float 1 104 %int_1 = OpConstant %int 1 105 %uint_1 = OpConstant %uint 1 106 %uint_0 = OpConstant %uint 0 107 %float_16 = OpConstant %float 16 108%_ptr_Function_v4float = OpTypePointer Function %v4float 109%_entrypoint_v = OpFunction %void None %12 110 %13 = OpLabel 111 %17 = OpVariable %_ptr_Function_v2float Function 112 OpStore %17 %16 113 %19 = OpFunctionCall %v4float %main %17 114 OpStore %sk_FragColor %19 115 OpReturn 116 OpFunctionEnd 117 %main = OpFunction %v4float None %20 118 %21 = OpFunctionParameter %_ptr_Function_v2float 119 %22 = OpLabel 120 %f = OpVariable %_ptr_Function_float Function 121 %i = OpVariable %_ptr_Function_int Function 122 %u = OpVariable %_ptr_Function_uint Function 123 %b = OpVariable %_ptr_Function_bool Function 124 %f1 = OpVariable %_ptr_Function_float Function 125 %f2 = OpVariable %_ptr_Function_float Function 126 %f3 = OpVariable %_ptr_Function_float Function 127 %f4 = OpVariable %_ptr_Function_float Function 128 %i1 = OpVariable %_ptr_Function_int Function 129 %i2 = OpVariable %_ptr_Function_int Function 130 %i3 = OpVariable %_ptr_Function_int Function 131 %i4 = OpVariable %_ptr_Function_int Function 132 %u1 = OpVariable %_ptr_Function_uint Function 133 %u2 = OpVariable %_ptr_Function_uint Function 134 %u3 = OpVariable %_ptr_Function_uint Function 135 %u4 = OpVariable %_ptr_Function_uint Function 136 %b1 = OpVariable %_ptr_Function_bool Function 137 %b2 = OpVariable %_ptr_Function_bool Function 138 %b3 = OpVariable %_ptr_Function_bool Function 139 %b4 = OpVariable %_ptr_Function_bool Function 140 %112 = OpVariable %_ptr_Function_v4float Function 141 %25 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0 142 %29 = OpLoad %v4float %25 143 %30 = OpCompositeExtract %float %29 1 144 OpStore %f %30 145 %33 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0 146 %34 = OpLoad %v4float %33 147 %35 = OpCompositeExtract %float %34 1 148 %36 = OpConvertFToS %int %35 149 OpStore %i %36 150 %40 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0 151 %41 = OpLoad %v4float %40 152 %42 = OpCompositeExtract %float %41 1 153 %43 = OpConvertFToU %uint %42 154 OpStore %u %43 155 %47 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0 156 %48 = OpLoad %v4float %47 157 %49 = OpCompositeExtract %float %48 1 158 %50 = OpFUnordNotEqual %bool %49 %float_0 159 OpStore %b %50 160 OpStore %f1 %30 161 %53 = OpConvertSToF %float %36 162 OpStore %f2 %53 163 %55 = OpConvertUToF %float %43 164 OpStore %f3 %55 165 %57 = OpSelect %float %50 %float_1 %float_0 166 OpStore %f4 %57 167 %60 = OpConvertFToS %int %30 168 OpStore %i1 %60 169 OpStore %i2 %36 170 %63 = OpBitcast %int %43 171 OpStore %i3 %63 172 %65 = OpSelect %int %50 %int_1 %int_0 173 OpStore %i4 %65 174 %68 = OpConvertFToU %uint %30 175 OpStore %u1 %68 176 %70 = OpBitcast %uint %36 177 OpStore %u2 %70 178 OpStore %u3 %43 179 %73 = OpSelect %uint %50 %uint_1 %uint_0 180 OpStore %u4 %73 181 %77 = OpFUnordNotEqual %bool %30 %float_0 182 OpStore %b1 %77 183 %79 = OpINotEqual %bool %36 %int_0 184 OpStore %b2 %79 185 %81 = OpINotEqual %bool %43 %uint_0 186 OpStore %b3 %81 187 OpStore %b4 %50 188 %83 = OpFAdd %float %30 %53 189 %84 = OpFAdd %float %83 %55 190 %85 = OpFAdd %float %84 %57 191 %86 = OpConvertSToF %float %60 192 %87 = OpFAdd %float %85 %86 193 %88 = OpConvertSToF %float %36 194 %89 = OpFAdd %float %87 %88 195 %90 = OpConvertSToF %float %63 196 %91 = OpFAdd %float %89 %90 197 %92 = OpConvertSToF %float %65 198 %93 = OpFAdd %float %91 %92 199 %94 = OpConvertUToF %float %68 200 %95 = OpFAdd %float %93 %94 201 %96 = OpConvertUToF %float %70 202 %97 = OpFAdd %float %95 %96 203 %98 = OpConvertUToF %float %43 204 %99 = OpFAdd %float %97 %98 205 %100 = OpConvertUToF %float %73 206 %101 = OpFAdd %float %99 %100 207 %102 = OpSelect %float %77 %float_1 %float_0 208 %103 = OpFAdd %float %101 %102 209 %104 = OpSelect %float %79 %float_1 %float_0 210 %105 = OpFAdd %float %103 %104 211 %106 = OpSelect %float %81 %float_1 %float_0 212 %107 = OpFAdd %float %105 %106 213 %108 = OpSelect %float %50 %float_1 %float_0 214 %109 = OpFAdd %float %107 %108 215 %111 = OpFOrdEqual %bool %109 %float_16 216 OpSelectionMerge %116 None 217 OpBranchConditional %111 %114 %115 218 %114 = OpLabel 219 %117 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0 220 %118 = OpLoad %v4float %117 221 OpStore %112 %118 222 OpBranch %116 223 %115 = OpLabel 224 %119 = OpAccessChain %_ptr_Uniform_v4float %7 %int_1 225 %120 = OpLoad %v4float %119 226 OpStore %112 %120 227 OpBranch %116 228 %116 = OpLabel 229 %121 = OpLoad %v4float %112 230 OpReturnValue %121 231 OpFunctionEnd 232