Teams‎ > ‎Animations Team‎ > ‎Highlights Archive‎ > ‎

March 2019

MARCH 2019

Chrome Animations Highlights

Degenerate case in computing sign of quaternions.

Step 1: Fix quaternion calculations.  Avoid degenerate edge cases.

Step 2: Support 2D matrix decomposition.

Improved 3D and 2D transform animations

We have continued to address 2D and 3D matrix decomposition issues that were causing transform animation and interop bugs. Above is one example but 16 more wpt tests are now passing in Chrome. The fact that there are two implementations (in Blink and Skia) of the same matrix operations is not helpful and we are considering options to consolidate them.

This work help identify inconsistencies and inaccuracies in the css-transform specification for which issues have been filed: 1, 2, 3, 4, 5.

Existing implementation using scroll events.

New “Buttery Smooth” impl using Animation Worklet and Scroll Timeline.

AMP Origin Trial Updates

AMP animation team has a near complete re-implementation of their scrollbound effect system using Scroll Timeline and Animation Worklet. They have identified gaps in the API which we collaborated on an action plan to address (mainly by proposing changes to Scroll Timeline API). It was also decided to extend the origin trial to allow AMP's new implementation to be gradually turned on for real users - which also helps us learn more about the performance of these features at scale.

Here is a recording of the demo. (To run locally enable experimental web platform feature flag and enable relevant AMP experiment using `AMP.toggleExperiment('chrome-animation-worklet')` in devtools console)

Viz Hit-Testing Surface Layer

Finch trial is showing improvement over previous Draw Quad version. We are seeing 14%/8%/5% improvements in hit test requests answered in the fast path on Windows/MacOS/Android, with 8% regressions on Linux (under investigation). Across all platforms, hit testing error rates are lower than 0.05%.

Compositor Touch Action

Finch trial is showing promising early results. ScrollBegin latency improves 5% @50pct and 13% @99pct. ScrollUpdate latency improves 1% @50pct and 3% @99pct.

Off-Main Paint Worklet

We made good progress by completing implementation of multiple sub-components: rasterization, raster-caching logic and lookup. Work is in progress for dispatch logic, and a new approach to share data between blink and cc for paint info (1, 2, 3, 4).

Animation Worklet

Animation Worklet is now fully asynchronous in CC with proper scheduling in place. With help from Microsoft engineers our tests have been upstreamed to web-platform-tests and most critical flakiness issues are resolved. Specification has been updated (1, 2, 3) and TAG review requested. Aiming to ship without Scroll Timeline in M75.

Chrome Animations Updates | March 2019