xref: /aosp_15_r20/external/skia/tests/sksl/realistic/RippleShader.skrp (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1489 instructions, 1 invocations
2
3[immutable slots]
4i0 = 0x40490FDB (3.14159274)
5i1 = 0x3F4CCCCD (0.8)
6i2 = 0x3F4CCCCD (0.8)
7i3 = 0x40ACC227 (5.3987)
8i4 = 0x40AE25AF (5.4421)
9i5 = 0x41AC47E3 (21.5351)
10i6 = 0x416504EA (14.3137)
11
12store_src_rg                   p = src.rg
13init_lane_masks                CondMask = LoopMask = RetMask = true
14copy_constant                  start = 0
15copy_constant                  end = 0x3E051EB8 (0.13)
16copy_uniform                   progress = in_progress
17copy_slot_unmasked             $0 = progress
18copy_slot_unmasked             $1 = start
19max_float                      $0 = max($0, $1)
20copy_slot_unmasked             $1 = end
21min_float                      $0 = min($0, $1)
22copy_slot_unmasked             sub = $0
23copy_slot_unmasked             $1 = start
24sub_float                      $0 -= $1
25copy_slot_unmasked             $1 = end
26copy_slot_unmasked             $2 = start
27sub_float                      $1 -= $2
28div_float                      $0 /= $1
29label                          label 0
30copy_slot_unmasked             fadeIn = $0
31copy_constant                  start = 0
32copy_constant                  end = 0x3F800000 (1.0)
33copy_uniform                   progress = in_progress
34copy_slot_unmasked             $0 = progress
35copy_slot_unmasked             $1 = start
36max_float                      $0 = max($0, $1)
37copy_slot_unmasked             $1 = end
38min_float                      $0 = min($0, $1)
39copy_slot_unmasked             sub = $0
40copy_slot_unmasked             $1 = start
41sub_float                      $0 -= $1
42copy_slot_unmasked             $1 = end
43copy_slot_unmasked             $2 = start
44sub_float                      $1 -= $2
45div_float                      $0 /= $1
46label                          label 0x00000001
47copy_slot_unmasked             scaleIn = $0
48copy_constant                  start = 0x3ECCCCCD (0.4)
49copy_constant                  end = 0x3F000000 (0.5)
50copy_uniform                   progress = in_progress
51copy_slot_unmasked             $0 = progress
52copy_slot_unmasked             $1 = start
53max_float                      $0 = max($0, $1)
54copy_slot_unmasked             $1 = end
55min_float                      $0 = min($0, $1)
56copy_slot_unmasked             sub = $0
57copy_slot_unmasked             $1 = start
58sub_float                      $0 -= $1
59copy_slot_unmasked             $1 = end
60copy_slot_unmasked             $2 = start
61sub_float                      $1 -= $2
62div_float                      $0 /= $1
63label                          label 0x00000002
64copy_slot_unmasked             fadeOutNoise = $0
65copy_constant                  start = 0x3ECCCCCD (0.4)
66copy_constant                  end = 0x3F800000 (1.0)
67copy_uniform                   progress = in_progress
68copy_slot_unmasked             $0 = progress
69copy_slot_unmasked             $1 = start
70max_float                      $0 = max($0, $1)
71copy_slot_unmasked             $1 = end
72min_float                      $0 = min($0, $1)
73copy_slot_unmasked             sub = $0
74copy_slot_unmasked             $1 = start
75sub_float                      $0 -= $1
76copy_slot_unmasked             $1 = end
77copy_slot_unmasked             $2 = start
78sub_float                      $1 -= $2
79div_float                      $0 /= $1
80label                          label 0x00000003
81copy_slot_unmasked             fadeOutRipple = $0
82copy_uniform                   $0 = in_progress
83mul_imm_float                  $0 *= 0x40000000 (2.0)
84max_imm_float                  $0 = max($0, 0)
85min_imm_float                  $0 = min($0, 0x3F800000 (1.0))
86copy_slot_unmasked             $1 = $0
87copy_2_uniforms                $2..3 = in_touch
88copy_2_uniforms                $4..5 = in_origin
89mix_2_floats                   $0..1 = mix($2..3, $4..5, $0..1)
90copy_2_slots_unmasked          center = $0..1
91copy_uniform                   radius = in_maxRadius
92copy_constant                  blur = 0x3F800000 (1.0)
93copy_slot_unmasked             $0 = radius
94mul_imm_float                  $0 *= 0x3D4CCCCD (0.05)
95copy_slot_unmasked             thickness = $0
96copy_slot_unmasked             $0 = radius
97copy_slot_unmasked             $1 = scaleIn
98mul_float                      $0 *= $1
99copy_slot_unmasked             currentRadius = $0
100copy_slot_unmasked             $1 = thickness
101add_float                      $0 += $1
102copy_slot_unmasked             radius₁ = $0
103copy_slot_unmasked             $0 = blur
104mul_imm_float                  $0 *= 0x3F000000 (0.5)
105copy_slot_unmasked             blurHalf = $0
106copy_2_slots_unmasked          $0..1 = p
107copy_2_slots_unmasked          $2..3 = center
108sub_2_floats                   $0..1 -= $2..3
109copy_2_slots_unmasked          $2..3 = $0..1
110dot_2_floats                   $0 = dot($0..1, $2..3)
111sqrt_float                     $0 = sqrt($0)
112copy_slot_unmasked             d = $0
113splat_2_constants              $0..1 = 0x3F800000 (1.0)
114copy_slot_unmasked             $2 = blurHalf
115sub_float                      $1 -= $2
116copy_slot_unmasked             $2 = blurHalf
117add_imm_float                  $2 += 0x3F800000 (1.0)
118copy_slot_unmasked             $3 = d
119copy_slot_unmasked             $4 = radius₁
120div_float                      $3 /= $4
121smoothstep_n_floats            $1 = smoothstep($1, $2, $3)
122sub_float                      $0 -= $1
123label                          label 0x00000005
124copy_slot_unmasked             circle_outer = $0
125copy_slot_unmasked             $0 = currentRadius
126copy_slot_unmasked             $1 = thickness
127sub_float                      $0 -= $1
128max_imm_float                  $0 = max($0, 0)
129copy_slot_unmasked             radius₁ = $0
130copy_slot_unmasked             $0 = blur
131mul_imm_float                  $0 *= 0x3F000000 (0.5)
132copy_slot_unmasked             blurHalf = $0
133copy_2_slots_unmasked          $0..1 = p
134copy_2_slots_unmasked          $2..3 = center
135sub_2_floats                   $0..1 -= $2..3
136copy_2_slots_unmasked          $2..3 = $0..1
137dot_2_floats                   $0 = dot($0..1, $2..3)
138sqrt_float                     $0 = sqrt($0)
139copy_slot_unmasked             d = $0
140splat_2_constants              $0..1 = 0x3F800000 (1.0)
141copy_slot_unmasked             $2 = blurHalf
142sub_float                      $1 -= $2
143copy_slot_unmasked             $2 = blurHalf
144add_imm_float                  $2 += 0x3F800000 (1.0)
145copy_slot_unmasked             $3 = d
146copy_slot_unmasked             $4 = radius₁
147div_float                      $3 /= $4
148smoothstep_n_floats            $1 = smoothstep($1, $2, $3)
149sub_float                      $0 -= $1
150label                          label 0x00000006
151copy_slot_unmasked             circle_inner = $0
152copy_slot_unmasked             $0 = circle_outer
153copy_slot_unmasked             $1 = circle_inner
154sub_float                      $0 -= $1
155max_imm_float                  $0 = max($0, 0)
156min_imm_float                  $0 = min($0, 0x3F800000 (1.0))
157label                          label 0x00000004
158copy_slot_unmasked             ring = $0
159copy_slot_unmasked             $0 = fadeIn
160copy_constant                  $1 = 0x3F800000 (1.0)
161copy_slot_unmasked             $2 = fadeOutNoise
162sub_float                      $1 -= $2
163min_float                      $0 = min($0, $1)
164copy_slot_unmasked             alpha = $0
165copy_2_slots_unmasked          $0..1 = p
166copy_2_uniforms                $2..3 = in_resolutionScale
167mul_2_floats                   $0..1 *= $2..3
168copy_2_slots_unmasked          uv = $0..1
169copy_2_slots_unmasked          $2..3 = uv
170copy_2_uniforms                $4..5 = in_noiseScale
171mod_2_floats                   $2..3 = mod($2..3, $4..5)
172sub_2_floats                   $0..1 -= $2..3
173copy_2_slots_unmasked          densityUv = $0..1
174copy_2_slots_unmasked          uv₁ = uv
175copy_uniform                   t = in_turbulencePhase
176copy_2_slots_unmasked          $0..1 = uv₁
177mul_imm_float                  $0 *= 0x3F4CCCCD (0.8)
178mul_imm_float                  $1 *= 0x3F4CCCCD (0.8)
179copy_2_slots_unmasked          uv₁ = $0..1
180splat_2_constants              resolution = 0x3F4CCCCD (0.8)
181copy_2_slots_unmasked          coord = uv₁
182copy_2_uniforms                center₁ = in_tCircle1
183copy_2_uniforms                rotation = in_tRotation1
184copy_constant                  cell_diameter = 0x3E2E147B (0.17)
185copy_2_slots_unmasked          $2..3 = rotation
186bitwise_xor_imm_int            $3 ^= 0x80000000
187copy_slot_unmasked             $4 = rotation(1)
188copy_slot_unmasked             $5 = rotation(0)
189copy_2_slots_unmasked          $6..7 = center₁
190copy_2_slots_unmasked          $8..9 = coord
191sub_2_floats                   $6..7 -= $8..9
192matrix_multiply_2              mat1x2($0..1) = mat2x2($2..5) * mat1x2($6..7)
193copy_2_slots_unmasked          $2..3 = center₁
194add_2_floats                   $0..1 += $2..3
195copy_2_slots_unmasked          coord = $0..1
196copy_slot_unmasked             $2 = cell_diameter
197copy_slot_unmasked             $3 = $2
198mod_2_floats                   $0..1 = mod($0..1, $2..3)
199copy_2_slots_unmasked          $2..3 = resolution
200div_2_floats                   $0..1 /= $2..3
201copy_2_slots_unmasked          coord = $0..1
202copy_slot_unmasked             $0 = cell_diameter
203copy_slot_unmasked             $1 = resolution(1)
204div_float                      $0 /= $1
205mul_imm_float                  $0 *= 0x3F000000 (0.5)
206copy_slot_unmasked             normal_radius = $0
207mul_imm_float                  $0 *= 0x3F266666 (0.65)
208copy_slot_unmasked             radius₂ = $0
209copy_slot_unmasked             $0 = normal_radius
210copy_slot_unmasked             $1 = $0
211copy_2_slots_unmasked          xy = $0..1
212copy_slot_unmasked             $0 = radius₂
213mul_imm_float                  $0 *= 0x42480000 (50.0)
214copy_slot_unmasked             blur₁ = $0
215mul_imm_float                  $0 *= 0x3F000000 (0.5)
216copy_slot_unmasked             blurHalf = $0
217copy_2_slots_unmasked          $0..1 = coord
218copy_2_slots_unmasked          $2..3 = xy
219sub_2_floats                   $0..1 -= $2..3
220copy_2_slots_unmasked          $2..3 = $0..1
221dot_2_floats                   $0 = dot($0..1, $2..3)
222sqrt_float                     $0 = sqrt($0)
223copy_slot_unmasked             d = $0
224splat_2_constants              $0..1 = 0x3F800000 (1.0)
225copy_slot_unmasked             $2 = blurHalf
226sub_float                      $1 -= $2
227copy_slot_unmasked             $2 = blurHalf
228add_imm_float                  $2 += 0x3F800000 (1.0)
229copy_slot_unmasked             $3 = d
230copy_slot_unmasked             $4 = radius₂
231div_float                      $3 /= $4
232smoothstep_n_floats            $1 = smoothstep($1, $2, $3)
233sub_float                      $0 -= $1
234label                          label 0x00000009
235label                          label 0x00000008
236copy_slot_unmasked             g1 = $0
237splat_2_constants              resolution = 0x3F4CCCCD (0.8)
238copy_2_slots_unmasked          coord = uv₁
239copy_2_uniforms                center₁ = in_tCircle2
240copy_2_uniforms                rotation = in_tRotation2
241copy_constant                  cell_diameter = 0x3E4CCCCD (0.2)
242copy_2_slots_unmasked          $2..3 = rotation
243bitwise_xor_imm_int            $3 ^= 0x80000000
244copy_slot_unmasked             $4 = rotation(1)
245copy_slot_unmasked             $5 = rotation(0)
246copy_2_slots_unmasked          $6..7 = center₁
247copy_2_slots_unmasked          $8..9 = coord
248sub_2_floats                   $6..7 -= $8..9
249matrix_multiply_2              mat1x2($0..1) = mat2x2($2..5) * mat1x2($6..7)
250copy_2_slots_unmasked          $2..3 = center₁
251add_2_floats                   $0..1 += $2..3
252copy_2_slots_unmasked          coord = $0..1
253copy_slot_unmasked             $2 = cell_diameter
254copy_slot_unmasked             $3 = $2
255mod_2_floats                   $0..1 = mod($0..1, $2..3)
256copy_2_slots_unmasked          $2..3 = resolution
257div_2_floats                   $0..1 /= $2..3
258copy_2_slots_unmasked          coord = $0..1
259copy_slot_unmasked             $0 = cell_diameter
260copy_slot_unmasked             $1 = resolution(1)
261div_float                      $0 /= $1
262mul_imm_float                  $0 *= 0x3F000000 (0.5)
263copy_slot_unmasked             normal_radius = $0
264mul_imm_float                  $0 *= 0x3F266666 (0.65)
265copy_slot_unmasked             radius₂ = $0
266copy_slot_unmasked             $0 = normal_radius
267copy_slot_unmasked             $1 = $0
268copy_2_slots_unmasked          xy = $0..1
269copy_slot_unmasked             $0 = radius₂
270mul_imm_float                  $0 *= 0x42480000 (50.0)
271copy_slot_unmasked             blur₁ = $0
272mul_imm_float                  $0 *= 0x3F000000 (0.5)
273copy_slot_unmasked             blurHalf = $0
274copy_2_slots_unmasked          $0..1 = coord
275copy_2_slots_unmasked          $2..3 = xy
276sub_2_floats                   $0..1 -= $2..3
277copy_2_slots_unmasked          $2..3 = $0..1
278dot_2_floats                   $0 = dot($0..1, $2..3)
279sqrt_float                     $0 = sqrt($0)
280copy_slot_unmasked             d = $0
281splat_2_constants              $0..1 = 0x3F800000 (1.0)
282copy_slot_unmasked             $2 = blurHalf
283sub_float                      $1 -= $2
284copy_slot_unmasked             $2 = blurHalf
285add_imm_float                  $2 += 0x3F800000 (1.0)
286copy_slot_unmasked             $3 = d
287copy_slot_unmasked             $4 = radius₂
288div_float                      $3 /= $4
289smoothstep_n_floats            $1 = smoothstep($1, $2, $3)
290sub_float                      $0 -= $1
291label                          label 0x0000000B
292label                          label 0x0000000A
293copy_slot_unmasked             g2 = $0
294splat_2_constants              resolution = 0x3F4CCCCD (0.8)
295copy_2_slots_unmasked          coord = uv₁
296copy_2_uniforms                center₁ = in_tCircle3
297copy_2_uniforms                rotation = in_tRotation3
298copy_constant                  cell_diameter = 0x3E8CCCCD (0.275)
299copy_2_slots_unmasked          $2..3 = rotation
300bitwise_xor_imm_int            $3 ^= 0x80000000
301copy_slot_unmasked             $4 = rotation(1)
302copy_slot_unmasked             $5 = rotation(0)
303copy_2_slots_unmasked          $6..7 = center₁
304copy_2_slots_unmasked          $8..9 = coord
305sub_2_floats                   $6..7 -= $8..9
306matrix_multiply_2              mat1x2($0..1) = mat2x2($2..5) * mat1x2($6..7)
307copy_2_slots_unmasked          $2..3 = center₁
308add_2_floats                   $0..1 += $2..3
309copy_2_slots_unmasked          coord = $0..1
310copy_slot_unmasked             $2 = cell_diameter
311copy_slot_unmasked             $3 = $2
312mod_2_floats                   $0..1 = mod($0..1, $2..3)
313copy_2_slots_unmasked          $2..3 = resolution
314div_2_floats                   $0..1 /= $2..3
315copy_2_slots_unmasked          coord = $0..1
316copy_slot_unmasked             $0 = cell_diameter
317copy_slot_unmasked             $1 = resolution(1)
318div_float                      $0 /= $1
319mul_imm_float                  $0 *= 0x3F000000 (0.5)
320copy_slot_unmasked             normal_radius = $0
321mul_imm_float                  $0 *= 0x3F266666 (0.65)
322copy_slot_unmasked             radius₂ = $0
323copy_slot_unmasked             $0 = normal_radius
324copy_slot_unmasked             $1 = $0
325copy_2_slots_unmasked          xy = $0..1
326copy_slot_unmasked             $0 = radius₂
327mul_imm_float                  $0 *= 0x42480000 (50.0)
328copy_slot_unmasked             blur₁ = $0
329mul_imm_float                  $0 *= 0x3F000000 (0.5)
330copy_slot_unmasked             blurHalf = $0
331copy_2_slots_unmasked          $0..1 = coord
332copy_2_slots_unmasked          $2..3 = xy
333sub_2_floats                   $0..1 -= $2..3
334copy_2_slots_unmasked          $2..3 = $0..1
335dot_2_floats                   $0 = dot($0..1, $2..3)
336sqrt_float                     $0 = sqrt($0)
337copy_slot_unmasked             d = $0
338splat_2_constants              $0..1 = 0x3F800000 (1.0)
339copy_slot_unmasked             $2 = blurHalf
340sub_float                      $1 -= $2
341copy_slot_unmasked             $2 = blurHalf
342add_imm_float                  $2 += 0x3F800000 (1.0)
343copy_slot_unmasked             $3 = d
344copy_slot_unmasked             $4 = radius₂
345div_float                      $3 /= $4
346smoothstep_n_floats            $1 = smoothstep($1, $2, $3)
347sub_float                      $0 -= $1
348label                          label 0x0000000D
349label                          label 0x0000000C
350copy_slot_unmasked             g3 = $0
351copy_slot_unmasked             $0 = g1
352copy_slot_unmasked             $1 = g1
353mul_float                      $0 *= $1
354copy_slot_unmasked             $1 = g2
355add_float                      $0 += $1
356copy_slot_unmasked             $1 = g3
357sub_float                      $0 -= $1
358mul_imm_float                  $0 *= 0x3F000000 (0.5)
359copy_slot_unmasked             v = $0
360mul_imm_float                  $0 *= 0x3F4CCCCD (0.8)
361add_imm_float                  $0 += 0x3EE66666 (0.45)
362max_imm_float                  $0 = max($0, 0)
363min_imm_float                  $0 = min($0, 0x3F800000 (1.0))
364label                          label 0x00000007
365copy_slot_unmasked             turbulence = $0
366copy_uniform                   t₁ = in_noisePhase
367copy_2_slots_unmasked          _0_n = densityUv
368copy_2_slots_unmasked          $0..1 = _0_n
369copy_2_immutables_unmasked     $2..3 = i3..4 [0x40ACC227 (5.3987), 0x40AE25AF (5.4421)]
370mul_2_floats                   $0..1 *= $2..3
371copy_2_slots_unmasked          $2..3 = $0..1
372floor_2_floats                 $2..3 = floor($2..3)
373sub_2_floats                   $0..1 -= $2..3
374copy_2_slots_unmasked          _0_n = $0..1
375copy_2_slots_unmasked          $2..3 = _0_n
376swizzle_2                      $2..3 = ($2..3).yx
377copy_2_slots_unmasked          $4..5 = _0_n
378copy_2_immutables_unmasked     $6..7 = i5..6 [0x41AC47E3 (21.5351), 0x416504EA (14.3137)]
379add_2_floats                   $4..5 += $6..7
380dot_2_floats                   $2 = dot($2..3, $4..5)
381copy_slot_unmasked             $3 = $2
382add_2_floats                   $0..1 += $2..3
383copy_2_slots_unmasked          _0_n = $0..1
384mul_float                      $0 *= $1
385copy_slot_unmasked             _1_xy = $0
386mul_imm_float                  $0 *= 0x42BEDC85 (95.4307)
387copy_slot_unmasked             $1 = $0
388floor_float                    $1 = floor($1)
389sub_float                      $0 -= $1
390copy_slot_unmasked             $1 = _1_xy
391mul_imm_float                  $1 *= 0x42961966 (75.04961)
392copy_slot_unmasked             $2 = $1
393floor_float                    $2 = floor($2)
394sub_float                      $1 -= $2
395add_float                      $0 += $1
396add_imm_float                  $0 += 0xBF800000 (-1.0)
397copy_slot_unmasked             n = $0
398splat_2_constants              s, i = 0
399label                          label 0x00000010
400copy_slot_unmasked             $0 = i
401mul_imm_float                  $0 *= 0x3DCCCCCD (0.1)
402copy_slot_unmasked             l = $0
403add_imm_float                  $0 += 0x3D4CCCCD (0.05)
404copy_slot_unmasked             h = $0
405copy_slot_unmasked             $0 = t₁
406copy_slot_unmasked             $1 = i
407mul_imm_float                  $1 *= 0x3EB33333 (0.35)
408add_float                      $0 += $1
409mul_imm_float                  $0 *= 0x40490FDB (3.14159274)
410sin_float                      $0 = sin($0)
411copy_slot_unmasked             o = $0
412copy_slot_unmasked             $0 = n
413copy_slot_unmasked             $1 = o
414add_float                      $0 += $1
415copy_slot_unmasked             _2_v = $0
416copy_slot_unmasked             $0 = s
417copy_slot_unmasked             $1 = l
418copy_slot_unmasked             $2 = _2_v
419cmple_float                    $1 = lessThanEqual($1, $2)
420bitwise_and_imm_int            $1 &= 0x3F800000
421copy_constant                  $2 = 0x3F800000 (1.0)
422copy_slot_unmasked             $3 = h
423copy_slot_unmasked             $4 = _2_v
424cmple_float                    $3 = lessThanEqual($3, $4)
425bitwise_and_imm_int            $3 &= 0x3F800000
426sub_float                      $2 -= $3
427mul_float                      $1 *= $2
428add_float                      $0 += $1
429copy_slot_unmasked             s = $0
430add_imm_float                  i += 0x3F800000 (1.0)
431copy_slot_unmasked             $0 = i
432cmplt_imm_float                $0 = lessThan($0, 0x40800000 (4.0))
433stack_rewind
434branch_if_no_active_lanes_eq   branch -35 (label 16 at #388) if no lanes of $0 == 0
435label                          label 0x0000000F
436copy_slot_unmasked             $0 = s
437max_imm_float                  $0 = max($0, 0)
438min_imm_float                  $0 = min($0, 0x3F800000 (1.0))
439copy_uniform                   $1 = in_sparkleColor(3)
440mul_float                      $0 *= $1
441label                          label 0x0000000E
442copy_slot_unmasked             $1 = ring
443mul_float                      $0 *= $1
444copy_slot_unmasked             $1 = alpha
445mul_float                      $0 *= $1
446copy_slot_unmasked             $1 = turbulence
447mul_float                      $0 *= $1
448copy_slot_unmasked             sparkleAlpha = $0
449copy_slot_unmasked             $0 = fadeIn
450copy_constant                  $1 = 0x3F800000 (1.0)
451copy_slot_unmasked             $2 = fadeOutRipple
452sub_float                      $1 -= $2
453min_float                      $0 = min($0, $1)
454copy_slot_unmasked             fade = $0
455copy_uniform                   $0 = in_maxRadius
456copy_slot_unmasked             $1 = scaleIn
457mul_float                      $0 *= $1
458copy_slot_unmasked             radius₁ = $0
459copy_constant                  blur₁ = 0x3F800000 (1.0)
460copy_slot_unmasked             $0 = blur₁
461mul_imm_float                  $0 *= 0x3F000000 (0.5)
462copy_slot_unmasked             blurHalf = $0
463copy_2_slots_unmasked          $0..1 = p
464copy_2_slots_unmasked          $2..3 = center
465sub_2_floats                   $0..1 -= $2..3
466copy_2_slots_unmasked          $2..3 = $0..1
467dot_2_floats                   $0 = dot($0..1, $2..3)
468sqrt_float                     $0 = sqrt($0)
469copy_slot_unmasked             d = $0
470splat_2_constants              $0..1 = 0x3F800000 (1.0)
471copy_slot_unmasked             $2 = blurHalf
472sub_float                      $1 -= $2
473copy_slot_unmasked             $2 = blurHalf
474add_imm_float                  $2 += 0x3F800000 (1.0)
475copy_slot_unmasked             $3 = d
476copy_slot_unmasked             $4 = radius₁
477div_float                      $3 /= $4
478smoothstep_n_floats            $1 = smoothstep($1, $2, $3)
479sub_float                      $0 -= $1
480label                          label 0x00000011
481copy_slot_unmasked             $1 = fade
482mul_float                      $0 *= $1
483copy_uniform                   $1 = in_color(3)
484mul_float                      $0 *= $1
485copy_slot_unmasked             waveAlpha = $0
486copy_3_uniforms                $0..2 = in_color(0..2)
487copy_slot_unmasked             $3 = waveAlpha
488swizzle_3                      $3..5 = ($3..5).xxx
489mul_3_floats                   $0..2 *= $3..5
490copy_slot_unmasked             waveColor(3) = waveAlpha
491copy_3_slots_unmasked          waveColor(0..2) = $0..2
492copy_4_uniforms                $0..3 = in_sparkleColor
493swizzle_3                      $3..5 = ($3..5).xxx
494mul_3_floats                   $0..2 *= $3..5
495copy_uniform                   sparkleColor(3) = in_sparkleColor(3)
496copy_3_slots_unmasked          sparkleColor(0..2) = $0..2
497copy_uniform                   $12 = in_hasMask
498cmpeq_imm_float                $12 = equal($12, 0x3F800000 (1.0))
499branch_if_no_active_lanes_eq   branch +10 (label 18 at #498) if no lanes of $12 == 0xFFFFFFFF
500copy_constant                  $0 = 0
501copy_2_slots_unmasked          $1..2 = p
502exchange_src                   swap(src.rgba, $1..4)
503invoke_shader                  invoke_shader 0
504exchange_src                   swap(src.rgba, $1..4)
505copy_slot_unmasked             $1 = $4
506cmplt_float                    $0 = lessThan($0, $1)
507bitwise_and_imm_int            $0 &= 0x3F800000
508jump                           jump +3 (label 19 at #500)
509label                          label 0x00000012
510copy_constant                  $0 = 0x3F800000 (1.0)
511label                          label 0x00000013
512copy_slot_unmasked             mask = $0
513copy_slot_unmasked             $0 = sparkleAlpha
514swizzle_4                      $0..3 = ($0..3).xxxx
515copy_4_slots_unmasked          $4..7 = waveColor
516copy_4_slots_unmasked          $8..11 = sparkleColor
517mix_4_floats                   $0..3 = mix($4..7, $8..11, $0..3)
518copy_slot_unmasked             $4 = mask
519swizzle_4                      $4..7 = ($4..7).xxxx
520mul_4_floats                   $0..3 *= $4..7
521load_src                       src.rgba = $0..3
522