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

Reply via email to