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