The issue happens when defining a filter inside an <svg> element and directly reference/apply it on the <svg> element itself. In this case, Safari seems to "over-apply" the effect, and one guess is that it may have applied the effect twice. This issue doesn't appear in Chrome or Firefox. I also checked SVG spec and this is a legal structure. If I move the filter attribute to a sub-element of the <svg>, then it works correctly. Here is an example in CodePen demonstrating this. Opening it in Safari/Firefox/Chrome to see the difference: https://codepen.io/xiaolong-li/pen/YzNMZpM I found an existing bug (https://bugs.webkit.org/show_bug.cgi?id=139281) that may be related to this, but not sure.
<rdar://problem/77522728>
This is correct. When the SVGFilter is applied to the <svg> root element, it is applied as an SVGFilter and it is also applied as CSSFilter referencing this SVGFilter.
Created attachment 466605 [details] reduced test case
Pull request: https://github.com/WebKit/WebKit/pull/14780
Committed 265135@main (0dac14ca10cb): <https://commits.webkit.org/265135@main> Reviewed commits have been landed. Closing PR #14780 and removing active labels.
*** Bug 139281 has been marked as a duplicate of this bug. ***