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 OpMemberName %_UniformBuffer 2 "unknownInput" 11 OpName %_entrypoint_v "_entrypoint_v" 12 OpName %main "main" 13 OpName %x "x" 14 OpName %y "y" 15 OpName %z "z" 16 OpName %b "b" 17 OpName %c "c" 18 OpName %d "d" 19 OpName %e "e" 20 OpName %f "f" 21 OpDecorate %sk_FragColor RelaxedPrecision 22 OpDecorate %sk_FragColor Location 0 23 OpDecorate %sk_FragColor Index 0 24 OpMemberDecorate %_UniformBuffer 0 Offset 0 25 OpMemberDecorate %_UniformBuffer 0 RelaxedPrecision 26 OpMemberDecorate %_UniformBuffer 1 Offset 16 27 OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision 28 OpMemberDecorate %_UniformBuffer 2 Offset 32 29 OpMemberDecorate %_UniformBuffer 2 RelaxedPrecision 30 OpDecorate %_UniformBuffer Block 31 OpDecorate %7 Binding 0 32 OpDecorate %7 DescriptorSet 0 33 OpDecorate %59 RelaxedPrecision 34 OpDecorate %68 RelaxedPrecision 35 OpDecorate %113 RelaxedPrecision 36 OpDecorate %115 RelaxedPrecision 37 OpDecorate %116 RelaxedPrecision 38 %float = OpTypeFloat 32 39 %v4float = OpTypeVector %float 4 40%_ptr_Output_v4float = OpTypePointer Output %v4float 41%sk_FragColor = OpVariable %_ptr_Output_v4float Output 42%_UniformBuffer = OpTypeStruct %v4float %v4float %float 43%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer 44 %7 = OpVariable %_ptr_Uniform__UniformBuffer Uniform 45 %void = OpTypeVoid 46 %12 = OpTypeFunction %void 47 %float_0 = OpConstant %float 0 48 %v2float = OpTypeVector %float 2 49 %16 = OpConstantComposite %v2float %float_0 %float_0 50%_ptr_Function_v2float = OpTypePointer Function %v2float 51 %20 = OpTypeFunction %v4float %_ptr_Function_v2float 52%_ptr_Function_float = OpTypePointer Function %float 53 %float_1 = OpConstant %float 1 54 %float_2 = OpConstant %float 2 55 %int = OpTypeInt 32 1 56%_ptr_Function_int = OpTypePointer Function %int 57 %int_3 = OpConstant %int 3 58 %int_2 = OpConstant %int 2 59 %int_4 = OpConstant %int 4 60 %bool = OpTypeBool 61%_ptr_Function_bool = OpTypePointer Function %bool 62 %true = OpConstantTrue %bool 63 %float_4 = OpConstant %float 4 64 %false = OpConstantFalse %bool 65%_ptr_Uniform_float = OpTypePointer Uniform %float 66 %float_12 = OpConstant %float 12 67%float_0_100000001 = OpConstant %float 0.100000001 68 %float_6 = OpConstant %float 6 69 %int_1 = OpConstant %int 1 70 %int_6 = OpConstant %int 6 71%_ptr_Function_v4float = OpTypePointer Function %v4float 72%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float 73 %int_0 = OpConstant %int 0 74%_entrypoint_v = OpFunction %void None %12 75 %13 = OpLabel 76 %17 = OpVariable %_ptr_Function_v2float Function 77 OpStore %17 %16 78 %19 = OpFunctionCall %v4float %main %17 79 OpStore %sk_FragColor %19 80 OpReturn 81 OpFunctionEnd 82 %main = OpFunction %v4float None %20 83 %21 = OpFunctionParameter %_ptr_Function_v2float 84 %22 = OpLabel 85 %x = OpVariable %_ptr_Function_float Function 86 %y = OpVariable %_ptr_Function_float Function 87 %z = OpVariable %_ptr_Function_int Function 88 %b = OpVariable %_ptr_Function_bool Function 89 %c = OpVariable %_ptr_Function_bool Function 90 %d = OpVariable %_ptr_Function_bool Function 91 %e = OpVariable %_ptr_Function_bool Function 92 %f = OpVariable %_ptr_Function_bool Function 93 %105 = OpVariable %_ptr_Function_v4float Function 94 OpStore %x %float_1 95 OpStore %y %float_2 96 OpStore %z %int_3 97 %32 = OpFSub %float %float_1 %float_1 98 %33 = OpFMul %float %float_2 %float_1 99 %34 = OpFMul %float %33 %float_1 100 %35 = OpFSub %float %float_2 %float_1 101 %36 = OpFMul %float %34 %35 102 %37 = OpFAdd %float %32 %36 103 OpStore %x %37 104 %38 = OpFDiv %float %37 %float_2 105 %39 = OpFDiv %float %38 %37 106 OpStore %y %39 107 %41 = OpSDiv %int %int_3 %int_2 108 %42 = OpIMul %int %41 %int_3 109 %44 = OpIAdd %int %42 %int_4 110 %45 = OpISub %int %44 %int_2 111 OpStore %z %45 112 %51 = OpFOrdGreaterThan %bool %37 %float_4 113 %52 = OpFOrdLessThan %bool %37 %float_2 114 %53 = OpLogicalEqual %bool %51 %52 115 OpSelectionMerge %55 None 116 OpBranchConditional %53 %55 %54 117 %54 = OpLabel 118 %57 = OpAccessChain %_ptr_Uniform_float %7 %int_2 119 %59 = OpLoad %float %57 120 %60 = OpFOrdGreaterThanEqual %bool %float_2 %59 121 OpSelectionMerge %62 None 122 OpBranchConditional %60 %61 %62 123 %61 = OpLabel 124 %63 = OpFOrdLessThanEqual %bool %39 %37 125 OpBranch %62 126 %62 = OpLabel 127 %64 = OpPhi %bool %false %54 %63 %61 128 OpBranch %55 129 %55 = OpLabel 130 %65 = OpPhi %bool %true %22 %64 %62 131 OpStore %b %65 132 %67 = OpAccessChain %_ptr_Uniform_float %7 %int_2 133 %68 = OpLoad %float %67 134 %69 = OpFOrdGreaterThan %bool %68 %float_2 135 OpStore %c %69 136 %71 = OpLogicalNotEqual %bool %65 %69 137 OpStore %d %71 138 OpSelectionMerge %74 None 139 OpBranchConditional %65 %73 %74 140 %73 = OpLabel 141 OpBranch %74 142 %74 = OpLabel 143 %75 = OpPhi %bool %false %55 %69 %73 144 OpStore %e %75 145 OpSelectionMerge %78 None 146 OpBranchConditional %65 %78 %77 147 %77 = OpLabel 148 OpBranch %78 149 %78 = OpLabel 150 %79 = OpPhi %bool %true %74 %69 %77 151 OpStore %f %79 152 %81 = OpFAdd %float %37 %float_12 153 OpStore %x %81 154 %82 = OpFSub %float %81 %float_12 155 OpStore %x %82 156 %84 = OpFMul %float %39 %float_0_100000001 157 OpStore %y %84 158 %85 = OpFMul %float %82 %84 159 OpStore %x %85 160 OpStore %x %float_6 161 %87 = OpSelect %float %65 %float_1 %float_0 162 %88 = OpSelect %float %69 %float_1 %float_0 163 %89 = OpFMul %float %87 %88 164 %90 = OpSelect %float %71 %float_1 %float_0 165 %91 = OpFMul %float %89 %90 166 %92 = OpSelect %float %75 %float_1 %float_0 167 %93 = OpFMul %float %91 %92 168 %94 = OpSelect %float %79 %float_1 %float_0 169 %95 = OpFMul %float %93 %94 170 OpStore %y %95 171 OpStore %y %float_6 172 %97 = OpISub %int %45 %int_1 173 OpStore %z %97 174 OpStore %z %int_6 175 OpSelectionMerge %100 None 176 OpBranchConditional %true %99 %100 177 %99 = OpLabel 178 OpBranch %100 179 %100 = OpLabel 180 %101 = OpPhi %bool %false %78 %true %99 181 OpSelectionMerge %103 None 182 OpBranchConditional %101 %102 %103 183 %102 = OpLabel 184 OpBranch %103 185 %103 = OpLabel 186 %104 = OpPhi %bool %false %100 %true %102 187 OpSelectionMerge %109 None 188 OpBranchConditional %104 %107 %108 189 %107 = OpLabel 190 %110 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0 191 %113 = OpLoad %v4float %110 192 OpStore %105 %113 193 OpBranch %109 194 %108 = OpLabel 195 %114 = OpAccessChain %_ptr_Uniform_v4float %7 %int_1 196 %115 = OpLoad %v4float %114 197 OpStore %105 %115 198 OpBranch %109 199 %109 = OpLabel 200 %116 = OpLoad %v4float %105 201 OpReturnValue %116 202 OpFunctionEnd 203