RESOLVED FIXED 263351
[SVG] Enable approximate repaint bounding box computation
https://bugs.webkit.org/show_bug.cgi?id=263351
Summary [SVG] Enable approximate repaint bounding box computation
Yusuke Suzuki
Reported 2023-10-18 17:43:21 PDT
...
Attachments
Radar WebKit Bug Importer
Comment 1 2023-10-18 17:43:44 PDT
Yusuke Suzuki
Comment 2 2023-10-18 17:46:10 PDT
EWS
Comment 3 2023-10-18 21:30:02 PDT
Committed 269500@main (2f7437fb0267): <https://commits.webkit.org/269500@main> Reviewed commits have been landed. Closing PR #19262 and removing active labels.
Fujii Hironori
Comment 4 2023-10-19 12:46:07 PDT
http/tests/svg/use-custom-property-inheritance.html is crashing after this change. https://results.webkit.org/?suite=layout-tests&test=http%2Ftests%2Fsvg%2Fuse-custom-property-inheritance.html&style=debug https://ews-build.s3-us-west-2.amazonaws.com/macOS-AppleSilicon-Ventura-Debug-WK2-Tests-EWS/ca059f9b-18153/http/tests/svg/use-custom-property-inheritance-stderr.txt ASSERTION FAILED: !renderer.hasNonScalingStroke() /Volumes/Data/worker/macOS-AppleSilicon-Ventura-Debug-Build-EWS/build/Source/WebCore/rendering/svg/SVGRenderSupport.cpp(577) : auto WebCore::SVGRenderSupport::calculateApproximateStrokeBoundingBox(const WebCore::RenderElement &)::(anonymous class)::operator()(const auto &, WebCore::FloatRect) const [renderer:auto = WebCore::LegacyRenderSVGShape] 1 0x12e6cf28c WTFCrash 2 0x282ada7e0 WebCore::BaseAudioContext::isGraphOwner() const 3 0x2856211f8 WebCore::FloatRect WebCore::SVGRenderSupport::calculateApproximateStrokeBoundingBox(WebCore::RenderElement const&)::$_2::operator()<WebCore::LegacyRenderSVGShape>(WebCore::LegacyRenderSVGShape const&, WebCore::FloatRect) const 4 0x2856210a0 WebCore::FloatRect WebCore::SVGRenderSupport::calculateApproximateStrokeBoundingBox(WebCore::RenderElement const&)::$_1::operator()<WebCore::LegacyRenderSVGShape>(WebCore::LegacyRenderSVGShape const&, WebCore::FloatRect) const 5 0x2856137dc auto WebCore::SVGRenderSupport::calculateApproximateStrokeBoundingBox(WebCore::RenderElement const&)::$_0::operator()<WebCore::LegacyRenderSVGShape>(WebCore::LegacyRenderSVGShape const&) const 6 0x285613608 WebCore::SVGRenderSupport::calculateApproximateStrokeBoundingBox(WebCore::RenderElement const&) 7 0x28564b904 WebCore::LegacyRenderSVGShape::calculateApproximateStrokeBoundingBox() const 8 0x28564a644 WebCore::LegacyRenderSVGShape::updateRepaintBoundingBox() 9 0x28564a540 WebCore::LegacyRenderSVGShape::layout() 10 0x285611acc WebCore::SVGRenderSupport::layoutChildren(WebCore::RenderElement&, bool) 11 0x28563c9ac WebCore::LegacyRenderSVGContainer::layout() 12 0x285611acc WebCore::SVGRenderSupport::layoutChildren(WebCore::RenderElement&, bool) 13 0x28563c9ac WebCore::LegacyRenderSVGContainer::layout() 14 0x285611acc WebCore::SVGRenderSupport::layoutChildren(WebCore::RenderElement&, bool) 15 0x28564839c WebCore::LegacyRenderSVGRoot::layout() 16 0x2847d3384 WebCore::LocalFrameViewLayoutContext::performLayout() 17 0x2847b160c WebCore::LocalFrameViewLayoutContext::layout() 18 0x2847cca74 WebCore::LocalFrameView::updateLayoutAndStyleIfNeededRecursive() 19 0x284832188 WebCore::Page::layoutIfNeeded() 20 0x284832ca4 WebCore::Page::updateRendering() 21 0x11a3a5aac WebKit::WebPage::updateRendering() 22 0x119443dc8 WebKit::TiledCoreAnimationDrawingArea::updateRendering(WebKit::TiledCoreAnimationDrawingArea::UpdateRenderingType) 23 0x119443cc8 WebKit::TiledCoreAnimationDrawingArea::forceRepaint() 24 0x11a3a462c WebKit::WebPage::forceRepaintWithoutCallback() 25 0x119cbec04 WKBundlePageForceRepaint 26 0x10184959c WTR::InjectedBundlePage::dump() 27 0x10184d988 WTR::dumpAfterWaitAttributeIsRemoved(OpaqueWKBundlePage const*) 28 0x101848de4 WTR::InjectedBundlePage::frameDidChangeLocation(OpaqueWKBundleFrame const*) 29 0x101847250 WTR::InjectedBundlePage::didFinishLoadForFrame(OpaqueWKBundleFrame const*) 30 0x101845e1c WTR::InjectedBundlePage::didFinishLoadForFrame(OpaqueWKBundlePage const*, OpaqueWKBundleFrame const*, void const**, void const*) 31 0x119cafa18 WebKit::InjectedBundlePageLoaderClient::didFinishLoadForFrame(WebKit::WebPage&, WebKit::WebFrame&, WTF::RefPtr<API::Object, WTF::RawPtrTraits<API::Object>, WTF::DefaultRefDerefTraits<API::Object>>&) com.apple.WebKit.WebContent.Development terminated (pid 5864) for reason: crash LEAK: 1 WebPageProxy
Yusuke Suzuki
Comment 5 2023-10-19 13:41:53 PDT
(In reply to Fujii Hironori from comment #4) > http/tests/svg/use-custom-property-inheritance.html is crashing after this > change. > https://results.webkit.org/?suite=layout-tests&test=http%2Ftests%2Fsvg%2Fuse- > custom-property-inheritance.html&style=debug > > https://ews-build.s3-us-west-2.amazonaws.com/macOS-AppleSilicon-Ventura- > Debug-WK2-Tests-EWS/ca059f9b-18153/http/tests/svg/use-custom-property- > inheritance-stderr.txt > > ASSERTION FAILED: !renderer.hasNonScalingStroke() > /Volumes/Data/worker/macOS-AppleSilicon-Ventura-Debug-Build-EWS/build/Source/ > WebCore/rendering/svg/SVGRenderSupport.cpp(577) : auto > WebCore::SVGRenderSupport::calculateApproximateStrokeBoundingBox(const > WebCore::RenderElement &)::(anonymous class)::operator()(const auto &, > WebCore::FloatRect) const [renderer:auto = WebCore::LegacyRenderSVGShape] > 1 0x12e6cf28c WTFCrash > 2 0x282ada7e0 WebCore::BaseAudioContext::isGraphOwner() const > 3 0x2856211f8 WebCore::FloatRect > WebCore::SVGRenderSupport::calculateApproximateStrokeBoundingBox(WebCore:: > RenderElement > const&)::$_2::operator()<WebCore::LegacyRenderSVGShape>(WebCore:: > LegacyRenderSVGShape const&, WebCore::FloatRect) const > 4 0x2856210a0 WebCore::FloatRect > WebCore::SVGRenderSupport::calculateApproximateStrokeBoundingBox(WebCore:: > RenderElement > const&)::$_1::operator()<WebCore::LegacyRenderSVGShape>(WebCore:: > LegacyRenderSVGShape const&, WebCore::FloatRect) const > 5 0x2856137dc auto > WebCore::SVGRenderSupport::calculateApproximateStrokeBoundingBox(WebCore:: > RenderElement > const&)::$_0::operator()<WebCore::LegacyRenderSVGShape>(WebCore:: > LegacyRenderSVGShape const&) const > 6 0x285613608 > WebCore::SVGRenderSupport::calculateApproximateStrokeBoundingBox(WebCore:: > RenderElement const&) > 7 0x28564b904 > WebCore::LegacyRenderSVGShape::calculateApproximateStrokeBoundingBox() const > 8 0x28564a644 WebCore::LegacyRenderSVGShape::updateRepaintBoundingBox() > 9 0x28564a540 WebCore::LegacyRenderSVGShape::layout() > 10 0x285611acc > WebCore::SVGRenderSupport::layoutChildren(WebCore::RenderElement&, bool) > 11 0x28563c9ac WebCore::LegacyRenderSVGContainer::layout() > 12 0x285611acc > WebCore::SVGRenderSupport::layoutChildren(WebCore::RenderElement&, bool) > 13 0x28563c9ac WebCore::LegacyRenderSVGContainer::layout() > 14 0x285611acc > WebCore::SVGRenderSupport::layoutChildren(WebCore::RenderElement&, bool) > 15 0x28564839c WebCore::LegacyRenderSVGRoot::layout() > 16 0x2847d3384 WebCore::LocalFrameViewLayoutContext::performLayout() > 17 0x2847b160c WebCore::LocalFrameViewLayoutContext::layout() > 18 0x2847cca74 > WebCore::LocalFrameView::updateLayoutAndStyleIfNeededRecursive() > 19 0x284832188 WebCore::Page::layoutIfNeeded() > 20 0x284832ca4 WebCore::Page::updateRendering() > 21 0x11a3a5aac WebKit::WebPage::updateRendering() > 22 0x119443dc8 > WebKit::TiledCoreAnimationDrawingArea::updateRendering(WebKit:: > TiledCoreAnimationDrawingArea::UpdateRenderingType) > 23 0x119443cc8 WebKit::TiledCoreAnimationDrawingArea::forceRepaint() > 24 0x11a3a462c WebKit::WebPage::forceRepaintWithoutCallback() > 25 0x119cbec04 WKBundlePageForceRepaint > 26 0x10184959c WTR::InjectedBundlePage::dump() > 27 0x10184d988 WTR::dumpAfterWaitAttributeIsRemoved(OpaqueWKBundlePage > const*) > 28 0x101848de4 > WTR::InjectedBundlePage::frameDidChangeLocation(OpaqueWKBundleFrame const*) > 29 0x101847250 > WTR::InjectedBundlePage::didFinishLoadForFrame(OpaqueWKBundleFrame const*) > 30 0x101845e1c > WTR::InjectedBundlePage::didFinishLoadForFrame(OpaqueWKBundlePage const*, > OpaqueWKBundleFrame const*, void const**, void const*) > 31 0x119cafa18 > WebKit::InjectedBundlePageLoaderClient::didFinishLoadForFrame(WebKit:: > WebPage&, WebKit::WebFrame&, WTF::RefPtr<API::Object, > WTF::RawPtrTraits<API::Object>, WTF::DefaultRefDerefTraits<API::Object>>&) > com.apple.WebKit.WebContent.Development terminated (pid 5864) for reason: > crash > LEAK: 1 WebPageProxy Oops, this assertion is stale. I'll remove it.
Yusuke Suzuki
Comment 6 2023-10-19 14:20:33 PDT
https://github.com/WebKit/WebKit/commit/cd9fc42579dc0b7307a9c1bb3f48a2115f1443c8 Fixed in this. It is a bit strange that the original patch was landed with safe-merge-queue :(
Mark Lam
Comment 7 2023-10-23 00:41:41 PDT
*** Bug 262409 has been marked as a duplicate of this bug. ***
Fujii Hironori
Comment 8 2024-08-21 00:29:12 PDT
Regressed: Bug 277624 – REGRESSION (269500@main Safari 17.5): Masked Curved Line Rendering Issue
Note You need to log in before you can comment on or make changes to this bug.