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 "colorWhite" 9 OpName %_entrypoint_v "_entrypoint_v" 10 OpName %main "main" 11 OpName %x "x" 12 OpName %r "r" 13 OpName %b "b" 14 OpDecorate %sk_FragColor RelaxedPrecision 15 OpDecorate %sk_FragColor Location 0 16 OpDecorate %sk_FragColor Index 0 17 OpMemberDecorate %_UniformBuffer 0 Offset 0 18 OpMemberDecorate %_UniformBuffer 0 RelaxedPrecision 19 OpDecorate %_UniformBuffer Block 20 OpDecorate %7 Binding 0 21 OpDecorate %7 DescriptorSet 0 22 OpDecorate %x RelaxedPrecision 23 OpDecorate %29 RelaxedPrecision 24 OpDecorate %r RelaxedPrecision 25 OpDecorate %38 RelaxedPrecision 26 OpDecorate %43 RelaxedPrecision 27 OpDecorate %46 RelaxedPrecision 28 OpDecorate %47 RelaxedPrecision 29 OpDecorate %51 RelaxedPrecision 30 OpDecorate %52 RelaxedPrecision 31 OpDecorate %b RelaxedPrecision 32 OpDecorate %59 RelaxedPrecision 33 OpDecorate %61 RelaxedPrecision 34 OpDecorate %64 RelaxedPrecision 35 OpDecorate %65 RelaxedPrecision 36 OpDecorate %71 RelaxedPrecision 37 OpDecorate %72 RelaxedPrecision 38 OpDecorate %73 RelaxedPrecision 39 %float = OpTypeFloat 32 40 %v4float = OpTypeVector %float 4 41%_ptr_Output_v4float = OpTypePointer Output %v4float 42%sk_FragColor = OpVariable %_ptr_Output_v4float Output 43%_UniformBuffer = OpTypeStruct %v4float 44%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer 45 %7 = OpVariable %_ptr_Uniform__UniformBuffer Uniform 46 %void = OpTypeVoid 47 %12 = OpTypeFunction %void 48 %float_0 = OpConstant %float 0 49 %v2float = OpTypeVector %float 2 50 %16 = OpConstantComposite %v2float %float_0 %float_0 51%_ptr_Function_v2float = OpTypePointer Function %v2float 52 %20 = OpTypeFunction %v4float %_ptr_Function_v2float 53%_ptr_Function_v4float = OpTypePointer Function %v4float 54%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float 55 %int = OpTypeInt 32 1 56 %int_0 = OpConstant %int 0 57%_ptr_Function_float = OpTypePointer Function %float 58 %float_n5 = OpConstant %float -5 59 %float_5 = OpConstant %float 5 60 %bool = OpTypeBool 61 %float_1 = OpConstant %float 1 62 %int_2 = OpConstant %int 2 63 %int_1 = OpConstant %int 1 64%_entrypoint_v = OpFunction %void None %12 65 %13 = OpLabel 66 %17 = OpVariable %_ptr_Function_v2float Function 67 OpStore %17 %16 68 %19 = OpFunctionCall %v4float %main %17 69 OpStore %sk_FragColor %19 70 OpReturn 71 OpFunctionEnd 72 %main = OpFunction %v4float None %20 73 %21 = OpFunctionParameter %_ptr_Function_v2float 74 %22 = OpLabel 75 %x = OpVariable %_ptr_Function_v4float Function 76 %r = OpVariable %_ptr_Function_float Function 77 %b = OpVariable %_ptr_Function_float Function 78 %25 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0 79 %29 = OpLoad %v4float %25 80 OpStore %x %29 81 OpStore %r %float_n5 82 OpBranch %33 83 %33 = OpLabel 84 OpLoopMerge %37 %36 None 85 OpBranch %34 86 %34 = OpLabel 87 %38 = OpLoad %float %r 88 %40 = OpFOrdLessThan %bool %38 %float_5 89 OpBranchConditional %40 %35 %37 90 %35 = OpLabel 91 %43 = OpLoad %float %r 92 %42 = OpExtInst %float %1 FClamp %43 %float_0 %float_1 93 %45 = OpAccessChain %_ptr_Function_float %x %int_0 94 OpStore %45 %42 95 %46 = OpLoad %v4float %x 96 %47 = OpCompositeExtract %float %46 0 97 %48 = OpFOrdEqual %bool %47 %float_0 98 OpSelectionMerge %50 None 99 OpBranchConditional %48 %49 %50 100 %49 = OpLabel 101 OpBranch %37 102 %50 = OpLabel 103 OpBranch %36 104 %36 = OpLabel 105 %51 = OpLoad %float %r 106 %52 = OpFAdd %float %51 %float_1 107 OpStore %r %52 108 OpBranch %33 109 %37 = OpLabel 110 OpStore %b %float_5 111 OpBranch %54 112 %54 = OpLabel 113 OpLoopMerge %58 %57 None 114 OpBranch %55 115 %55 = OpLabel 116 %59 = OpLoad %float %b 117 %60 = OpFOrdGreaterThanEqual %bool %59 %float_0 118 OpBranchConditional %60 %56 %58 119 %56 = OpLabel 120 %61 = OpLoad %float %b 121 %62 = OpAccessChain %_ptr_Function_float %x %int_2 122 OpStore %62 %61 123 %64 = OpLoad %v4float %x 124 %65 = OpCompositeExtract %float %64 3 125 %66 = OpFOrdEqual %bool %65 %float_1 126 OpSelectionMerge %68 None 127 OpBranchConditional %66 %67 %68 128 %67 = OpLabel 129 OpBranch %57 130 %68 = OpLabel 131 %69 = OpAccessChain %_ptr_Function_float %x %int_1 132 OpStore %69 %float_0 133 OpBranch %57 134 %57 = OpLabel 135 %71 = OpLoad %float %b 136 %72 = OpFSub %float %71 %float_1 137 OpStore %b %72 138 OpBranch %54 139 %58 = OpLabel 140 %73 = OpLoad %v4float %x 141 OpReturnValue %73 142 OpFunctionEnd 143