• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 %blend_color_saturation_Qhh3 "blend_color_saturation_Qhh3"
12               OpName %blend_hslc_h4h2h4h4 "blend_hslc_h4h2h4h4"
13               OpName %alpha "alpha"
14               OpName %sda "sda"
15               OpName %dsa "dsa"
16               OpName %l "l"
17               OpName %r "r"
18               OpName %_2_mn "_2_mn"
19               OpName %_3_mx "_3_mx"
20               OpName %_4_lum "_4_lum"
21               OpName %_5_result "_5_result"
22               OpName %_6_minComp "_6_minComp"
23               OpName %_7_maxComp "_7_maxComp"
24               OpName %main "main"
25               OpDecorate %_kGuardedDivideEpsilon RelaxedPrecision
26               OpDecorate %sk_FragColor RelaxedPrecision
27               OpDecorate %sk_FragColor Location 0
28               OpDecorate %sk_FragColor Index 0
29               OpMemberDecorate %_UniformBuffer 0 Offset 0
30               OpMemberDecorate %_UniformBuffer 0 RelaxedPrecision
31               OpMemberDecorate %_UniformBuffer 1 Offset 16
32               OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision
33               OpDecorate %_UniformBuffer Block
34               OpDecorate %16 Binding 0
35               OpDecorate %16 DescriptorSet 0
36               OpDecorate %26 RelaxedPrecision
37               OpDecorate %27 RelaxedPrecision
38               OpDecorate %28 RelaxedPrecision
39               OpDecorate %29 RelaxedPrecision
40               OpDecorate %30 RelaxedPrecision
41               OpDecorate %31 RelaxedPrecision
42               OpDecorate %34 RelaxedPrecision
43               OpDecorate %35 RelaxedPrecision
44               OpDecorate %36 RelaxedPrecision
45               OpDecorate %37 RelaxedPrecision
46               OpDecorate %38 RelaxedPrecision
47               OpDecorate %39 RelaxedPrecision
48               OpDecorate %40 RelaxedPrecision
49               OpDecorate %alpha RelaxedPrecision
50               OpDecorate %51 RelaxedPrecision
51               OpDecorate %52 RelaxedPrecision
52               OpDecorate %53 RelaxedPrecision
53               OpDecorate %54 RelaxedPrecision
54               OpDecorate %55 RelaxedPrecision
55               OpDecorate %sda RelaxedPrecision
56               OpDecorate %57 RelaxedPrecision
57               OpDecorate %58 RelaxedPrecision
58               OpDecorate %59 RelaxedPrecision
59               OpDecorate %60 RelaxedPrecision
60               OpDecorate %61 RelaxedPrecision
61               OpDecorate %dsa RelaxedPrecision
62               OpDecorate %63 RelaxedPrecision
63               OpDecorate %64 RelaxedPrecision
64               OpDecorate %65 RelaxedPrecision
65               OpDecorate %66 RelaxedPrecision
66               OpDecorate %67 RelaxedPrecision
67               OpDecorate %l RelaxedPrecision
68               OpDecorate %69 RelaxedPrecision
69               OpDecorate %70 RelaxedPrecision
70               OpDecorate %76 RelaxedPrecision
71               OpDecorate %r RelaxedPrecision
72               OpDecorate %78 RelaxedPrecision
73               OpDecorate %79 RelaxedPrecision
74               OpDecorate %85 RelaxedPrecision
75               OpDecorate %86 RelaxedPrecision
76               OpDecorate %87 RelaxedPrecision
77               OpDecorate %_2_mn RelaxedPrecision
78               OpDecorate %94 RelaxedPrecision
79               OpDecorate %95 RelaxedPrecision
80               OpDecorate %96 RelaxedPrecision
81               OpDecorate %_3_mx RelaxedPrecision
82               OpDecorate %105 RelaxedPrecision
83               OpDecorate %106 RelaxedPrecision
84               OpDecorate %109 RelaxedPrecision
85               OpDecorate %110 RelaxedPrecision
86               OpDecorate %112 RelaxedPrecision
87               OpDecorate %113 RelaxedPrecision
88               OpDecorate %115 RelaxedPrecision
89               OpDecorate %_4_lum RelaxedPrecision
90               OpDecorate %117 RelaxedPrecision
91               OpDecorate %122 RelaxedPrecision
92               OpDecorate %_5_result RelaxedPrecision
93               OpDecorate %124 RelaxedPrecision
94               OpDecorate %125 RelaxedPrecision
95               OpDecorate %126 RelaxedPrecision
96               OpDecorate %127 RelaxedPrecision
97               OpDecorate %128 RelaxedPrecision
98               OpDecorate %129 RelaxedPrecision
99               OpDecorate %_6_minComp RelaxedPrecision
100               OpDecorate %133 RelaxedPrecision
101               OpDecorate %134 RelaxedPrecision
102               OpDecorate %135 RelaxedPrecision
103               OpDecorate %_7_maxComp RelaxedPrecision
104               OpDecorate %146 RelaxedPrecision
105               OpDecorate %147 RelaxedPrecision
106               OpDecorate %148 RelaxedPrecision
107               OpDecorate %149 RelaxedPrecision
108               OpDecorate %150 RelaxedPrecision
109               OpDecorate %151 RelaxedPrecision
110               OpDecorate %152 RelaxedPrecision
111               OpDecorate %153 RelaxedPrecision
112               OpDecorate %161 RelaxedPrecision
113               OpDecorate %162 RelaxedPrecision
114               OpDecorate %163 RelaxedPrecision
115               OpDecorate %164 RelaxedPrecision
116               OpDecorate %165 RelaxedPrecision
117               OpDecorate %166 RelaxedPrecision
118               OpDecorate %167 RelaxedPrecision
119               OpDecorate %168 RelaxedPrecision
120               OpDecorate %169 RelaxedPrecision
121               OpDecorate %170 RelaxedPrecision
122               OpDecorate %171 RelaxedPrecision
123               OpDecorate %172 RelaxedPrecision
124               OpDecorate %173 RelaxedPrecision
125               OpDecorate %174 RelaxedPrecision
126               OpDecorate %175 RelaxedPrecision
127               OpDecorate %176 RelaxedPrecision
128               OpDecorate %177 RelaxedPrecision
129               OpDecorate %178 RelaxedPrecision
130               OpDecorate %179 RelaxedPrecision
131               OpDecorate %180 RelaxedPrecision
132               OpDecorate %181 RelaxedPrecision
133               OpDecorate %182 RelaxedPrecision
134               OpDecorate %183 RelaxedPrecision
135               OpDecorate %184 RelaxedPrecision
136               OpDecorate %185 RelaxedPrecision
137               OpDecorate %186 RelaxedPrecision
138               OpDecorate %187 RelaxedPrecision
139               OpDecorate %188 RelaxedPrecision
140               OpDecorate %189 RelaxedPrecision
141               OpDecorate %190 RelaxedPrecision
142               OpDecorate %200 RelaxedPrecision
143               OpDecorate %204 RelaxedPrecision
144      %float = OpTypeFloat 32
145%_ptr_Private_float = OpTypePointer Private %float
146%_kGuardedDivideEpsilon = OpVariable %_ptr_Private_float Private
147       %bool = OpTypeBool
148      %false = OpConstantFalse %bool
149%float_9_99999994en09 = OpConstant %float 9.99999994e-09
150    %float_0 = OpConstant %float 0
151    %v4float = OpTypeVector %float 4
152%_ptr_Output_v4float = OpTypePointer Output %v4float
153%sk_FragColor = OpVariable %_ptr_Output_v4float Output
154%_UniformBuffer = OpTypeStruct %v4float %v4float
155%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer
156         %16 = OpVariable %_ptr_Uniform__UniformBuffer Uniform
157    %v3float = OpTypeVector %float 3
158%_ptr_Function_v3float = OpTypePointer Function %v3float
159         %21 = OpTypeFunction %float %_ptr_Function_v3float
160    %v2float = OpTypeVector %float 2
161%_ptr_Function_v2float = OpTypePointer Function %v2float
162%_ptr_Function_v4float = OpTypePointer Function %v4float
163         %44 = OpTypeFunction %v4float %_ptr_Function_v2float %_ptr_Function_v4float %_ptr_Function_v4float
164%_ptr_Function_float = OpTypePointer Function %float
165    %float_1 = OpConstant %float 1
166        %114 = OpConstantComposite %v3float %float_0 %float_0 %float_0
167%float_0_300000012 = OpConstant %float 0.300000012
168%float_0_589999974 = OpConstant %float 0.589999974
169%float_0_109999999 = OpConstant %float 0.109999999
170        %121 = OpConstantComposite %v3float %float_0_300000012 %float_0_589999974 %float_0_109999999
171       %void = OpTypeVoid
172        %192 = OpTypeFunction %void
173        %194 = OpConstantComposite %v2float %float_0 %float_0
174%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float
175        %int = OpTypeInt 32 1
176      %int_0 = OpConstant %int 0
177      %int_1 = OpConstant %int 1
178%blend_color_saturation_Qhh3 = OpFunction %float None %21
179         %22 = OpFunctionParameter %_ptr_Function_v3float
180         %23 = OpLabel
181         %26 = OpLoad %v3float %22
182         %27 = OpCompositeExtract %float %26 0
183         %28 = OpLoad %v3float %22
184         %29 = OpCompositeExtract %float %28 1
185         %25 = OpExtInst %float %1 FMax %27 %29
186         %30 = OpLoad %v3float %22
187         %31 = OpCompositeExtract %float %30 2
188         %24 = OpExtInst %float %1 FMax %25 %31
189         %34 = OpLoad %v3float %22
190         %35 = OpCompositeExtract %float %34 0
191         %36 = OpLoad %v3float %22
192         %37 = OpCompositeExtract %float %36 1
193         %33 = OpExtInst %float %1 FMin %35 %37
194         %38 = OpLoad %v3float %22
195         %39 = OpCompositeExtract %float %38 2
196         %32 = OpExtInst %float %1 FMin %33 %39
197         %40 = OpFSub %float %24 %32
198               OpReturnValue %40
199               OpFunctionEnd
200%blend_hslc_h4h2h4h4 = OpFunction %v4float None %44
201         %45 = OpFunctionParameter %_ptr_Function_v2float
202         %46 = OpFunctionParameter %_ptr_Function_v4float
203         %47 = OpFunctionParameter %_ptr_Function_v4float
204         %48 = OpLabel
205      %alpha = OpVariable %_ptr_Function_float Function
206        %sda = OpVariable %_ptr_Function_v3float Function
207        %dsa = OpVariable %_ptr_Function_v3float Function
208          %l = OpVariable %_ptr_Function_v3float Function
209         %72 = OpVariable %_ptr_Function_v3float Function
210          %r = OpVariable %_ptr_Function_v3float Function
211         %81 = OpVariable %_ptr_Function_v3float Function
212      %_2_mn = OpVariable %_ptr_Function_float Function
213      %_3_mx = OpVariable %_ptr_Function_float Function
214        %101 = OpVariable %_ptr_Function_v3float Function
215        %107 = OpVariable %_ptr_Function_v3float Function
216     %_4_lum = OpVariable %_ptr_Function_float Function
217  %_5_result = OpVariable %_ptr_Function_v3float Function
218 %_6_minComp = OpVariable %_ptr_Function_float Function
219 %_7_maxComp = OpVariable %_ptr_Function_float Function
220         %51 = OpLoad %v4float %47
221         %52 = OpCompositeExtract %float %51 3
222         %53 = OpLoad %v4float %46
223         %54 = OpCompositeExtract %float %53 3
224         %55 = OpFMul %float %52 %54
225               OpStore %alpha %55
226         %57 = OpLoad %v4float %46
227         %58 = OpVectorShuffle %v3float %57 %57 0 1 2
228         %59 = OpLoad %v4float %47
229         %60 = OpCompositeExtract %float %59 3
230         %61 = OpVectorTimesScalar %v3float %58 %60
231               OpStore %sda %61
232         %63 = OpLoad %v4float %47
233         %64 = OpVectorShuffle %v3float %63 %63 0 1 2
234         %65 = OpLoad %v4float %46
235         %66 = OpCompositeExtract %float %65 3
236         %67 = OpVectorTimesScalar %v3float %64 %66
237               OpStore %dsa %67
238         %69 = OpLoad %v2float %45
239         %70 = OpCompositeExtract %float %69 0
240         %71 = OpFUnordNotEqual %bool %70 %float_0
241               OpSelectionMerge %75 None
242               OpBranchConditional %71 %73 %74
243         %73 = OpLabel
244               OpStore %72 %67
245               OpBranch %75
246         %74 = OpLabel
247               OpStore %72 %61
248               OpBranch %75
249         %75 = OpLabel
250         %76 = OpLoad %v3float %72
251               OpStore %l %76
252         %78 = OpLoad %v2float %45
253         %79 = OpCompositeExtract %float %78 0
254         %80 = OpFUnordNotEqual %bool %79 %float_0
255               OpSelectionMerge %84 None
256               OpBranchConditional %80 %82 %83
257         %82 = OpLabel
258               OpStore %81 %61
259               OpBranch %84
260         %83 = OpLabel
261               OpStore %81 %67
262               OpBranch %84
263         %84 = OpLabel
264         %85 = OpLoad %v3float %81
265               OpStore %r %85
266         %86 = OpLoad %v2float %45
267         %87 = OpCompositeExtract %float %86 1
268         %88 = OpFUnordNotEqual %bool %87 %float_0
269               OpSelectionMerge %90 None
270               OpBranchConditional %88 %89 %90
271         %89 = OpLabel
272         %94 = OpCompositeExtract %float %76 0
273         %95 = OpCompositeExtract %float %76 1
274         %93 = OpExtInst %float %1 FMin %94 %95
275         %96 = OpCompositeExtract %float %76 2
276         %92 = OpExtInst %float %1 FMin %93 %96
277               OpStore %_2_mn %92
278         %99 = OpExtInst %float %1 FMax %94 %95
279         %98 = OpExtInst %float %1 FMax %99 %96
280               OpStore %_3_mx %98
281        %100 = OpFOrdGreaterThan %bool %98 %92
282               OpSelectionMerge %104 None
283               OpBranchConditional %100 %102 %103
284        %102 = OpLabel
285        %105 = OpCompositeConstruct %v3float %92 %92 %92
286        %106 = OpFSub %v3float %76 %105
287               OpStore %107 %85
288        %108 = OpFunctionCall %float %blend_color_saturation_Qhh3 %107
289        %109 = OpVectorTimesScalar %v3float %106 %108
290        %110 = OpFSub %float %98 %92
291        %112 = OpFDiv %float %float_1 %110
292        %113 = OpVectorTimesScalar %v3float %109 %112
293               OpStore %101 %113
294               OpBranch %104
295        %103 = OpLabel
296               OpStore %101 %114
297               OpBranch %104
298        %104 = OpLabel
299        %115 = OpLoad %v3float %101
300               OpStore %l %115
301               OpStore %r %67
302               OpBranch %90
303         %90 = OpLabel
304        %122 = OpLoad %v3float %r
305        %117 = OpDot %float %121 %122
306               OpStore %_4_lum %117
307        %125 = OpLoad %v3float %l
308        %124 = OpDot %float %121 %125
309        %126 = OpFSub %float %117 %124
310        %127 = OpLoad %v3float %l
311        %128 = OpCompositeConstruct %v3float %126 %126 %126
312        %129 = OpFAdd %v3float %128 %127
313               OpStore %_5_result %129
314        %133 = OpCompositeExtract %float %129 0
315        %134 = OpCompositeExtract %float %129 1
316        %132 = OpExtInst %float %1 FMin %133 %134
317        %135 = OpCompositeExtract %float %129 2
318        %131 = OpExtInst %float %1 FMin %132 %135
319               OpStore %_6_minComp %131
320        %138 = OpExtInst %float %1 FMax %133 %134
321        %137 = OpExtInst %float %1 FMax %138 %135
322               OpStore %_7_maxComp %137
323        %139 = OpFOrdLessThan %bool %131 %float_0
324               OpSelectionMerge %141 None
325               OpBranchConditional %139 %140 %141
326        %140 = OpLabel
327        %142 = OpFUnordNotEqual %bool %117 %131
328               OpBranch %141
329        %141 = OpLabel
330        %143 = OpPhi %bool %false %90 %142 %140
331               OpSelectionMerge %145 None
332               OpBranchConditional %143 %144 %145
333        %144 = OpLabel
334        %146 = OpCompositeConstruct %v3float %117 %117 %117
335        %147 = OpFSub %v3float %129 %146
336        %148 = OpFSub %float %117 %131
337        %149 = OpLoad %float %_kGuardedDivideEpsilon
338        %150 = OpFAdd %float %148 %149
339        %151 = OpFDiv %float %117 %150
340        %152 = OpVectorTimesScalar %v3float %147 %151
341        %153 = OpFAdd %v3float %146 %152
342               OpStore %_5_result %153
343               OpBranch %145
344        %145 = OpLabel
345        %154 = OpFOrdGreaterThan %bool %137 %55
346               OpSelectionMerge %156 None
347               OpBranchConditional %154 %155 %156
348        %155 = OpLabel
349        %157 = OpFUnordNotEqual %bool %137 %117
350               OpBranch %156
351        %156 = OpLabel
352        %158 = OpPhi %bool %false %145 %157 %155
353               OpSelectionMerge %160 None
354               OpBranchConditional %158 %159 %160
355        %159 = OpLabel
356        %161 = OpLoad %v3float %_5_result
357        %162 = OpCompositeConstruct %v3float %117 %117 %117
358        %163 = OpFSub %v3float %161 %162
359        %164 = OpFSub %float %55 %117
360        %165 = OpVectorTimesScalar %v3float %163 %164
361        %166 = OpFSub %float %137 %117
362        %167 = OpLoad %float %_kGuardedDivideEpsilon
363        %168 = OpFAdd %float %166 %167
364        %169 = OpFDiv %float %float_1 %168
365        %170 = OpVectorTimesScalar %v3float %165 %169
366        %171 = OpFAdd %v3float %162 %170
367               OpStore %_5_result %171
368               OpBranch %160
369        %160 = OpLabel
370        %172 = OpLoad %v3float %_5_result
371        %173 = OpLoad %v4float %47
372        %174 = OpVectorShuffle %v3float %173 %173 0 1 2
373        %175 = OpFAdd %v3float %172 %174
374        %176 = OpFSub %v3float %175 %67
375        %177 = OpLoad %v4float %46
376        %178 = OpVectorShuffle %v3float %177 %177 0 1 2
377        %179 = OpFAdd %v3float %176 %178
378        %180 = OpFSub %v3float %179 %61
379        %181 = OpCompositeExtract %float %180 0
380        %182 = OpCompositeExtract %float %180 1
381        %183 = OpCompositeExtract %float %180 2
382        %184 = OpLoad %v4float %46
383        %185 = OpCompositeExtract %float %184 3
384        %186 = OpLoad %v4float %47
385        %187 = OpCompositeExtract %float %186 3
386        %188 = OpFAdd %float %185 %187
387        %189 = OpFSub %float %188 %55
388        %190 = OpCompositeConstruct %v4float %181 %182 %183 %189
389               OpReturnValue %190
390               OpFunctionEnd
391       %main = OpFunction %void None %192
392        %193 = OpLabel
393        %195 = OpVariable %_ptr_Function_v2float Function
394        %201 = OpVariable %_ptr_Function_v4float Function
395        %205 = OpVariable %_ptr_Function_v4float Function
396         %10 = OpSelect %float %false %float_9_99999994en09 %float_0
397               OpStore %_kGuardedDivideEpsilon %10
398               OpStore %195 %194
399        %196 = OpAccessChain %_ptr_Uniform_v4float %16 %int_0
400        %200 = OpLoad %v4float %196
401               OpStore %201 %200
402        %202 = OpAccessChain %_ptr_Uniform_v4float %16 %int_1
403        %204 = OpLoad %v4float %202
404               OpStore %205 %204
405        %206 = OpFunctionCall %v4float %blend_hslc_h4h2h4h4 %195 %201 %205
406               OpStore %sk_FragColor %206
407               OpReturn
408               OpFunctionEnd
409