So basically, this is for compositor animations. We introduce `groupAnims` because we'd like to compute the transform matrix on the compositor thread. Basically, this is for the [transform-like properties](https://searchfox.org/mozilla-central/rev/a18a7c526cf3c531f2fc24db4f0dffbc16290a7e/layout/style/nsCSSPropertyIDSet.h#103-110): 1. transform 2. translate 3. rotate 4. scale 5. offset-* We [do interpolation](https://searchfox.org/mozilla-central/rev/a18a7c526cf3c531f2fc24db4f0dffbc16290a7e/gfx/layers/AnimationHelper.cpp#284-290) of these properties on the compositor thread, and then [compute a final transform matrix](https://searchfox.org/mozilla-central/rev/a18a7c526cf3c531f2fc24db4f0dffbc16290a7e/gfx/layers/AnimationHelper.cpp#602). So if any of these properties have animations, we have to send them together to the compositor. So if any of them use the value of custom properties which are animating, we have to send all of them to the compositor. So I expect we may have to redesign this function, including update the IPC for custom properties. (Or not if it is possible to combine the animations of the custom properties together with the transform properties.) For now, it's OK with me to disable compositor animations if any of the transform-like properties are using the value of custom properties, so we can keep using `nsCSSPropertyID` on the compositor (i.e. the property usage in functions of AnimationInfo.cpp and AnimationHelper.cpp).
Bug 1869475 Comment 1 Edit History
Note: The actual edited comment in the bug view page will always show the original commenter’s name and original timestamp.
So basically, this is for compositor animations. We introduce `groupAnims` because we'd like to compute the transform matrix on the compositor thread. Basically, this is for the [transform-like properties](https://searchfox.org/mozilla-central/rev/a18a7c526cf3c531f2fc24db4f0dffbc16290a7e/layout/style/nsCSSPropertyIDSet.h#103-110): 1. transform 2. translate 3. rotate 4. scale 5. offset-* We [do interpolation](https://searchfox.org/mozilla-central/rev/a18a7c526cf3c531f2fc24db4f0dffbc16290a7e/gfx/layers/AnimationHelper.cpp#284-290) of these properties on the compositor thread, and then [compute a final transform matrix](https://searchfox.org/mozilla-central/rev/a18a7c526cf3c531f2fc24db4f0dffbc16290a7e/gfx/layers/AnimationHelper.cpp#602). If any of these properties have animations, we have to send them together to the compositor. So if any of them use the value of custom properties which are animating, we have to send all of them to the compositor. So I expect we may have to redesign this function, including update the IPC for custom properties. (Or not if it is possible to combine the animations of the custom properties together with the transform properties.) For now, it's OK with me to disable compositor animations if any of the transform-like properties are using the value of custom properties, so we can keep using `nsCSSPropertyID` on the compositor (i.e. the property usage in functions of AnimationInfo.cpp and AnimationHelper.cpp).
So basically, this is for compositor animations. We introduce `groupAnims` because we'd like to compute the transform matrix on the compositor thread. Basically, this is for the [transform-like properties](https://searchfox.org/mozilla-central/rev/a18a7c526cf3c531f2fc24db4f0dffbc16290a7e/layout/style/nsCSSPropertyIDSet.h#103-110): 1. transform 2. translate 3. rotate 4. scale 5. offset-* We [do interpolation](https://searchfox.org/mozilla-central/rev/a18a7c526cf3c531f2fc24db4f0dffbc16290a7e/gfx/layers/AnimationHelper.cpp#284-290) of these properties on the compositor thread, and then [compute a final transform matrix](https://searchfox.org/mozilla-central/rev/a18a7c526cf3c531f2fc24db4f0dffbc16290a7e/gfx/layers/AnimationHelper.cpp#602). If any of these properties have animations, we have to send them together to the compositor. So if any of them use the value of custom properties which are animating, we have to send all of them to the compositor as well. So I expect we may have to redesign this function, including update the IPC for custom properties. (Or not if it is possible to combine the animations of the custom properties together with the transform properties.) For now, it's OK with me to disable compositor animations if any of the transform-like properties are using the value of custom properties, so we can keep using `nsCSSPropertyID` on the compositor (i.e. the property usage in functions of AnimationInfo.cpp and AnimationHelper.cpp).
So basically, this is for compositor animations. We introduce `groupAnims` because we'd like to compute the transform matrix on the compositor thread. Basically, this is for the [transform-like properties](https://searchfox.org/mozilla-central/rev/a18a7c526cf3c531f2fc24db4f0dffbc16290a7e/layout/style/nsCSSPropertyIDSet.h#103-110): 1. transform 2. translate 3. rotate 4. scale 5. offset-* We [do interpolation](https://searchfox.org/mozilla-central/rev/a18a7c526cf3c531f2fc24db4f0dffbc16290a7e/gfx/layers/AnimationHelper.cpp#284-290) of these properties on the compositor thread, and then [compute a final transform matrix](https://searchfox.org/mozilla-central/rev/a18a7c526cf3c531f2fc24db4f0dffbc16290a7e/gfx/layers/AnimationHelper.cpp#602). If any of these properties have animations, we have to send them together to the compositor. So if any of them use the value of custom properties which are animating, we have to send all of them to the compositor as well. Therefore, I expect we may have to re-design this function, including the update of the IPC, for custom properties. (Or maybe not if it is possible to combine the animations of the custom properties together with the transform properties.) For now, it's OK with me to disable compositor animations if any of the transform-like properties are using the value of custom properties, so we can keep using `nsCSSPropertyID` on the compositor (i.e. the property usage in functions of AnimationInfo.cpp and AnimationHelper.cpp).
So basically, this is for compositor animations. We introduce `groupAnims` because we'd like to compute the transform matrix on the compositor thread. Basically, this is for the [transform-like properties](https://searchfox.org/mozilla-central/rev/a18a7c526cf3c531f2fc24db4f0dffbc16290a7e/layout/style/nsCSSPropertyIDSet.h#103-110): 1. transform 2. translate 3. rotate 4. scale 5. offset-* We [do interpolation](https://searchfox.org/mozilla-central/rev/a18a7c526cf3c531f2fc24db4f0dffbc16290a7e/gfx/layers/AnimationHelper.cpp#284-290) of these properties on the compositor thread, and then [compute a final transform matrix](https://searchfox.org/mozilla-central/rev/a18a7c526cf3c531f2fc24db4f0dffbc16290a7e/gfx/layers/AnimationHelper.cpp#602). If any of these properties have animations, we have to send them together to the compositor. So if any of them use the value of custom properties which are animating, we have to send all of them to the compositor as well. Therefore, I expect we may have to re-design this function, including the update of the IPC, for custom properties. (Or maybe not if it is possible to combine the animations of the custom properties together with the transform properties before sending them through IPC.) For now, it's OK with me to disable compositor animations if any of the transform-like properties are using the value of custom properties, so we can keep using `nsCSSPropertyID` on the compositor (i.e. the property usage in functions of AnimationInfo.cpp and AnimationHelper.cpp).
So basically, this is for compositor animations. We introduce `groupAnims` because we'd like to compute the transform matrix on the compositor thread. For more specifically, this is for the [transform-like properties](https://searchfox.org/mozilla-central/rev/a18a7c526cf3c531f2fc24db4f0dffbc16290a7e/layout/style/nsCSSPropertyIDSet.h#103-110): 1. transform 2. translate/rotate/scale 3. offset-* We [do interpolation](https://searchfox.org/mozilla-central/rev/a18a7c526cf3c531f2fc24db4f0dffbc16290a7e/gfx/layers/AnimationHelper.cpp#284-290) of these properties on the compositor thread, and then [compute a final transform matrix](https://searchfox.org/mozilla-central/rev/a18a7c526cf3c531f2fc24db4f0dffbc16290a7e/gfx/layers/AnimationHelper.cpp#602). If any of these properties have animations, we have to send them together to the compositor. So if any of them use the value of custom properties which are animating, we have to send all of them to the compositor as well. Therefore, I expect we may have to re-design this function, including the update of the IPC, for custom properties. (Or maybe not if it is possible to combine the animations of the custom properties together with the transform properties before sending them through IPC.) For now, it's OK with me to disable compositor animations if any of the transform-like properties are using the value of custom properties, so we can keep using `nsCSSPropertyID` on the compositor (i.e. the property usage in functions of AnimationInfo.cpp and AnimationHelper.cpp).