Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 8f9dae218112f4584491b2f8c573392a470378f8 https://github.com/WebKit/WebKit/commit/8f9dae218112f4584491b2f8c573392a470378f8 Author: Antoine Quint <grao...@webkit.org> 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 webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes