Support animation on the compositor for individual transform, including animation test cases
Categories
(Core :: DOM: Animation, enhancement, P3)
Tracking
()
Tracking | Status | |
---|---|---|
firefox68 | --- | fixed |
People
(Reporter: u459114, Assigned: boris)
References
(Blocks 2 open bugs)
Details
Attachments
(9 files, 4 obsolete files)
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details |
Updated•7 years ago
|
Updated•7 years ago
|
Comment 3•6 years ago
|
||
Assignee | ||
Updated•6 years ago
|
Comment 4•6 years ago
|
||
Assignee | ||
Updated•6 years ago
|
Assignee | ||
Comment 5•6 years ago
|
||
Assignee | ||
Comment 6•6 years ago
|
||
Assignee | ||
Updated•6 years ago
|
Assignee | ||
Comment 7•6 years ago
|
||
Assignee | ||
Updated•6 years ago
|
Assignee | ||
Comment 8•6 years ago
|
||
Assignee | ||
Comment 9•6 years ago
|
||
LayerAnimationInfo knows the transform-like properties we support on
the compositor thread, so we should use it in HasTransformAnimation().
Depends on D19634
Assignee | ||
Comment 10•6 years ago
|
||
These functions set frame bits or update change hint for layer
animations on transform-like properties, so we should also take
other transform-like properties into account.
Updated•6 years ago
|
Assignee | ||
Comment 11•6 years ago
|
||
Sometimes, we want to set the performance warning by a property set, so
add a new function for it.
Assignee | ||
Updated•6 years ago
|
Assignee | ||
Comment 12•6 years ago
|
||
It seems this function uses some FFIs to generate the AnimationValue,
We could move it into AnimationValue class, although what we really need is
RefPtr<ServoAnimationValue>.
Maybe we should use AnimationValue everywhere, instead of the Servo type.
This could be done by other patches.
Assignee | ||
Comment 13•6 years ago
|
||
Both layers and web-render use this function, so we factor it out.
Depends on D22562
Assignee | ||
Comment 14•6 years ago
|
||
I separate two parts while implementing compositor animations for
individual transforms. The first part is on the sender side of transactions.
Basically, we have to convert the individual transforms to the proper
types in layers::Animations. So this patch is focus on SetAnimatable and
the definition in LayersMessages.
Depends on D22563
Assignee | ||
Comment 15•6 years ago
|
||
This is the 2nd part of the implementation. We focus on the compositor side
(i.e. received side of transactions). Basically, we convert the list of
layers::Animation into a list of SampleAnimationData
, which is an
intermediate value. And then use this list to do interpolation for each
property in SampleAnimationForEachNode
, which will return a list of
RefPtr<RawServoAnimationValue>
.
Depends on D22564
Updated•6 years ago
|
Assignee | ||
Comment 16•6 years ago
|
||
Now, its time to let individual transform run on the compositor thread.
Depends on D19636
Assignee | ||
Comment 17•6 years ago
|
||
Drop the hack which prevents individual transform running on the
compositor thread.
Depends on D22566
Assignee | ||
Comment 18•6 years ago
|
||
This also adds the missing preference in test_transition_per_property.html.
Depends on D22567
Updated•6 years ago
|
Updated•6 years ago
|
Comment 19•6 years ago
|
||
Comment on attachment 9046822 [details]
Bug 1425837 - Part 9: Set performance warning by a property set.
Revision D19633 was moved to bug 1533594. Setting attachment 9046822 [details] to obsolete.
Assignee | ||
Comment 20•6 years ago
|
||
This is the pre-patch for the next patch (i.e. Part 3-3).
The original implementation about "setting animations" is a little bit hard
to read. In SetAnimations()
, we create a new intermediate data,
AnimData
, and we mutate the original animations. And then iterate this
mutated animations & intermediate data for sampling. In this bug, we are
planning to group the AnimData as a useful data structure for supporting
multiple properties transform-like animations, so it seems the structure
of original animations may be hard to use after that. Therefore,
we decide to do some reworks on this:
First, we do renames,
- InfalliableTArray to nsTArray. (They are the same.)
- AnimData to PropertyAnimation.
- SetAnimations() to ExtractAnimations(), which returns
nsTArray<PropertyAnimationGroup>. Each entry in the array is for one
property. In this patch, there is only one entry. We will extend this
to multiple entries in the next patch.
And then rework ExtractAnimations()
, which stores all the necessary data
in PropertyAnimationGroup
. For WR, we store this in
CompositorAnimationStorage
. For non-WR, we store it in AnimationInfo
.
So we can just use this organized data structure for supporting multiple
properties animations. (See the next patch.)
Depends on D22564
Updated•6 years ago
|
Updated•6 years ago
|
Updated•6 years ago
|
Updated•6 years ago
|
Updated•6 years ago
|
Updated•6 years ago
|
Updated•6 years ago
|
Updated•6 years ago
|
Updated•6 years ago
|
Assignee | ||
Comment 21•6 years ago
|
||
try: https://treeherder.mozilla.org/#/jobs?repo=try&revision=c3a636faee85571c0c96599b96b297bfb7f8b35a
Will land these patches after the soft freeze.
Thanks for your reviews, Brian and Hiro. :)
Assignee | ||
Comment 22•6 years ago
|
||
Comment 23•6 years ago
|
||
Updated•6 years ago
|
Comment 24•6 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/07a1ab95598e
https://hg.mozilla.org/mozilla-central/rev/5d416b07c9b9
https://hg.mozilla.org/mozilla-central/rev/6c55b82deb9b
https://hg.mozilla.org/mozilla-central/rev/b27d18cccc62
https://hg.mozilla.org/mozilla-central/rev/067a9dac440a
https://hg.mozilla.org/mozilla-central/rev/066e7dffe044
https://hg.mozilla.org/mozilla-central/rev/af39dc228d19
https://hg.mozilla.org/mozilla-central/rev/9fe743aa6c94
https://hg.mozilla.org/mozilla-central/rev/08126c1f53fe
Comment 25•6 years ago
|
||
Comment 26•6 years ago
|
||
bugherder |
Assignee | ||
Updated•5 years ago
|
Description
•