Bug 250970 - [web-animations] Threaded animation resolution
Summary: [web-animations] Threaded animation resolution
Status: NEW
Alias: None
Product: WebKit
Classification: Unclassified
Component: Animations (show other bugs)
Version: Safari Technology Preview
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Nobody
URL:
Keywords: InRadar
Depends on: 268607 250971 250972 250973 250975 251156 253016 253017 253022 253057 253058 253059 253061 253154 253238 253240 253242 253243 253312 253315 253317 253318 253320 253564 253565 253567 253568 253569 255368 264394 264499 264747 264756 264796 265456 265457 265458 265459 265880 265959 266026 268282 268534 268717 268738 268803 269146 269226 269236 269278 269279 269449 269451 269453 269503 269562 269563 269568 269591 269592
Blocks: 229399
  Show dependency treegraph
 
Reported: 2023-01-22 04:33 PST by Antoine Quint
Modified: 2024-07-05 11:22 PDT (History)
9 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Antoine Quint 2023-01-22 04:33:03 PST
In order for the animation code to be aligned in terms of features between animations running entirely by modifying RenderStyle ("software" animations) and animations running by modifying CALayer properties ("accelerated animations), we should run accelerated animations in a separate thread using the same blending code used for software animations and stop relying on Core Animation to perform the animations.
Comment 1 Antoine Quint 2023-01-22 04:33:38 PST
rdar://100595691
Comment 2 Antoine Quint 2023-01-23 00:14:36 PST
The expected benefits of this work will be that the following animation types that weren't accelerated will now benefit from acceleration:

- CSS Motion Path properties (`offset` et al)
- additive and accumulating composition
- steps() timing function
- cubic-bezier() timing functions with values outside of the 0-1 range
- playbackRate != 1


And going forward this will also mean that adding features to our Web Animations codebase will benefit all types of animations, both software and accelerated, with minimal effort.

We should also be able to have better control over the timing at which animation frames are resolved and address some sync issues between software and accelerated animations.