New issue
Advanced search Search tips

Issue 837368 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Jul 30
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Feature



Sign in to add a comment

Worklet animations should have their own last_tick_time_

Project Member Reported by yigu@chromium.org, Apr 26 2018

Issue description

Currently we keep last_tick_time per keyframe effect which is fine for regular animations because the monotonic time is unique per ticking. For worklet animations, it should be stored per keyframe model because it relies on local time instead of monotonic time.
 
Thinking about this some more I feel we should hold worklet animations to the same contract i.e., if input time has not changed we should not expect any changes in the output (in their case local time is the output).

There is however still a bug in worklet animation time plumbing which needs to get fixed.  At the moment cc::WorkletAnimation is always feeding wall time into its child keyframes during tick even if it is a scroll linked animation. We 
should correct this.

In another word, the value that worklet animation passes to  KeyframeEffect::Tick should match we return from WorkletAnimation::CurrentTime() but they currently do not. 


Components: Blink>Animation
Status: Fixed (was: Assigned)
Marking as fixed. WorkletAnimation is now putting its keyframe at Pause state which means the monotonic time is ignored. 

Internally, WorkletAnimation has a last_current_time now which is used to optimize its ticking logic.

Sign in to add a comment