New issue
Advanced search Search tips

Issue 839341 link

Starred by 3 users

Issue metadata

Status: Fixed
Owner:
Closed: Sep 13
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Task

Blocking:
issue 430155
issue 881868



Sign in to add a comment

Animation Worklet - Support non-composited effects and scroll sources (i.e., main thread)

Project Member Reported by smcgruer@chromium.org, May 3 2018

Issue description

Currently WorkletAnimations can only be run from the compositor thread, which requires their targets, as well as the target of any ScrollTimeline they use, to be composited.

It will be necessary for a full release to have fallback behavior such that WorkletAnimations can be controlled/run on the main thread, e.g. for properties that cannot be animated compositor-side.
 
Summary: Animation Worklet - Support non-composited effects and scroll sources (i.e., main thread) (was: Animation Worklet - Main thread support)
Cc: yigu@chromium.org
 Issue 880517  has been merged into this issue.
Owner: yigu@chromium.org
Blocking: 881868
Status: Assigned (was: Available)
Project Member

Comment 6 by bugdroid1@chromium.org, Sep 13

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/68ec17c596e98e712785fd51d5581931d090d710

commit 68ec17c596e98e712785fd51d5581931d090d710
Author: Yi Gu <yigu@chromium.org>
Date: Thu Sep 13 03:25:08 2018

[animation-worklet] Animate all properties on the worklet

Current implementation of Animation Worklet only supports animation of
accelerated properties, e.g. opacity, transform which can be mutated on
the compositor thread. For MVP, we should support animation of other
non-accelerated properties within animation worklet. Given that the
compositor is incapable of handling these properties, we plan to animate
them on the worklet via the main thread.

