Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 8f9dae218112f4584491b2f8c573392a470378f8
https://github.com/WebKit/WebKit/commit/8f9dae218112f4584491b2f8c573392a470378f8
Author: Antoine Quint <[email protected]>
Date: 2024-02-16 (Fri, 16 Feb 2024)
Changed paths:
M Source/WebCore/animation/KeyframeEffect.cpp
M Source/WebCore/animation/KeyframeEffect.h
M Source/WebCore/platform/animation/AcceleratedEffect.cpp
M Source/WebCore/platform/animation/AcceleratedEffect.h
M Source/WebCore/rendering/RenderLayerBacking.cpp
Log Message:
-----------
[threaded-animation-resolution] avoid scheduling style resolution while
accelerated animations are entirely accelerated
https://bugs.webkit.org/show_bug.cgi?id=269592
Reviewed by Dean Jackson.
A key advantage of using accelerated animations is to avoid resolving styles on
each animation frame if all animated
properties are accelerated. We now ensure that we do this correctly for
threaded animation resolution.
To do so, we introduce a 1:1 link between a `KeyframeEffect` and its resulting
`AcceleratedEffect` should one qualify
to be created with all the constraints around acceleration interpolation. We
use a `WeakPtr<>` to establish this link,
ensuring that as soon as the accelerated effect is cleared, the link is broken.
With the accelerated representation of the keyframe effect now available, we
can return `true` under the method
`KeyframeEffect::ticksContinuouslyWhileActive()` if one exists and has no
disallowed properties set on it.
* Source/WebCore/animation/KeyframeEffect.cpp:
(WebCore::KeyframeEffect::ticksContinuouslyWhileActive const):
* Source/WebCore/animation/KeyframeEffect.h:
* Source/WebCore/platform/animation/AcceleratedEffect.cpp:
(WebCore::AcceleratedEffect::validateFilters):
* Source/WebCore/platform/animation/AcceleratedEffect.h:
(WebCore::AcceleratedEffect::disallowedProperties const):
* Source/WebCore/rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateAcceleratedEffectsAndBaseValues):
Canonical link: https://commits.webkit.org/274881@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes