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 %b "b" 15 OpName %f1 "f1" 16 OpName %f2 "f2" 17 OpName %f3 "f3" 18 OpName %i1 "i1" 19 OpName %i2 "i2" 20 OpName %i3 "i3" 21 OpName %b1 "b1" 22 OpName %b2 "b2" 23 OpName %b3 "b3" 24 OpDecorate %sk_FragColor RelaxedPrecision 25 OpDecorate %sk_FragColor Location 0 26 OpDecorate %sk_FragColor Index 0 27 OpMemberDecorate %_UniformBuffer 0 Offset 0 28 OpMemberDecorate %_UniformBuffer 0 RelaxedPrecision 29 OpMemberDecorate %_UniformBuffer 1 Offset 16 30 OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision 31 OpDecorate %_UniformBuffer Block 32 OpDecorate %7 Binding 0 33 OpDecorate %7 DescriptorSet 0 34 OpDecorate %29 RelaxedPrecision 35 OpDecorate %30 RelaxedPrecision 36 OpDecorate %34 RelaxedPrecision 37 OpDecorate %35 RelaxedPrecision 38 OpDecorate %41 RelaxedPrecision 39 OpDecorate %42 RelaxedPrecision 40 OpDecorate %61 RelaxedPrecision 41 OpDecorate %62 RelaxedPrecision 42 OpDecorate %63 RelaxedPrecision 43 OpDecorate %64 RelaxedPrecision 44 OpDecorate %65 RelaxedPrecision 45 OpDecorate %66 RelaxedPrecision 46 OpDecorate %67 RelaxedPrecision 47 OpDecorate %68 RelaxedPrecision 48 OpDecorate %69 RelaxedPrecision 49 OpDecorate %70 RelaxedPrecision 50 OpDecorate %71 RelaxedPrecision 51 OpDecorate %72 RelaxedPrecision 52 OpDecorate %73 RelaxedPrecision 53 OpDecorate %74 RelaxedPrecision 54 OpDecorate %83 RelaxedPrecision 55 OpDecorate %85 RelaxedPrecision 56 OpDecorate %86 RelaxedPrecision 57 %float = OpTypeFloat 32 58 %v4float = OpTypeVector %float 4 59%_ptr_Output_v4float = OpTypePointer Output %v4float 60%sk_FragColor = OpVariable %_ptr_Output_v4float Output 61%_UniformBuffer = OpTypeStruct %v4float %v4float 62%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer 63 %7 = OpVariable %_ptr_Uniform__UniformBuffer Uniform 64 %void = OpTypeVoid 65 %12 = OpTypeFunction %void 66 %float_0 = OpConstant %float 0 67 %v2float = OpTypeVector %float 2 68 %16 = OpConstantComposite %v2float %float_0 %float_0 69%_ptr_Function_v2float = OpTypePointer Function %v2float 70 %20 = OpTypeFunction %v4float %_ptr_Function_v2float 71%_ptr_Function_float = OpTypePointer Function %float 72%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float 73 %int = OpTypeInt 32 1 74 %int_0 = OpConstant %int 0 75%_ptr_Function_int = OpTypePointer Function %int 76 %bool = OpTypeBool 77%_ptr_Function_bool = OpTypePointer Function %bool 78 %float_1 = OpConstant %float 1 79 %int_1 = OpConstant %int 1 80 %float_9 = OpConstant %float 9 81%_ptr_Function_v4float = OpTypePointer Function %v4float 82%_entrypoint_v = OpFunction %void None %12 83 %13 = OpLabel 84 %17 = OpVariable %_ptr_Function_v2float Function 85 OpStore %17 %16 86 %19 = OpFunctionCall %v4float %main %17 87 OpStore %sk_FragColor %19 88 OpReturn 89 OpFunctionEnd 90 %main = OpFunction %v4float None %20 91 %21 = OpFunctionParameter %_ptr_Function_v2float 92 %22 = OpLabel 93 %f = OpVariable %_ptr_Function_float Function 94 %i = OpVariable %_ptr_Function_int Function 95 %b = OpVariable %_ptr_Function_bool Function 96 %f1 = OpVariable %_ptr_Function_float Function 97 %f2 = OpVariable %_ptr_Function_float Function 98 %f3 = OpVariable %_ptr_Function_float Function 99 %i1 = OpVariable %_ptr_Function_int Function 100 %i2 = OpVariable %_ptr_Function_int Function 101 %i3 = OpVariable %_ptr_Function_int Function 102 %b1 = OpVariable %_ptr_Function_bool Function 103 %b2 = OpVariable %_ptr_Function_bool Function 104 %b3 = OpVariable %_ptr_Function_bool Function 105 %77 = OpVariable %_ptr_Function_v4float Function 106 %25 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0 107 %29 = OpLoad %v4float %25 108 %30 = OpCompositeExtract %float %29 1 109 OpStore %f %30 110 %33 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0 111 %34 = OpLoad %v4float %33 112 %35 = OpCompositeExtract %float %34 1 113 %36 = OpConvertFToS %int %35 114 OpStore %i %36 115 %40 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0 116 %41 = OpLoad %v4float %40 117 %42 = OpCompositeExtract %float %41 1 118 %43 = OpFUnordNotEqual %bool %42 %float_0 119 OpStore %b %43 120 OpStore %f1 %30 121 %46 = OpConvertSToF %float %36 122 OpStore %f2 %46 123 %48 = OpSelect %float %43 %float_1 %float_0 124 OpStore %f3 %48 125 %51 = OpConvertFToS %int %30 126 OpStore %i1 %51 127 OpStore %i2 %36 128 %54 = OpSelect %int %43 %int_1 %int_0 129 OpStore %i3 %54 130 %57 = OpFUnordNotEqual %bool %30 %float_0 131 OpStore %b1 %57 132 %59 = OpINotEqual %bool %36 %int_0 133 OpStore %b2 %59 134 OpStore %b3 %43 135 %61 = OpFAdd %float %30 %46 136 %62 = OpFAdd %float %61 %48 137 %63 = OpConvertSToF %float %51 138 %64 = OpFAdd %float %62 %63 139 %65 = OpConvertSToF %float %36 140 %66 = OpFAdd %float %64 %65 141 %67 = OpConvertSToF %float %54 142 %68 = OpFAdd %float %66 %67 143 %69 = OpSelect %float %57 %float_1 %float_0 144 %70 = OpFAdd %float %68 %69 145 %71 = OpSelect %float %59 %float_1 %float_0 146 %72 = OpFAdd %float %70 %71 147 %73 = OpSelect %float %43 %float_1 %float_0 148 %74 = OpFAdd %float %72 %73 149 %76 = OpFOrdEqual %bool %74 %float_9 150 OpSelectionMerge %81 None 151 OpBranchConditional %76 %79 %80 152 %79 = OpLabel 153 %82 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0 154 %83 = OpLoad %v4float %82 155 OpStore %77 %83 156 OpBranch %81 157 %80 = OpLabel 158 %84 = OpAccessChain %_ptr_Uniform_v4float %7 %int_1 159 %85 = OpLoad %v4float %84 160 OpStore %77 %85 161 OpBranch %81 162 %81 = OpLabel 163 %86 = OpLoad %v4float %77 164 OpReturnValue %86 165 OpFunctionEnd 166