Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: c421dabfa6f1f22869daa21a724ddf6f05d15061
      
https://github.com/WebKit/WebKit/commit/c421dabfa6f1f22869daa21a724ddf6f05d15061
  Author: Antoine Quint <grao...@webkit.org>
  Date:   2024-02-16 (Fri, 16 Feb 2024)

  Changed paths:
    M Source/WebCore/platform/animation/AcceleratedEffect.cpp

  Log Message:
  -----------
  [threaded-animation-resolution] don't accelerate filter interpolation if a 
`drop-shadow()` operation is not last
https://bugs.webkit.org/show_bug.cgi?id=269591

Reviewed by Dean Jackson.

If a `filter` value is ever set on an animated target, we can only use 
accelerated interpolation if it contains a
`drop-shadow()` operation as its last operation. The reason we need to 
implement this constraint is because a
`CALayer` specifies drop shadow as a separate group of properties compared to 
other filters and is applied last.

We rewrite our keyframe lookup code to be more straightforward although 
possibly less efficient by using two separate
loops, one to create the list of relevant values for the animated filter 
property, and one to iterate over all values.
The previous code failed to handle some cases with implicit keyframes. As we 
iterate over the filter values, we now
find the longest list of filter operations and once we're done iterating, check 
that list for a `drop-shadow()` operation
and only validate the filter if it's last or absent.

* Source/WebCore/platform/animation/AcceleratedEffect.cpp:
(WebCore::AcceleratedEffect::validateFilters):

Canonical link: https://commits.webkit.org/274877@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