Design doc:
https://docs.google.com/document/d/1Pn9azM2qUgoPJ3rqqZET8qEoTInHnCszM-6FCG9nTsA/edit?usp=sharing

Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: Iaf0d3a3b610320d05b5b5042dd583f18f25add6a
Bug:  839341 
Reviewed-on: https://chromium-review.googlesource.com/1170854
Reviewed-by: Stephen McGruer <smcgruer@chromium.org>
Reviewed-by: Ian Vollick <vollick@chromium.org>
Reviewed-by: Majid Valipour <majidvp@chromium.org>
Commit-Queue: Yi Gu <yigu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#590908}
[add] https://crrev.com/68ec17c596e98e712785fd51d5581931d090d710/third_party/WebKit/LayoutTests/virtual/threaded/fast/animationworklet/animate-non-accelerated-property-expected.txt
[add] https://crrev.com/68ec17c596e98e712785fd51d5581931d090d710/third_party/WebKit/LayoutTests/virtual/threaded/fast/animationworklet/animate-non-accelerated-property.html
[add] https://crrev.com/68ec17c596e98e712785fd51d5581931d090d710/third_party/WebKit/LayoutTests/virtual/threaded/fast/animationworklet/cancel-non-accelerated-property-expected.txt
[add] https://crrev.com/68ec17c596e98e712785fd51d5581931d090d710/third_party/WebKit/LayoutTests/virtual/threaded/fast/animationworklet/cancel-non-accelerated-property.html
[modify] https://crrev.com/68ec17c596e98e712785fd51d5581931d090d710/third_party/blink/renderer/core/animation/document_animations.cc
[modify] https://crrev.com/68ec17c596e98e712785fd51d5581931d090d710/third_party/blink/renderer/core/animation/worklet_animation_base.h
[modify] https://crrev.com/68ec17c596e98e712785fd51d5581931d090d710/third_party/blink/renderer/core/animation/worklet_animation_controller.cc
[modify] https://crrev.com/68ec17c596e98e712785fd51d5581931d090d710/third_party/blink/renderer/core/animation/worklet_animation_controller.h
[modify] https://crrev.com/68ec17c596e98e712785fd51d5581931d090d710/third_party/blink/renderer/core/exported/web_view_impl.cc
[modify] https://crrev.com/68ec17c596e98e712785fd51d5581931d090d710/third_party/blink/renderer/core/exported/web_view_impl.h
[modify] https://crrev.com/68ec17c596e98e712785fd51d5581931d090d710/third_party/blink/renderer/core/frame/web_frame_widget_base.h
[modify] https://crrev.com/68ec17c596e98e712785fd51d5581931d090d710/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc
[modify] https://crrev.com/68ec17c596e98e712785fd51d5581931d090d710/third_party/blink/renderer/core/frame/web_frame_widget_impl.h
[modify] https://crrev.com/68ec17c596e98e712785fd51d5581931d090d710/third_party/blink/renderer/core/frame/web_view_frame_widget.cc
[modify] https://crrev.com/68ec17c596e98e712785fd51d5581931d090d710/third_party/blink/renderer/core/frame/web_view_frame_widget.h
[modify] https://crrev.com/68ec17c596e98e712785fd51d5581931d090d710/third_party/blink/renderer/modules/animationworklet/animation_worklet_proxy_client_impl.cc
[modify] https://crrev.com/68ec17c596e98e712785fd51d5581931d090d710/third_party/blink/renderer/modules/animationworklet/animation_worklet_proxy_client_impl.h
[modify] https://crrev.com/68ec17c596e98e712785fd51d5581931d090d710/third_party/blink/renderer/modules/animationworklet/worklet_animation.cc
[modify] https://crrev.com/68ec17c596e98e712785fd51d5581931d090d710/third_party/blink/renderer/modules/animationworklet/worklet_animation.h
[modify] https://crrev.com/68ec17c596e98e712785fd51d5581931d090d710/third_party/blink/renderer/platform/BUILD.gn
[modify] https://crrev.com/68ec17c596e98e712785fd51d5581931d090d710/third_party/blink/renderer/platform/graphics/compositor_mutator_client.cc
[modify] https://crrev.com/68ec17c596e98e712785fd51d5581931d090d710/third_party/blink/renderer/platform/graphics/compositor_mutator_client.h
[add] https://crrev.com/68ec17c596e98e712785fd51d5581931d090d710/third_party/blink/renderer/platform/graphics/main_thread_mutator_client.cc
[add] https://crrev.com/68ec17c596e98e712785fd51d5581931d090d710/third_party/blink/renderer/platform/graphics/main_thread_mutator_client.h
[add] https://crrev.com/68ec17c596e98e712785fd51d5581931d090d710/third_party/blink/renderer/platform/graphics/mutator_client.h
[rename] https://crrev.com/68ec17c596e98e712785fd51d5581931d090d710/third_party/blink/renderer/platform/graphics/worklet_mutator_impl.cc
[rename] https://crrev.com/68ec17c596e98e712785fd51d5581931d090d710/third_party/blink/renderer/platform/graphics/worklet_mutator_impl.h
[rename] https://crrev.com/68ec17c596e98e712785fd51d5581931d090d710/third_party/blink/renderer/platform/graphics/worklet_mutator_impl_test.cc

Status: Fixed (was: Assigned)
Project Member

Comment 8 by bugdroid1@chromium.org, Sep 15

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/b61d48d62c814865733eeb3b0a360e83ccf5ef57

commit b61d48d62c814865733eeb3b0a360e83ccf5ef57
Author: Yi Gu <yigu@chromium.org>
Date: Sat Sep 15 04:09:12 2018

Update some 'compositor' prefix in mutator related APIs to 'worklet'

There are some APIs like CompositorMutatorImpl, CompositorAnimator that
are out of date due to the recent change which introduced mutating
animations via the main thread.

In addition, using |Animator| was an unfortunate mistake since we have
an animator concept elsewhere (an in the spec) that is different.

