1 OpCapability Shader 2 %1 = OpExtInstImport "GLSL.std.450" 3 OpMemoryModel Logical GLSL450 4 OpEntryPoint Fragment %main "main" %sk_FragColor 5 OpExecutionMode %main OriginUpperLeft 6 OpName %_kGuardedDivideEpsilon "$kGuardedDivideEpsilon" 7 OpName %sk_FragColor "sk_FragColor" 8 OpName %_UniformBuffer "_UniformBuffer" 9 OpMemberName %_UniformBuffer 0 "src" 10 OpMemberName %_UniformBuffer 1 "dst" 11 OpName %guarded_divide_Qhhh "guarded_divide_Qhhh" 12 OpName %color_dodge_component_Qhh2h2 "color_dodge_component_Qhh2h2" 13 OpName %dxScale "dxScale" 14 OpName %delta "delta" 15 OpName %main "main" 16 OpDecorate %_kGuardedDivideEpsilon RelaxedPrecision 17 OpDecorate %sk_FragColor RelaxedPrecision 18 OpDecorate %sk_FragColor Location 0 19 OpDecorate %sk_FragColor Index 0 20 OpMemberDecorate %_UniformBuffer 0 Offset 0 21 OpMemberDecorate %_UniformBuffer 0 RelaxedPrecision 22 OpMemberDecorate %_UniformBuffer 1 Offset 16 23 OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision 24 OpDecorate %_UniformBuffer Block 25 OpDecorate %16 Binding 0 26 OpDecorate %16 DescriptorSet 0 27 OpDecorate %24 RelaxedPrecision 28 OpDecorate %25 RelaxedPrecision 29 OpDecorate %26 RelaxedPrecision 30 OpDecorate %27 RelaxedPrecision 31 OpDecorate %28 RelaxedPrecision 32 OpDecorate %dxScale RelaxedPrecision 33 OpDecorate %36 RelaxedPrecision 34 OpDecorate %37 RelaxedPrecision 35 OpDecorate %43 RelaxedPrecision 36 OpDecorate %delta RelaxedPrecision 37 OpDecorate %46 RelaxedPrecision 38 OpDecorate %47 RelaxedPrecision 39 OpDecorate %48 RelaxedPrecision 40 OpDecorate %49 RelaxedPrecision 41 OpDecorate %50 RelaxedPrecision 42 OpDecorate %51 RelaxedPrecision 43 OpDecorate %52 RelaxedPrecision 44 OpDecorate %53 RelaxedPrecision 45 OpDecorate %60 RelaxedPrecision 46 OpDecorate %61 RelaxedPrecision 47 OpDecorate %62 RelaxedPrecision 48 OpDecorate %63 RelaxedPrecision 49 OpDecorate %64 RelaxedPrecision 50 OpDecorate %66 RelaxedPrecision 51 OpDecorate %67 RelaxedPrecision 52 OpDecorate %68 RelaxedPrecision 53 OpDecorate %69 RelaxedPrecision 54 OpDecorate %70 RelaxedPrecision 55 OpDecorate %73 RelaxedPrecision 56 OpDecorate %74 RelaxedPrecision 57 OpDecorate %75 RelaxedPrecision 58 OpDecorate %76 RelaxedPrecision 59 OpDecorate %77 RelaxedPrecision 60 OpDecorate %78 RelaxedPrecision 61 OpDecorate %79 RelaxedPrecision 62 OpDecorate %80 RelaxedPrecision 63 OpDecorate %81 RelaxedPrecision 64 OpDecorate %83 RelaxedPrecision 65 OpDecorate %84 RelaxedPrecision 66 OpDecorate %85 RelaxedPrecision 67 OpDecorate %86 RelaxedPrecision 68 OpDecorate %87 RelaxedPrecision 69 OpDecorate %88 RelaxedPrecision 70 OpDecorate %89 RelaxedPrecision 71 OpDecorate %90 RelaxedPrecision 72 OpDecorate %91 RelaxedPrecision 73 OpDecorate %92 RelaxedPrecision 74 OpDecorate %93 RelaxedPrecision 75 OpDecorate %94 RelaxedPrecision 76 OpDecorate %100 RelaxedPrecision 77 OpDecorate %101 RelaxedPrecision 78 OpDecorate %104 RelaxedPrecision 79 OpDecorate %105 RelaxedPrecision 80 OpDecorate %109 RelaxedPrecision 81 OpDecorate %110 RelaxedPrecision 82 OpDecorate %113 RelaxedPrecision 83 OpDecorate %114 RelaxedPrecision 84 OpDecorate %118 RelaxedPrecision 85 OpDecorate %119 RelaxedPrecision 86 OpDecorate %122 RelaxedPrecision 87 OpDecorate %123 RelaxedPrecision 88 OpDecorate %127 RelaxedPrecision 89 OpDecorate %128 RelaxedPrecision 90 OpDecorate %130 RelaxedPrecision 91 OpDecorate %131 RelaxedPrecision 92 OpDecorate %132 RelaxedPrecision 93 OpDecorate %134 RelaxedPrecision 94 OpDecorate %135 RelaxedPrecision 95 OpDecorate %136 RelaxedPrecision 96 OpDecorate %137 RelaxedPrecision 97 OpDecorate %138 RelaxedPrecision 98 %float = OpTypeFloat 32 99%_ptr_Private_float = OpTypePointer Private %float 100%_kGuardedDivideEpsilon = OpVariable %_ptr_Private_float Private 101 %bool = OpTypeBool 102 %false = OpConstantFalse %bool 103%float_9_99999994en09 = OpConstant %float 9.99999994e-09 104 %float_0 = OpConstant %float 0 105 %v4float = OpTypeVector %float 4 106%_ptr_Output_v4float = OpTypePointer Output %v4float 107%sk_FragColor = OpVariable %_ptr_Output_v4float Output 108%_UniformBuffer = OpTypeStruct %v4float %v4float 109%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer 110 %16 = OpVariable %_ptr_Uniform__UniformBuffer Uniform 111%_ptr_Function_float = OpTypePointer Function %float 112 %20 = OpTypeFunction %float %_ptr_Function_float %_ptr_Function_float 113 %v2float = OpTypeVector %float 2 114%_ptr_Function_v2float = OpTypePointer Function %v2float 115 %31 = OpTypeFunction %float %_ptr_Function_v2float %_ptr_Function_v2float 116 %int = OpTypeInt 32 1 117 %int_0 = OpConstant %int 0 118 %int_1 = OpConstant %int 1 119%float_6_10351562en05 = OpConstant %float 6.10351562e-05 120 %float_1 = OpConstant %float 1 121 %void = OpTypeVoid 122 %96 = OpTypeFunction %void 123%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float 124%guarded_divide_Qhhh = OpFunction %float None %20 125 %21 = OpFunctionParameter %_ptr_Function_float 126 %22 = OpFunctionParameter %_ptr_Function_float 127 %23 = OpLabel 128 %24 = OpLoad %float %21 129 %25 = OpLoad %float %22 130 %26 = OpLoad %float %_kGuardedDivideEpsilon 131 %27 = OpFAdd %float %25 %26 132 %28 = OpFDiv %float %24 %27 133 OpReturnValue %28 134 OpFunctionEnd 135%color_dodge_component_Qhh2h2 = OpFunction %float None %31 136 %32 = OpFunctionParameter %_ptr_Function_v2float 137 %33 = OpFunctionParameter %_ptr_Function_v2float 138 %34 = OpLabel 139 %dxScale = OpVariable %_ptr_Function_float Function 140 %delta = OpVariable %_ptr_Function_float Function 141 %56 = OpVariable %_ptr_Function_float Function 142 %65 = OpVariable %_ptr_Function_float Function 143 %71 = OpVariable %_ptr_Function_float Function 144 %36 = OpLoad %v2float %33 145 %37 = OpCompositeExtract %float %36 0 146 %38 = OpFOrdEqual %bool %37 %float_0 147 %39 = OpSelect %int %38 %int_0 %int_1 148 %43 = OpConvertSToF %float %39 149 OpStore %dxScale %43 150 %46 = OpLoad %v2float %33 151 %47 = OpCompositeExtract %float %46 1 152 %49 = OpLoad %v2float %32 153 %50 = OpCompositeExtract %float %49 1 154 %51 = OpLoad %v2float %32 155 %52 = OpCompositeExtract %float %51 0 156 %53 = OpFSub %float %50 %52 157 %48 = OpExtInst %float %1 FAbs %53 158 %55 = OpFOrdGreaterThanEqual %bool %48 %float_6_10351562en05 159 OpSelectionMerge %59 None 160 OpBranchConditional %55 %57 %58 161 %57 = OpLabel 162 %60 = OpLoad %v2float %33 163 %61 = OpCompositeExtract %float %60 0 164 %62 = OpLoad %v2float %32 165 %63 = OpCompositeExtract %float %62 1 166 %64 = OpFMul %float %61 %63 167 OpStore %65 %64 168 %66 = OpLoad %v2float %32 169 %67 = OpCompositeExtract %float %66 1 170 %68 = OpLoad %v2float %32 171 %69 = OpCompositeExtract %float %68 0 172 %70 = OpFSub %float %67 %69 173 OpStore %71 %70 174 %72 = OpFunctionCall %float %guarded_divide_Qhhh %65 %71 175 OpStore %56 %72 176 OpBranch %59 177 %58 = OpLabel 178 %73 = OpLoad %v2float %33 179 %74 = OpCompositeExtract %float %73 1 180 OpStore %56 %74 181 OpBranch %59 182 %59 = OpLabel 183 %75 = OpLoad %float %56 184 %45 = OpExtInst %float %1 FMin %47 %75 185 %76 = OpFMul %float %43 %45 186 OpStore %delta %76 187 %77 = OpLoad %v2float %32 188 %78 = OpCompositeExtract %float %77 1 189 %79 = OpFMul %float %76 %78 190 %80 = OpLoad %v2float %32 191 %81 = OpCompositeExtract %float %80 0 192 %83 = OpLoad %v2float %33 193 %84 = OpCompositeExtract %float %83 1 194 %85 = OpFSub %float %float_1 %84 195 %86 = OpFMul %float %81 %85 196 %87 = OpFAdd %float %79 %86 197 %88 = OpLoad %v2float %33 198 %89 = OpCompositeExtract %float %88 0 199 %90 = OpLoad %v2float %32 200 %91 = OpCompositeExtract %float %90 1 201 %92 = OpFSub %float %float_1 %91 202 %93 = OpFMul %float %89 %92 203 %94 = OpFAdd %float %87 %93 204 OpReturnValue %94 205 OpFunctionEnd 206 %main = OpFunction %void None %96 207 %97 = OpLabel 208 %102 = OpVariable %_ptr_Function_v2float Function 209 %106 = OpVariable %_ptr_Function_v2float Function 210 %111 = OpVariable %_ptr_Function_v2float Function 211 %115 = OpVariable %_ptr_Function_v2float Function 212 %120 = OpVariable %_ptr_Function_v2float Function 213 %124 = OpVariable %_ptr_Function_v2float Function 214 %10 = OpSelect %float %false %float_9_99999994en09 %float_0 215 OpStore %_kGuardedDivideEpsilon %10 216 %98 = OpAccessChain %_ptr_Uniform_v4float %16 %int_0 217 %100 = OpLoad %v4float %98 218 %101 = OpVectorShuffle %v2float %100 %100 0 3 219 OpStore %102 %101 220 %103 = OpAccessChain %_ptr_Uniform_v4float %16 %int_1 221 %104 = OpLoad %v4float %103 222 %105 = OpVectorShuffle %v2float %104 %104 0 3 223 OpStore %106 %105 224 %107 = OpFunctionCall %float %color_dodge_component_Qhh2h2 %102 %106 225 %108 = OpAccessChain %_ptr_Uniform_v4float %16 %int_0 226 %109 = OpLoad %v4float %108 227 %110 = OpVectorShuffle %v2float %109 %109 1 3 228 OpStore %111 %110 229 %112 = OpAccessChain %_ptr_Uniform_v4float %16 %int_1 230 %113 = OpLoad %v4float %112 231 %114 = OpVectorShuffle %v2float %113 %113 1 3 232 OpStore %115 %114 233 %116 = OpFunctionCall %float %color_dodge_component_Qhh2h2 %111 %115 234 %117 = OpAccessChain %_ptr_Uniform_v4float %16 %int_0 235 %118 = OpLoad %v4float %117 236 %119 = OpVectorShuffle %v2float %118 %118 2 3 237 OpStore %120 %119 238 %121 = OpAccessChain %_ptr_Uniform_v4float %16 %int_1 239 %122 = OpLoad %v4float %121 240 %123 = OpVectorShuffle %v2float %122 %122 2 3 241 OpStore %124 %123 242 %125 = OpFunctionCall %float %color_dodge_component_Qhh2h2 %120 %124 243 %126 = OpAccessChain %_ptr_Uniform_v4float %16 %int_0 244 %127 = OpLoad %v4float %126 245 %128 = OpCompositeExtract %float %127 3 246 %129 = OpAccessChain %_ptr_Uniform_v4float %16 %int_0 247 %130 = OpLoad %v4float %129 248 %131 = OpCompositeExtract %float %130 3 249 %132 = OpFSub %float %float_1 %131 250 %133 = OpAccessChain %_ptr_Uniform_v4float %16 %int_1 251 %134 = OpLoad %v4float %133 252 %135 = OpCompositeExtract %float %134 3 253 %136 = OpFMul %float %132 %135 254 %137 = OpFAdd %float %128 %136 255 %138 = OpCompositeConstruct %v4float %107 %116 %125 %137 256 OpStore %sk_FragColor %138 257 OpReturn 258 OpFunctionEnd 259