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 "testInputs" 9 OpMemberName %_UniformBuffer 1 "colorGreen" 10 OpMemberName %_UniformBuffer 2 "colorRed" 11 OpName %_entrypoint_v "_entrypoint_v" 12 OpName %main "main" 13 OpName %expectedA "expectedA" 14 OpName %expectedB "expectedB" 15 OpDecorate %sk_FragColor RelaxedPrecision 16 OpDecorate %sk_FragColor Location 0 17 OpDecorate %sk_FragColor Index 0 18 OpMemberDecorate %_UniformBuffer 0 Offset 0 19 OpMemberDecorate %_UniformBuffer 0 RelaxedPrecision 20 OpMemberDecorate %_UniformBuffer 1 Offset 16 21 OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision 22 OpMemberDecorate %_UniformBuffer 2 Offset 32 23 OpMemberDecorate %_UniformBuffer 2 RelaxedPrecision 24 OpDecorate %_UniformBuffer Block 25 OpDecorate %7 Binding 0 26 OpDecorate %7 DescriptorSet 0 27 OpDecorate %expectedA RelaxedPrecision 28 OpDecorate %expectedB RelaxedPrecision 29 OpDecorate %35 RelaxedPrecision 30 OpDecorate %44 RelaxedPrecision 31 OpDecorate %57 RelaxedPrecision 32 OpDecorate %63 RelaxedPrecision 33 OpDecorate %77 RelaxedPrecision 34 OpDecorate %78 RelaxedPrecision 35 OpDecorate %81 RelaxedPrecision 36 OpDecorate %82 RelaxedPrecision 37 OpDecorate %90 RelaxedPrecision 38 OpDecorate %91 RelaxedPrecision 39 OpDecorate %92 RelaxedPrecision 40 OpDecorate %94 RelaxedPrecision 41 OpDecorate %95 RelaxedPrecision 42 OpDecorate %96 RelaxedPrecision 43 OpDecorate %98 RelaxedPrecision 44 OpDecorate %106 RelaxedPrecision 45 OpDecorate %107 RelaxedPrecision 46 OpDecorate %108 RelaxedPrecision 47 OpDecorate %110 RelaxedPrecision 48 OpDecorate %111 RelaxedPrecision 49 OpDecorate %112 RelaxedPrecision 50 OpDecorate %115 RelaxedPrecision 51 OpDecorate %123 RelaxedPrecision 52 OpDecorate %124 RelaxedPrecision 53 OpDecorate %125 RelaxedPrecision 54 OpDecorate %127 RelaxedPrecision 55 OpDecorate %128 RelaxedPrecision 56 OpDecorate %129 RelaxedPrecision 57 OpDecorate %142 RelaxedPrecision 58 OpDecorate %149 RelaxedPrecision 59 OpDecorate %160 RelaxedPrecision 60 OpDecorate %161 RelaxedPrecision 61 OpDecorate %163 RelaxedPrecision 62 OpDecorate %164 RelaxedPrecision 63 OpDecorate %171 RelaxedPrecision 64 OpDecorate %172 RelaxedPrecision 65 OpDecorate %174 RelaxedPrecision 66 OpDecorate %175 RelaxedPrecision 67 OpDecorate %176 RelaxedPrecision 68 OpDecorate %184 RelaxedPrecision 69 OpDecorate %185 RelaxedPrecision 70 OpDecorate %187 RelaxedPrecision 71 OpDecorate %188 RelaxedPrecision 72 OpDecorate %189 RelaxedPrecision 73 OpDecorate %197 RelaxedPrecision 74 OpDecorate %199 RelaxedPrecision 75 OpDecorate %208 RelaxedPrecision 76 OpDecorate %210 RelaxedPrecision 77 OpDecorate %211 RelaxedPrecision 78 %float = OpTypeFloat 32 79 %v4float = OpTypeVector %float 4 80%_ptr_Output_v4float = OpTypePointer Output %v4float 81%sk_FragColor = OpVariable %_ptr_Output_v4float Output 82%_UniformBuffer = OpTypeStruct %v4float %v4float %v4float 83%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer 84 %7 = OpVariable %_ptr_Uniform__UniformBuffer Uniform 85 %void = OpTypeVoid 86 %12 = OpTypeFunction %void 87 %float_0 = OpConstant %float 0 88 %v2float = OpTypeVector %float 2 89 %16 = OpConstantComposite %v2float %float_0 %float_0 90%_ptr_Function_v2float = OpTypePointer Function %v2float 91 %20 = OpTypeFunction %v4float %_ptr_Function_v2float 92%_ptr_Function_v4float = OpTypePointer Function %v4float 93%float_0_84375 = OpConstant %float 0.84375 94 %float_1 = OpConstant %float 1 95 %27 = OpConstantComposite %v4float %float_0 %float_0 %float_0_84375 %float_1 96 %29 = OpConstantComposite %v4float %float_1 %float_0 %float_1 %float_1 97 %bool = OpTypeBool 98 %false = OpConstantFalse %bool 99 %true = OpConstantTrue %bool 100 %v2bool = OpTypeVector %bool 2 101 %v3float = OpTypeVector %float 3 102 %43 = OpConstantComposite %v3float %float_0 %float_0 %float_0_84375 103 %v3bool = OpTypeVector %bool 3 104%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float 105 %int = OpTypeInt 32 1 106 %int_2 = OpConstant %int 2 107 %int_1 = OpConstant %int 1 108%float_n1_25 = OpConstant %float -1.25 109 %97 = OpConstantComposite %v2float %float_n1_25 %float_0 110 %float_0_75 = OpConstant %float 0.75 111 %114 = OpConstantComposite %v3float %float_n1_25 %float_0 %float_0_75 112 %float_2_25 = OpConstant %float 2.25 113 %131 = OpConstantComposite %v4float %float_n1_25 %float_0 %float_0_75 %float_2_25 114 %v4bool = OpTypeVector %bool 4 115 %141 = OpConstantComposite %v2float %float_1 %float_0 116 %148 = OpConstantComposite %v3float %float_1 %float_0 %float_1 117%_entrypoint_v = OpFunction %void None %12 118 %13 = OpLabel 119 %17 = OpVariable %_ptr_Function_v2float Function 120 OpStore %17 %16 121 %19 = OpFunctionCall %v4float %main %17 122 OpStore %sk_FragColor %19 123 OpReturn 124 OpFunctionEnd 125 %main = OpFunction %v4float None %20 126 %21 = OpFunctionParameter %_ptr_Function_v2float 127 %22 = OpLabel 128 %expectedA = OpVariable %_ptr_Function_v4float Function 129 %expectedB = OpVariable %_ptr_Function_v4float Function 130 %203 = OpVariable %_ptr_Function_v4float Function 131 OpStore %expectedA %27 132 OpStore %expectedB %29 133 OpSelectionMerge %34 None 134 OpBranchConditional %true %33 %34 135 %33 = OpLabel 136 %35 = OpVectorShuffle %v2float %27 %27 0 1 137 %36 = OpFOrdEqual %v2bool %16 %35 138 %38 = OpAll %bool %36 139 OpBranch %34 140 %34 = OpLabel 141 %39 = OpPhi %bool %false %22 %38 %33 142 OpSelectionMerge %41 None 143 OpBranchConditional %39 %40 %41 144 %40 = OpLabel 145 %44 = OpVectorShuffle %v3float %27 %27 0 1 2 146 %45 = OpFOrdEqual %v3bool %43 %44 147 %47 = OpAll %bool %45 148 OpBranch %41 149 %41 = OpLabel 150 %48 = OpPhi %bool %false %34 %47 %40 151 OpSelectionMerge %50 None 152 OpBranchConditional %48 %49 %50 153 %49 = OpLabel 154 OpBranch %50 155 %50 = OpLabel 156 %51 = OpPhi %bool %false %41 %true %49 157 OpSelectionMerge %53 None 158 OpBranchConditional %51 %52 %53 159 %52 = OpLabel 160 OpBranch %53 161 %53 = OpLabel 162 %54 = OpPhi %bool %false %50 %true %52 163 OpSelectionMerge %56 None 164 OpBranchConditional %54 %55 %56 165 %55 = OpLabel 166 %57 = OpVectorShuffle %v2float %27 %27 0 1 167 %58 = OpFOrdEqual %v2bool %16 %57 168 %59 = OpAll %bool %58 169 OpBranch %56 170 %56 = OpLabel 171 %60 = OpPhi %bool %false %53 %59 %55 172 OpSelectionMerge %62 None 173 OpBranchConditional %60 %61 %62 174 %61 = OpLabel 175 %63 = OpVectorShuffle %v3float %27 %27 0 1 2 176 %64 = OpFOrdEqual %v3bool %43 %63 177 %65 = OpAll %bool %64 178 OpBranch %62 179 %62 = OpLabel 180 %66 = OpPhi %bool %false %56 %65 %61 181 OpSelectionMerge %68 None 182 OpBranchConditional %66 %67 %68 183 %67 = OpLabel 184 OpBranch %68 185 %68 = OpLabel 186 %69 = OpPhi %bool %false %62 %true %67 187 OpSelectionMerge %71 None 188 OpBranchConditional %69 %70 %71 189 %70 = OpLabel 190 %73 = OpAccessChain %_ptr_Uniform_v4float %7 %int_2 191 %77 = OpLoad %v4float %73 192 %78 = OpCompositeExtract %float %77 1 193 %79 = OpAccessChain %_ptr_Uniform_v4float %7 %int_1 194 %81 = OpLoad %v4float %79 195 %82 = OpCompositeExtract %float %81 1 196 %72 = OpExtInst %float %1 SmoothStep %78 %82 %float_n1_25 197 %84 = OpFOrdEqual %bool %72 %float_0 198 OpBranch %71 199 %71 = OpLabel 200 %85 = OpPhi %bool %false %68 %84 %70 201 OpSelectionMerge %87 None 202 OpBranchConditional %85 %86 %87 203 %86 = OpLabel 204 %89 = OpAccessChain %_ptr_Uniform_v4float %7 %int_2 205 %90 = OpLoad %v4float %89 206 %91 = OpCompositeExtract %float %90 1 207 %92 = OpCompositeConstruct %v2float %91 %91 208 %93 = OpAccessChain %_ptr_Uniform_v4float %7 %int_1 209 %94 = OpLoad %v4float %93 210 %95 = OpCompositeExtract %float %94 1 211 %96 = OpCompositeConstruct %v2float %95 %95 212 %88 = OpExtInst %v2float %1 SmoothStep %92 %96 %97 213 %98 = OpVectorShuffle %v2float %27 %27 0 1 214 %99 = OpFOrdEqual %v2bool %88 %98 215 %100 = OpAll %bool %99 216 OpBranch %87 217 %87 = OpLabel 218 %101 = OpPhi %bool %false %71 %100 %86 219 OpSelectionMerge %103 None 220 OpBranchConditional %101 %102 %103 221 %102 = OpLabel 222 %105 = OpAccessChain %_ptr_Uniform_v4float %7 %int_2 223 %106 = OpLoad %v4float %105 224 %107 = OpCompositeExtract %float %106 1 225 %108 = OpCompositeConstruct %v3float %107 %107 %107 226 %109 = OpAccessChain %_ptr_Uniform_v4float %7 %int_1 227 %110 = OpLoad %v4float %109 228 %111 = OpCompositeExtract %float %110 1 229 %112 = OpCompositeConstruct %v3float %111 %111 %111 230 %104 = OpExtInst %v3float %1 SmoothStep %108 %112 %114 231 %115 = OpVectorShuffle %v3float %27 %27 0 1 2 232 %116 = OpFOrdEqual %v3bool %104 %115 233 %117 = OpAll %bool %116 234 OpBranch %103 235 %103 = OpLabel 236 %118 = OpPhi %bool %false %87 %117 %102 237 OpSelectionMerge %120 None 238 OpBranchConditional %118 %119 %120 239 %119 = OpLabel 240 %122 = OpAccessChain %_ptr_Uniform_v4float %7 %int_2 241 %123 = OpLoad %v4float %122 242 %124 = OpCompositeExtract %float %123 1 243 %125 = OpCompositeConstruct %v4float %124 %124 %124 %124 244 %126 = OpAccessChain %_ptr_Uniform_v4float %7 %int_1 245 %127 = OpLoad %v4float %126 246 %128 = OpCompositeExtract %float %127 1 247 %129 = OpCompositeConstruct %v4float %128 %128 %128 %128 248 %121 = OpExtInst %v4float %1 SmoothStep %125 %129 %131 249 %132 = OpFOrdEqual %v4bool %121 %27 250 %134 = OpAll %bool %132 251 OpBranch %120 252 %120 = OpLabel 253 %135 = OpPhi %bool %false %103 %134 %119 254 OpSelectionMerge %137 None 255 OpBranchConditional %135 %136 %137 256 %136 = OpLabel 257 OpBranch %137 258 %137 = OpLabel 259 %138 = OpPhi %bool %false %120 %true %136 260 OpSelectionMerge %140 None 261 OpBranchConditional %138 %139 %140 262 %139 = OpLabel 263 %142 = OpVectorShuffle %v2float %29 %29 0 1 264 %143 = OpFOrdEqual %v2bool %141 %142 265 %144 = OpAll %bool %143 266 OpBranch %140 267 %140 = OpLabel 268 %145 = OpPhi %bool %false %137 %144 %139 269 OpSelectionMerge %147 None 270 OpBranchConditional %145 %146 %147 271 %146 = OpLabel 272 %149 = OpVectorShuffle %v3float %29 %29 0 1 2 273 %150 = OpFOrdEqual %v3bool %148 %149 274 %151 = OpAll %bool %150 275 OpBranch %147 276 %147 = OpLabel 277 %152 = OpPhi %bool %false %140 %151 %146 278 OpSelectionMerge %154 None 279 OpBranchConditional %152 %153 %154 280 %153 = OpLabel 281 OpBranch %154 282 %154 = OpLabel 283 %155 = OpPhi %bool %false %147 %true %153 284 OpSelectionMerge %157 None 285 OpBranchConditional %155 %156 %157 286 %156 = OpLabel 287 %159 = OpAccessChain %_ptr_Uniform_v4float %7 %int_2 288 %160 = OpLoad %v4float %159 289 %161 = OpCompositeExtract %float %160 0 290 %162 = OpAccessChain %_ptr_Uniform_v4float %7 %int_1 291 %163 = OpLoad %v4float %162 292 %164 = OpCompositeExtract %float %163 0 293 %158 = OpExtInst %float %1 SmoothStep %161 %164 %float_n1_25 294 %165 = OpFOrdEqual %bool %158 %float_1 295 OpBranch %157 296 %157 = OpLabel 297 %166 = OpPhi %bool %false %154 %165 %156 298 OpSelectionMerge %168 None 299 OpBranchConditional %166 %167 %168 300 %167 = OpLabel 301 %170 = OpAccessChain %_ptr_Uniform_v4float %7 %int_2 302 %171 = OpLoad %v4float %170 303 %172 = OpVectorShuffle %v2float %171 %171 0 1 304 %173 = OpAccessChain %_ptr_Uniform_v4float %7 %int_1 305 %174 = OpLoad %v4float %173 306 %175 = OpVectorShuffle %v2float %174 %174 0 1 307 %169 = OpExtInst %v2float %1 SmoothStep %172 %175 %97 308 %176 = OpVectorShuffle %v2float %29 %29 0 1 309 %177 = OpFOrdEqual %v2bool %169 %176 310 %178 = OpAll %bool %177 311 OpBranch %168 312 %168 = OpLabel 313 %179 = OpPhi %bool %false %157 %178 %167 314 OpSelectionMerge %181 None 315 OpBranchConditional %179 %180 %181 316 %180 = OpLabel 317 %183 = OpAccessChain %_ptr_Uniform_v4float %7 %int_2 318 %184 = OpLoad %v4float %183 319 %185 = OpVectorShuffle %v3float %184 %184 0 1 2 320 %186 = OpAccessChain %_ptr_Uniform_v4float %7 %int_1 321 %187 = OpLoad %v4float %186 322 %188 = OpVectorShuffle %v3float %187 %187 0 1 2 323 %182 = OpExtInst %v3float %1 SmoothStep %185 %188 %114 324 %189 = OpVectorShuffle %v3float %29 %29 0 1 2 325 %190 = OpFOrdEqual %v3bool %182 %189 326 %191 = OpAll %bool %190 327 OpBranch %181 328 %181 = OpLabel 329 %192 = OpPhi %bool %false %168 %191 %180 330 OpSelectionMerge %194 None 331 OpBranchConditional %192 %193 %194 332 %193 = OpLabel 333 %196 = OpAccessChain %_ptr_Uniform_v4float %7 %int_2 334 %197 = OpLoad %v4float %196 335 %198 = OpAccessChain %_ptr_Uniform_v4float %7 %int_1 336 %199 = OpLoad %v4float %198 337 %195 = OpExtInst %v4float %1 SmoothStep %197 %199 %131 338 %200 = OpFOrdEqual %v4bool %195 %29 339 %201 = OpAll %bool %200 340 OpBranch %194 341 %194 = OpLabel 342 %202 = OpPhi %bool %false %181 %201 %193 343 OpSelectionMerge %206 None 344 OpBranchConditional %202 %204 %205 345 %204 = OpLabel 346 %207 = OpAccessChain %_ptr_Uniform_v4float %7 %int_1 347 %208 = OpLoad %v4float %207 348 OpStore %203 %208 349 OpBranch %206 350 %205 = OpLabel 351 %209 = OpAccessChain %_ptr_Uniform_v4float %7 %int_2 352 %210 = OpLoad %v4float %209 353 OpStore %203 %210 354 OpBranch %206 355 %206 = OpLabel 356 %211 = OpLoad %v4float %203 357 OpReturnValue %211 358 OpFunctionEnd 359