Proposed changes:
CompositorMutator -> AnimationWorkletMutatorDispatcher
WorkletMutatorImpl -> AnimationWorkletMutatorDispatcherImpl
CompositorAnimator -> AnimationWorkletMutator
CompositorMutatorInput[Output]State -> AnimtionWorkletDispatcherInput[Output]

Bug:  839341 ,  883922 
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: Ic97a125d021ec2a62174d897c9bf67b522130881
Reviewed-on: https://chromium-review.googlesource.com/1224494
Commit-Queue: Yi Gu <yigu@chromium.org>
Reviewed-by: Stephen McGruer <smcgruer@chromium.org>
Reviewed-by: Jeremy Roman <jbroman@chromium.org>
Reviewed-by: Majid Valipour <majidvp@chromium.org>
Cr-Commit-Position: refs/heads/master@{#591573}
[modify] https://crrev.com/b61d48d62c814865733eeb3b0a360e83ccf5ef57/cc/animation/animation_host.cc
[modify] https://crrev.com/b61d48d62c814865733eeb3b0a360e83ccf5ef57/cc/animation/animation_host_unittest.cc
[modify] https://crrev.com/b61d48d62c814865733eeb3b0a360e83ccf5ef57/cc/test/mock_layer_tree_mutator.h
[modify] https://crrev.com/b61d48d62c814865733eeb3b0a360e83ccf5ef57/cc/trees/layer_tree_mutator.h
[modify] https://crrev.com/b61d48d62c814865733eeb3b0a360e83ccf5ef57/third_party/blink/renderer/core/animation/worklet_animation_base.h
[modify] https://crrev.com/b61d48d62c814865733eeb3b0a360e83ccf5ef57/third_party/blink/renderer/core/animation/worklet_animation_controller.cc
[modify] https://crrev.com/b61d48d62c814865733eeb3b0a360e83ccf5ef57/third_party/blink/renderer/core/animation/worklet_animation_controller.h
[modify] https://crrev.com/b61d48d62c814865733eeb3b0a360e83ccf5ef57/third_party/blink/renderer/core/exported/web_view_impl.cc
[modify] https://crrev.com/b61d48d62c814865733eeb3b0a360e83ccf5ef57/third_party/blink/renderer/core/exported/web_view_impl.h
[modify] https://crrev.com/b61d48d62c814865733eeb3b0a360e83ccf5ef57/third_party/blink/renderer/core/frame/web_frame_widget_base.h
[modify] https://crrev.com/b61d48d62c814865733eeb3b0a360e83ccf5ef57/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc
[modify] https://crrev.com/b61d48d62c814865733eeb3b0a360e83ccf5ef57/third_party/blink/renderer/core/frame/web_frame_widget_impl.h
[modify] https://crrev.com/b61d48d62c814865733eeb3b0a360e83ccf5ef57/third_party/blink/renderer/core/frame/web_view_frame_widget.cc
[modify] https://crrev.com/b61d48d62c814865733eeb3b0a360e83ccf5ef57/third_party/blink/renderer/core/frame/web_view_frame_widget.h
[modify] https://crrev.com/b61d48d62c814865733eeb3b0a360e83ccf5ef57/third_party/blink/renderer/modules/animationworklet/animation_worklet.h
[modify] https://crrev.com/b61d48d62c814865733eeb3b0a360e83ccf5ef57/third_party/blink/renderer/modules/animationworklet/animation_worklet_global_scope.cc
[modify] https://crrev.com/b61d48d62c814865733eeb3b0a360e83ccf5ef57/third_party/blink/renderer/modules/animationworklet/animation_worklet_global_scope.h
[modify] https://crrev.com/b61d48d62c814865733eeb3b0a360e83ccf5ef57/third_party/blink/renderer/modules/animationworklet/animation_worklet_proxy_client_impl.cc
[modify] https://crrev.com/b61d48d62c814865733eeb3b0a360e83ccf5ef57/third_party/blink/renderer/modules/animationworklet/animation_worklet_proxy_client_impl.h
[modify] https://crrev.com/b61d48d62c814865733eeb3b0a360e83ccf5ef57/third_party/blink/renderer/modules/animationworklet/animator.cc
[modify] https://crrev.com/b61d48d62c814865733eeb3b0a360e83ccf5ef57/third_party/blink/renderer/modules/animationworklet/animator.h
[modify] https://crrev.com/b61d48d62c814865733eeb3b0a360e83ccf5ef57/third_party/blink/renderer/modules/animationworklet/worklet_animation.cc
[modify] https://crrev.com/b61d48d62c814865733eeb3b0a360e83ccf5ef57/third_party/blink/renderer/modules/animationworklet/worklet_animation.h
[modify] https://crrev.com/b61d48d62c814865733eeb3b0a360e83ccf5ef57/third_party/blink/renderer/platform/BUILD.gn
[add] https://crrev.com/b61d48d62c814865733eeb3b0a360e83ccf5ef57/third_party/blink/renderer/platform/graphics/animation_worklet_mutator.h
[add] https://crrev.com/b61d48d62c814865733eeb3b0a360e83ccf5ef57/third_party/blink/renderer/platform/graphics/animation_worklet_mutator_dispatcher.h
[add] https://crrev.com/b61d48d62c814865733eeb3b0a360e83ccf5ef57/third_party/blink/renderer/platform/graphics/animation_worklet_mutator_dispatcher_impl.cc
[add] https://crrev.com/b61d48d62c814865733eeb3b0a360e83ccf5ef57/third_party/blink/renderer/platform/graphics/animation_worklet_mutator_dispatcher_impl.h
[add] https://crrev.com/b61d48d62c814865733eeb3b0a360e83ccf5ef57/third_party/blink/renderer/platform/graphics/animation_worklet_mutator_dispatcher_impl_test.cc
[add] https://crrev.com/b61d48d62c814865733eeb3b0a360e83ccf5ef57/third_party/blink/renderer/platform/graphics/animation_worklet_mutators_state.h
[delete] https://crrev.com/02eead20bf893a9734e906559e52429879bf48c8/third_party/blink/renderer/platform/graphics/compositor_animator.h
[delete] https://crrev.com/02eead20bf893a9734e906559e52429879bf48c8/third_party/blink/renderer/platform/graphics/compositor_animators_state.h
[delete] https://crrev.com/02eead20bf893a9734e906559e52429879bf48c8/third_party/blink/renderer/platform/graphics/compositor_mutator.h
[modify] https://crrev.com/b61d48d62c814865733eeb3b0a360e83ccf5ef57/third_party/blink/renderer/platform/graphics/compositor_mutator_client.cc
[modify] https://crrev.com/b61d48d62c814865733eeb3b0a360e83ccf5ef57/third_party/blink/renderer/platform/graphics/compositor_mutator_client.h
[modify] https://crrev.com/b61d48d62c814865733eeb3b0a360e83ccf5ef57/third_party/blink/renderer/platform/graphics/main_thread_mutator_client.cc
[modify] https://crrev.com/b61d48d62c814865733eeb3b0a360e83ccf5ef57/third_party/blink/renderer/platform/graphics/main_thread_mutator_client.h
[modify] https://crrev.com/b61d48d62c814865733eeb3b0a360e83ccf5ef57/third_party/blink/renderer/platform/graphics/mutator_client.h
[delete] https://crrev.com/02eead20bf893a9734e906559e52429879bf48c8/third_party/blink/renderer/platform/graphics/worklet_mutator_impl.cc
[delete] https://crrev.com/02eead20bf893a9734e906559e52429879bf48c8/third_party/blink/renderer/platform/graphics/worklet_mutator_impl.h
[delete] https://crrev.com/02eead20bf893a9734e906559e52429879bf48c8/third_party/blink/renderer/platform/graphics/worklet_mutator_impl_test.cc

Sign in to add a comment