blob: bfc0e96261189e93977b0374760ee8437f9bf709 [file] [log] [blame]
OpCapability Shader
%1 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %main "main" %sk_FragColor
OpExecutionMode %main OriginUpperLeft
OpName %_kGuardedDivideEpsilon "$kGuardedDivideEpsilon"
OpName %sk_FragColor "sk_FragColor"
OpName %_UniformBuffer "_UniformBuffer"
OpMemberName %_UniformBuffer 0 "src"
OpMemberName %_UniformBuffer 1 "dst"
OpName %soft_light_component_Qhh2h2 "soft_light_component_Qhh2h2"
OpName %DSqd "DSqd"
OpName %DCub "DCub"
OpName %DaSqd "DaSqd"
OpName %DaCub "DaCub"
OpName %main "main"
OpDecorate %_kGuardedDivideEpsilon RelaxedPrecision
OpDecorate %sk_FragColor RelaxedPrecision
OpDecorate %sk_FragColor Location 0
OpDecorate %sk_FragColor Index 0
OpMemberDecorate %_UniformBuffer 0 Offset 0
OpMemberDecorate %_UniformBuffer 0 RelaxedPrecision
OpMemberDecorate %_UniformBuffer 1 Offset 16
OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision
OpDecorate %_UniformBuffer Block
OpDecorate %15 Binding 0
OpDecorate %15 DescriptorSet 0
OpDecorate %25 RelaxedPrecision
OpDecorate %26 RelaxedPrecision
OpDecorate %27 RelaxedPrecision
OpDecorate %28 RelaxedPrecision
OpDecorate %29 RelaxedPrecision
OpDecorate %34 RelaxedPrecision
OpDecorate %35 RelaxedPrecision
OpDecorate %36 RelaxedPrecision
OpDecorate %37 RelaxedPrecision
OpDecorate %38 RelaxedPrecision
OpDecorate %39 RelaxedPrecision
OpDecorate %40 RelaxedPrecision
OpDecorate %41 RelaxedPrecision
OpDecorate %42 RelaxedPrecision
OpDecorate %43 RelaxedPrecision
OpDecorate %44 RelaxedPrecision
OpDecorate %45 RelaxedPrecision
OpDecorate %46 RelaxedPrecision
OpDecorate %47 RelaxedPrecision
OpDecorate %48 RelaxedPrecision
OpDecorate %49 RelaxedPrecision
OpDecorate %50 RelaxedPrecision
OpDecorate %52 RelaxedPrecision
OpDecorate %53 RelaxedPrecision
OpDecorate %54 RelaxedPrecision
OpDecorate %55 RelaxedPrecision
OpDecorate %56 RelaxedPrecision
OpDecorate %57 RelaxedPrecision
OpDecorate %58 RelaxedPrecision
OpDecorate %59 RelaxedPrecision
OpDecorate %60 RelaxedPrecision
OpDecorate %61 RelaxedPrecision
OpDecorate %62 RelaxedPrecision
OpDecorate %63 RelaxedPrecision
OpDecorate %64 RelaxedPrecision
OpDecorate %65 RelaxedPrecision
OpDecorate %66 RelaxedPrecision
OpDecorate %67 RelaxedPrecision
OpDecorate %68 RelaxedPrecision
OpDecorate %69 RelaxedPrecision
OpDecorate %70 RelaxedPrecision
OpDecorate %72 RelaxedPrecision
OpDecorate %73 RelaxedPrecision
OpDecorate %74 RelaxedPrecision
OpDecorate %75 RelaxedPrecision
OpDecorate %76 RelaxedPrecision
OpDecorate %DSqd RelaxedPrecision
OpDecorate %83 RelaxedPrecision
OpDecorate %84 RelaxedPrecision
OpDecorate %85 RelaxedPrecision
OpDecorate %86 RelaxedPrecision
OpDecorate %87 RelaxedPrecision
OpDecorate %DCub RelaxedPrecision
OpDecorate %89 RelaxedPrecision
OpDecorate %90 RelaxedPrecision
OpDecorate %91 RelaxedPrecision
OpDecorate %DaSqd RelaxedPrecision
OpDecorate %93 RelaxedPrecision
OpDecorate %94 RelaxedPrecision
OpDecorate %95 RelaxedPrecision
OpDecorate %96 RelaxedPrecision
OpDecorate %97 RelaxedPrecision
OpDecorate %DaCub RelaxedPrecision
OpDecorate %99 RelaxedPrecision
OpDecorate %100 RelaxedPrecision
OpDecorate %101 RelaxedPrecision
OpDecorate %102 RelaxedPrecision
OpDecorate %103 RelaxedPrecision
OpDecorate %104 RelaxedPrecision
OpDecorate %105 RelaxedPrecision
OpDecorate %107 RelaxedPrecision
OpDecorate %108 RelaxedPrecision
OpDecorate %109 RelaxedPrecision
OpDecorate %111 RelaxedPrecision
OpDecorate %112 RelaxedPrecision
OpDecorate %113 RelaxedPrecision
OpDecorate %114 RelaxedPrecision
OpDecorate %115 RelaxedPrecision
OpDecorate %116 RelaxedPrecision
OpDecorate %117 RelaxedPrecision
OpDecorate %118 RelaxedPrecision
OpDecorate %120 RelaxedPrecision
OpDecorate %121 RelaxedPrecision
OpDecorate %122 RelaxedPrecision
OpDecorate %123 RelaxedPrecision
OpDecorate %124 RelaxedPrecision
OpDecorate %125 RelaxedPrecision
OpDecorate %126 RelaxedPrecision
OpDecorate %127 RelaxedPrecision
OpDecorate %128 RelaxedPrecision
OpDecorate %129 RelaxedPrecision
OpDecorate %130 RelaxedPrecision
OpDecorate %131 RelaxedPrecision
OpDecorate %133 RelaxedPrecision
OpDecorate %134 RelaxedPrecision
OpDecorate %135 RelaxedPrecision
OpDecorate %136 RelaxedPrecision
OpDecorate %137 RelaxedPrecision
OpDecorate %138 RelaxedPrecision
OpDecorate %139 RelaxedPrecision
OpDecorate %140 RelaxedPrecision
OpDecorate %141 RelaxedPrecision
OpDecorate %142 RelaxedPrecision
OpDecorate %143 RelaxedPrecision
OpDecorate %144 RelaxedPrecision
OpDecorate %145 RelaxedPrecision
OpDecorate %146 RelaxedPrecision
OpDecorate %147 RelaxedPrecision
OpDecorate %148 RelaxedPrecision
OpDecorate %149 RelaxedPrecision
OpDecorate %150 RelaxedPrecision
OpDecorate %151 RelaxedPrecision
OpDecorate %152 RelaxedPrecision
OpDecorate %153 RelaxedPrecision
OpDecorate %154 RelaxedPrecision
OpDecorate %155 RelaxedPrecision
OpDecorate %156 RelaxedPrecision
OpDecorate %157 RelaxedPrecision
OpDecorate %158 RelaxedPrecision
OpDecorate %159 RelaxedPrecision
OpDecorate %160 RelaxedPrecision
OpDecorate %161 RelaxedPrecision
OpDecorate %162 RelaxedPrecision
OpDecorate %163 RelaxedPrecision
OpDecorate %164 RelaxedPrecision
OpDecorate %165 RelaxedPrecision
OpDecorate %166 RelaxedPrecision
OpDecorate %167 RelaxedPrecision
OpDecorate %168 RelaxedPrecision
OpDecorate %169 RelaxedPrecision
OpDecorate %170 RelaxedPrecision
OpDecorate %171 RelaxedPrecision
OpDecorate %172 RelaxedPrecision
OpDecorate %173 RelaxedPrecision
OpDecorate %174 RelaxedPrecision
OpDecorate %175 RelaxedPrecision
OpDecorate %176 RelaxedPrecision
OpDecorate %177 RelaxedPrecision
OpDecorate %178 RelaxedPrecision
OpDecorate %179 RelaxedPrecision
OpDecorate %180 RelaxedPrecision
OpDecorate %181 RelaxedPrecision
OpDecorate %189 RelaxedPrecision
OpDecorate %190 RelaxedPrecision
OpDecorate %199 RelaxedPrecision
OpDecorate %201 RelaxedPrecision
OpDecorate %202 RelaxedPrecision
OpDecorate %205 RelaxedPrecision
OpDecorate %206 RelaxedPrecision
OpDecorate %210 RelaxedPrecision
OpDecorate %211 RelaxedPrecision
OpDecorate %214 RelaxedPrecision
OpDecorate %215 RelaxedPrecision
OpDecorate %219 RelaxedPrecision
OpDecorate %220 RelaxedPrecision
OpDecorate %223 RelaxedPrecision
OpDecorate %224 RelaxedPrecision
OpDecorate %228 RelaxedPrecision
OpDecorate %229 RelaxedPrecision
OpDecorate %231 RelaxedPrecision
OpDecorate %232 RelaxedPrecision
OpDecorate %233 RelaxedPrecision
OpDecorate %235 RelaxedPrecision
OpDecorate %236 RelaxedPrecision
OpDecorate %237 RelaxedPrecision
OpDecorate %238 RelaxedPrecision
OpDecorate %239 RelaxedPrecision
OpDecorate %240 RelaxedPrecision
%float = OpTypeFloat 32
%_ptr_Private_float = OpTypePointer Private %float
%_kGuardedDivideEpsilon = OpVariable %_ptr_Private_float Private
%bool = OpTypeBool
%false = OpConstantFalse %bool
%float_9_99999994en09 = OpConstant %float 9.99999994e-09
%float_0 = OpConstant %float 0
%v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
%sk_FragColor = OpVariable %_ptr_Output_v4float Output
%_UniformBuffer = OpTypeStruct %v4float %v4float
%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer
%15 = OpVariable %_ptr_Uniform__UniformBuffer Uniform
%v2float = OpTypeVector %float 2
%_ptr_Function_v2float = OpTypePointer Function %v2float
%20 = OpTypeFunction %float %_ptr_Function_v2float %_ptr_Function_v2float
%float_2 = OpConstant %float 2
%float_1 = OpConstant %float 1
%float_4 = OpConstant %float 4
%_ptr_Function_float = OpTypePointer Function %float
%float_3 = OpConstant %float 3
%float_6 = OpConstant %float 6
%float_12 = OpConstant %float 12
%float_16 = OpConstant %float 16
%void = OpTypeVoid
%183 = OpTypeFunction %void
%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float
%int = OpTypeInt 32 1
%int_1 = OpConstant %int 1
%_ptr_Function_v4float = OpTypePointer Function %v4float
%int_0 = OpConstant %int 0
%soft_light_component_Qhh2h2 = OpFunction %float None %20
%21 = OpFunctionParameter %_ptr_Function_v2float
%22 = OpFunctionParameter %_ptr_Function_v2float
%23 = OpLabel
%DSqd = OpVariable %_ptr_Function_float Function
%DCub = OpVariable %_ptr_Function_float Function
%DaSqd = OpVariable %_ptr_Function_float Function
%DaCub = OpVariable %_ptr_Function_float Function
%25 = OpLoad %v2float %21
%26 = OpCompositeExtract %float %25 0
%27 = OpFMul %float %float_2 %26
%28 = OpLoad %v2float %21
%29 = OpCompositeExtract %float %28 1
%30 = OpFOrdLessThanEqual %bool %27 %29
OpSelectionMerge %33 None
OpBranchConditional %30 %31 %32
%31 = OpLabel
%34 = OpLoad %v2float %22
%35 = OpCompositeExtract %float %34 0
%36 = OpLoad %v2float %22
%37 = OpCompositeExtract %float %36 0
%38 = OpFMul %float %35 %37
%39 = OpLoad %v2float %21
%40 = OpCompositeExtract %float %39 1
%41 = OpLoad %v2float %21
%42 = OpCompositeExtract %float %41 0
%43 = OpFMul %float %float_2 %42
%44 = OpFSub %float %40 %43
%45 = OpFMul %float %38 %44
%46 = OpLoad %v2float %22
%47 = OpCompositeExtract %float %46 1
%48 = OpLoad %float %_kGuardedDivideEpsilon
%49 = OpFAdd %float %47 %48
%50 = OpFDiv %float %45 %49
%52 = OpLoad %v2float %22
%53 = OpCompositeExtract %float %52 1
%54 = OpFSub %float %float_1 %53
%55 = OpLoad %v2float %21
%56 = OpCompositeExtract %float %55 0
%57 = OpFMul %float %54 %56
%58 = OpFAdd %float %50 %57
%59 = OpLoad %v2float %22
%60 = OpCompositeExtract %float %59 0
%61 = OpLoad %v2float %21
%62 = OpCompositeExtract %float %61 1
%63 = OpFNegate %float %62
%64 = OpLoad %v2float %21
%65 = OpCompositeExtract %float %64 0
%66 = OpFMul %float %float_2 %65
%67 = OpFAdd %float %63 %66
%68 = OpFAdd %float %67 %float_1
%69 = OpFMul %float %60 %68
%70 = OpFAdd %float %58 %69
OpReturnValue %70
%32 = OpLabel
%72 = OpLoad %v2float %22
%73 = OpCompositeExtract %float %72 0
%74 = OpFMul %float %float_4 %73
%75 = OpLoad %v2float %22
%76 = OpCompositeExtract %float %75 1
%77 = OpFOrdLessThanEqual %bool %74 %76
OpSelectionMerge %80 None
OpBranchConditional %77 %78 %79
%78 = OpLabel
%83 = OpLoad %v2float %22
%84 = OpCompositeExtract %float %83 0
%85 = OpLoad %v2float %22
%86 = OpCompositeExtract %float %85 0
%87 = OpFMul %float %84 %86
OpStore %DSqd %87
%89 = OpLoad %v2float %22
%90 = OpCompositeExtract %float %89 0
%91 = OpFMul %float %87 %90
OpStore %DCub %91
%93 = OpLoad %v2float %22
%94 = OpCompositeExtract %float %93 1
%95 = OpLoad %v2float %22
%96 = OpCompositeExtract %float %95 1
%97 = OpFMul %float %94 %96
OpStore %DaSqd %97
%99 = OpLoad %v2float %22
%100 = OpCompositeExtract %float %99 1
%101 = OpFMul %float %97 %100
OpStore %DaCub %101
%102 = OpLoad %v2float %21
%103 = OpCompositeExtract %float %102 0
%104 = OpLoad %v2float %22
%105 = OpCompositeExtract %float %104 0
%107 = OpLoad %v2float %21
%108 = OpCompositeExtract %float %107 1
%109 = OpFMul %float %float_3 %108
%111 = OpLoad %v2float %21
%112 = OpCompositeExtract %float %111 0
%113 = OpFMul %float %float_6 %112
%114 = OpFSub %float %109 %113
%115 = OpFSub %float %114 %float_1
%116 = OpFMul %float %105 %115
%117 = OpFSub %float %103 %116
%118 = OpFMul %float %97 %117
%120 = OpLoad %v2float %22
%121 = OpCompositeExtract %float %120 1
%122 = OpFMul %float %float_12 %121
%123 = OpFMul %float %122 %87
%124 = OpLoad %v2float %21
%125 = OpCompositeExtract %float %124 1
%126 = OpLoad %v2float %21
%127 = OpCompositeExtract %float %126 0
%128 = OpFMul %float %float_2 %127
%129 = OpFSub %float %125 %128
%130 = OpFMul %float %123 %129
%131 = OpFAdd %float %118 %130
%133 = OpFMul %float %float_16 %91
%134 = OpLoad %v2float %21
%135 = OpCompositeExtract %float %134 1
%136 = OpLoad %v2float %21
%137 = OpCompositeExtract %float %136 0
%138 = OpFMul %float %float_2 %137
%139 = OpFSub %float %135 %138
%140 = OpFMul %float %133 %139
%141 = OpFSub %float %131 %140
%142 = OpLoad %v2float %21
%143 = OpCompositeExtract %float %142 0
%144 = OpFMul %float %101 %143
%145 = OpFSub %float %141 %144
%146 = OpLoad %float %_kGuardedDivideEpsilon
%147 = OpFAdd %float %97 %146
%148 = OpFDiv %float %145 %147
OpReturnValue %148
%79 = OpLabel
%149 = OpLoad %v2float %22
%150 = OpCompositeExtract %float %149 0
%151 = OpLoad %v2float %21
%152 = OpCompositeExtract %float %151 1
%153 = OpLoad %v2float %21
%154 = OpCompositeExtract %float %153 0
%155 = OpFMul %float %float_2 %154
%156 = OpFSub %float %152 %155
%157 = OpFAdd %float %156 %float_1
%158 = OpFMul %float %150 %157
%159 = OpLoad %v2float %21
%160 = OpCompositeExtract %float %159 0
%161 = OpFAdd %float %158 %160
%163 = OpLoad %v2float %22
%164 = OpCompositeExtract %float %163 1
%165 = OpLoad %v2float %22
%166 = OpCompositeExtract %float %165 0
%167 = OpFMul %float %164 %166
%162 = OpExtInst %float %1 Sqrt %167
%168 = OpLoad %v2float %21
%169 = OpCompositeExtract %float %168 1
%170 = OpLoad %v2float %21
%171 = OpCompositeExtract %float %170 0
%172 = OpFMul %float %float_2 %171
%173 = OpFSub %float %169 %172
%174 = OpFMul %float %162 %173
%175 = OpFSub %float %161 %174
%176 = OpLoad %v2float %22
%177 = OpCompositeExtract %float %176 1
%178 = OpLoad %v2float %21
%179 = OpCompositeExtract %float %178 0
%180 = OpFMul %float %177 %179
%181 = OpFSub %float %175 %180
OpReturnValue %181
%80 = OpLabel
OpBranch %33
%33 = OpLabel
OpUnreachable
OpFunctionEnd
%main = OpFunction %void None %183
%184 = OpLabel
%192 = OpVariable %_ptr_Function_v4float Function
%203 = OpVariable %_ptr_Function_v2float Function
%207 = OpVariable %_ptr_Function_v2float Function
%212 = OpVariable %_ptr_Function_v2float Function
%216 = OpVariable %_ptr_Function_v2float Function
%221 = OpVariable %_ptr_Function_v2float Function
%225 = OpVariable %_ptr_Function_v2float Function
%9 = OpSelect %float %false %float_9_99999994en09 %float_0
OpStore %_kGuardedDivideEpsilon %9
%185 = OpAccessChain %_ptr_Uniform_v4float %15 %int_1
%189 = OpLoad %v4float %185
%190 = OpCompositeExtract %float %189 3
%191 = OpFOrdEqual %bool %190 %float_0
OpSelectionMerge %196 None
OpBranchConditional %191 %194 %195
%194 = OpLabel
%197 = OpAccessChain %_ptr_Uniform_v4float %15 %int_0
%199 = OpLoad %v4float %197
OpStore %192 %199
OpBranch %196
%195 = OpLabel
%200 = OpAccessChain %_ptr_Uniform_v4float %15 %int_0
%201 = OpLoad %v4float %200
%202 = OpVectorShuffle %v2float %201 %201 0 3
OpStore %203 %202
%204 = OpAccessChain %_ptr_Uniform_v4float %15 %int_1
%205 = OpLoad %v4float %204
%206 = OpVectorShuffle %v2float %205 %205 0 3
OpStore %207 %206
%208 = OpFunctionCall %float %soft_light_component_Qhh2h2 %203 %207
%209 = OpAccessChain %_ptr_Uniform_v4float %15 %int_0
%210 = OpLoad %v4float %209
%211 = OpVectorShuffle %v2float %210 %210 1 3
OpStore %212 %211
%213 = OpAccessChain %_ptr_Uniform_v4float %15 %int_1
%214 = OpLoad %v4float %213
%215 = OpVectorShuffle %v2float %214 %214 1 3
OpStore %216 %215
%217 = OpFunctionCall %float %soft_light_component_Qhh2h2 %212 %216
%218 = OpAccessChain %_ptr_Uniform_v4float %15 %int_0
%219 = OpLoad %v4float %218
%220 = OpVectorShuffle %v2float %219 %219 2 3
OpStore %221 %220
%222 = OpAccessChain %_ptr_Uniform_v4float %15 %int_1
%223 = OpLoad %v4float %222
%224 = OpVectorShuffle %v2float %223 %223 2 3
OpStore %225 %224
%226 = OpFunctionCall %float %soft_light_component_Qhh2h2 %221 %225
%227 = OpAccessChain %_ptr_Uniform_v4float %15 %int_0
%228 = OpLoad %v4float %227
%229 = OpCompositeExtract %float %228 3
%230 = OpAccessChain %_ptr_Uniform_v4float %15 %int_0
%231 = OpLoad %v4float %230
%232 = OpCompositeExtract %float %231 3
%233 = OpFSub %float %float_1 %232
%234 = OpAccessChain %_ptr_Uniform_v4float %15 %int_1
%235 = OpLoad %v4float %234
%236 = OpCompositeExtract %float %235 3
%237 = OpFMul %float %233 %236
%238 = OpFAdd %float %229 %237
%239 = OpCompositeConstruct %v4float %208 %217 %226 %238
OpStore %192 %239
OpBranch %196
%196 = OpLabel
%240 = OpLoad %v4float %192
OpStore %sk_FragColor %240
OpReturn
OpFunctionEnd