Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: c9feb0cc3bfd35f3933bcd94d1f8deebb0918f49
https://github.com/WebKit/WebKit/commit/c9feb0cc3bfd35f3933bcd94d1f8deebb0918f49
Author: Antoine Quint <[email protected]>
Date: 2026-04-17 (Fri, 17 Apr 2026)
Changed paths:
A
LayoutTests/webanimations/threaded-animations/composition-of-incompatible-filters-expected.txt
A
LayoutTests/webanimations/threaded-animations/composition-of-incompatible-filters.html
M Source/WebCore/rendering/RenderLayerBacking.cpp
Log Message:
-----------
[threaded-animations] animating incompatible filter values across multiple
effects yields a CAPresentationModifier exception
https://bugs.webkit.org/show_bug.cgi?id=312569
rdar://172747293
Reviewed by Sam Weinig.
We have a system to disallow the acceleration of filter properties if we are
not able to successfully
interpolate them with a single `CAPresentationModifier` in the remote layer
tree, but this system only
is able to reason within the scope of a single accelerated effect. However, it
is possible for an effect
stack to compose filters such that they are individually blending to supported
configurations but will not
blend when composing.
Correctly determining if we are in such a situation is complex since we'd
essentially have to resolve
all possible keyframe combinations throughout the stack accounting for relative
timing, iterations, etc.
Since the composition of animations targeting `filter` or `backdrop-filter` is
very unlikely to be found
in Web content, we can simply disallow threaded animations of such properties
if we have more than a single
effect in an accelerated effect stack. As such, we adjust
`RenderLayerBacking::updateAcceleratedEffectsAndBaseValues()`
to track those properties in `disallowedAcceleratedProperties` and correctly
subtract them from `allAcceleratedProperties`
when computing `nonInterpolatingProperties`, allowing for any effects targeting
those properties to be
removed from the stack.
Test: webanimations/threaded-animations/composition-of-incompatible-filters.html
*
LayoutTests/webanimations/threaded-animations/composition-of-incompatible-filters-expected.txt:
Added.
*
LayoutTests/webanimations/threaded-animations/composition-of-incompatible-filters.html:
Added.
* Source/WebCore/rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateAcceleratedEffectsAndBaseValues):
Canonical link: https://commits.webkit.org/311468@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications