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

Reply via email to