[Webkit-unassigned] [Bug 224168] New: Wasted vector capacity in filters

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Sat Apr 3 18:11:55 PDT 2021


https://bugs.webkit.org/show_bug.cgi?id=224168

            Bug ID: 224168
           Summary: Wasted vector capacity in filters
           Product: WebKit
           Version: Safari Technology Preview
          Hardware: Unspecified
                OS: Unspecified
            Status: NEW
          Severity: Normal
          Priority: P2
         Component: CSS
          Assignee: webkit-unassigned at lists.webkit.org
          Reporter: simon.fraser at apple.com

Facebook.com wastes a bunch of vector capacity in FE* filter classes:

Wasted capacity: 64560 bytes (used 4304 of 68864 bytes, utilization: 6.25%) - 538 allocations
2   0x2a18dadfa WebCore::FilterEffect::FilterEffect(WebCore::Filter&, WebCore::FilterEffect::Type)
3   0x2a18cb517 WebCore::FEColorMatrix::create(WebCore::Filter&, WebCore::ColorMatrixType, WTF::Vector<float, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc> const&)
4   0x2a19a7a99 WebCore::CSSFilter::build(WebCore::RenderElement&, WebCore::FilterOperations const&, WebCore::FilterConsumer)
5   0x2a1ab1a67 WebCore::RenderLayerFilters::buildFilter(WebCore::RenderElement&, float, WebCore::RenderingMode)
6   0x2a1aaee89 WebCore::RenderLayer::styleChanged(WebCore::StyleDifference, WebCore::RenderStyle const*)
7   0x2a1a8f84f WebCore::RenderLayerModelObject::styleDidChange(WebCore::StyleDifference, WebCore::RenderStyle const*)
8   0x2a1a1d985 WebCore::RenderBox::styleDidChange(WebCore::StyleDifference, WebCore::RenderStyle const*)
9   0x2a19f23c0 WebCore::RenderBlock::styleDidChange(WebCore::StyleDifference, WebCore::RenderStyle const*)
10  0x2a1a0d909 WebCore::RenderBlockFlow::styleDidChange(WebCore::StyleDifference, WebCore::RenderStyle const*)
11  0x2a1c072e6 WebCore::RenderTreeUpdater::createRenderer(WebCore::Element&, WebCore::RenderStyle&&)
12  0x2a1c05e4d WebCore::RenderTreeUpdater::updateElementRenderer(WebCore::Element&, WebCore::Style::ElementUpdates const&)
13  0x2a1c054a0 WebCore::RenderTreeUpdater::updateRenderTree(WebCore::ContainerNode&)
14  0x2a1c04efb WebCore::RenderTreeUpdater::commit(std::__1::unique_ptr<WebCore::Style::Update const, std::__1::default_delete<WebCore::Style::Update const> >)
15  0x2a10af489 WebCore::Document::updateRenderTree(std::__1::unique_ptr<WebCore::Style::Update const, std::__1::default_delete<WebCore::Style::Update const> >)
16  0x2a10af86a WebCore::Document::resolveStyle(WebCore::Document::ResolveStyleType)
17  0x2a10afdb8 WebCore::Document::updateStyleIfNeeded()
18  0x2a10ac6e2 WebCore::Document::updateLayout()
19  0x2a10ad8ae WebCore::Document::updateLayoutIgnorePendingStylesheets(WebCore::Document::RunPostLayoutTasks)
20  0x2a13314b2 WebCore::HTMLPlugInElement::renderWidgetLoadingPlugin() const
21  0x2a13313cf WebCore::HTMLPlugInElement::pluginWidget(WebCore::HTMLPlugInElement::PluginLoadingPolicy) const
22  0x2a0e1f89b WebCore::pluginScriptObject(JSC::JSGlobalObject*, WebCore::JSHTMLElement*)
23  0x2a0e1fae1 WebCore::pluginElementCustomGetOwnPropertySlot(WebCore::JSHTMLElement*, JSC::JSGlobalObject*, JSC::PropertyName, JSC::PropertySlot&)

Wasted capacity: 48960 bytes (used 3264 of 52224 bytes, utilization: 6.25%) - 408 allocations
2   0x2a18dadfa WebCore::FilterEffect::FilterEffect(WebCore::Filter&, WebCore::FilterEffect::Type)
3   0x2a18cc9d2 WebCore::FEComponentTransfer::create(WebCore::Filter&, WebCore::ComponentTransferFunction const&, WebCore::ComponentTransferFunction const&, WebCore::ComponentTransferFunction const&, WebCore::ComponentTransferFunction const&)
4   0x2a19a7217 WebCore::CSSFilter::build(WebCore::RenderElement&, WebCore::FilterOperations const&, WebCore::FilterConsumer)
5   0x2a1ab1a67 WebCore::RenderLayerFilters::buildFilter(WebCore::RenderElement&, float, WebCore::RenderingMode)
6   0x2a1aaee89 WebCore::RenderLayer::styleChanged(WebCore::StyleDifference, WebCore::RenderStyle const*)
7   0x2a1a8f84f WebCore::RenderLayerModelObject::styleDidChange(WebCore::StyleDifference, WebCore::RenderStyle const*)
8   0x2a1a1d985 WebCore::RenderBox::styleDidChange(WebCore::StyleDifference, WebCore::RenderStyle const*)
9   0x2a19f23c0 WebCore::RenderBlock::styleDidChange(WebCore::StyleDifference, WebCore::RenderStyle const*)
10  0x2a1a0d909 WebCore::RenderBlockFlow::styleDidChange(WebCore::StyleDifference, WebCore::RenderStyle const*)
11  0x2a1c072e6 WebCore::RenderTreeUpdater::createRenderer(WebCore::Element&, WebCore::RenderStyle&&)
12  0x2a1c05e4d WebCore::RenderTreeUpdater::updateElementRenderer(WebCore::Element&, WebCore::Style::ElementUpdates const&)
13  0x2a1c054a0 WebCore::RenderTreeUpdater::updateRenderTree(WebCore::ContainerNode&)
14  0x2a1c04efb WebCore::RenderTreeUpdater::commit(std::__1::unique_ptr<WebCore::Style::Update const, std::__1::default_delete<WebCore::Style::Update const> >)
15  0x2a10af489 WebCore::Document::updateRenderTree(std::__1::unique_ptr<WebCore::Style::Update const, std::__1::default_delete<WebCore::Style::Update const> >)
16  0x2a10af86a WebCore::Document::resolveStyle(WebCore::Document::ResolveStyleType)
17  0x2a10afdb8 WebCore::Document::updateStyleIfNeeded()
18  0x2a10ac6e2 WebCore::Document::updateLayout()
19  0x2a10ad8ae WebCore::Document::updateLayoutIgnorePendingStylesheets(WebCore::Document::RunPostLayoutTasks)
20  0x2a13314b2 WebCore::HTMLPlugInElement::renderWidgetLoadingPlugin() const
21  0x2a13313cf WebCore::HTMLPlugInElement::pluginWidget(WebCore::HTMLPlugInElement::PluginLoadingPolicy) const
22  0x2a0e1f89b WebCore::pluginScriptObject(JSC::JSGlobalObject*, WebCore::JSHTMLElement*)
23  0x2a0e1fae1 WebCore::pluginElementCustomGetOwnPropertySlot(WebCore::JSHTMLElement*, JSC::JSGlobalObject*, JSC::PropertyName, JSC::PropertySlot&)

Wasted capacity: 27960 bytes (used 1864 of 29824 bytes, utilization: 6.25%) - 233 allocations
2   0x2a18dadfa WebCore::FilterEffect::FilterEffect(WebCore::Filter&, WebCore::FilterEffect::Type)
3   0x2a18cb517 WebCore::FEColorMatrix::create(WebCore::Filter&, WebCore::ColorMatrixType, WTF::Vector<float, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc> const&)
4   0x2a19a7a99 WebCore::CSSFilter::build(WebCore::RenderElement&, WebCore::FilterOperations const&, WebCore::FilterConsumer)
5   0x2a1ab1a67 WebCore::RenderLayerFilters::buildFilter(WebCore::RenderElement&, float, WebCore::RenderingMode)
6   0x2a1aaee89 WebCore::RenderLayer::styleChanged(WebCore::StyleDifference, WebCore::RenderStyle const*)
7   0x2a1a8f84f WebCore::RenderLayerModelObject::styleDidChange(WebCore::StyleDifference, WebCore::RenderStyle const*)
8   0x2a1a1d985 WebCore::RenderBox::styleDidChange(WebCore::StyleDifference, WebCore::RenderStyle const*)
9   0x2a19f23c0 WebCore::RenderBlock::styleDidChange(WebCore::StyleDifference, WebCore::RenderStyle const*)
10  0x2a1a0d909 WebCore::RenderBlockFlow::styleDidChange(WebCore::StyleDifference, WebCore::RenderStyle const*)
11  0x2a1c072e6 WebCore::RenderTreeUpdater::createRenderer(WebCore::Element&, WebCore::RenderStyle&&)
12  0x2a1c05e4d WebCore::RenderTreeUpdater::updateElementRenderer(WebCore::Element&, WebCore::Style::ElementUpdates const&)
13  0x2a1c054a0 WebCore::RenderTreeUpdater::updateRenderTree(WebCore::ContainerNode&)
14  0x2a1c04efb WebCore::RenderTreeUpdater::commit(std::__1::unique_ptr<WebCore::Style::Update const, std::__1::default_delete<WebCore::Style::Update const> >)
15  0x2a10af489 WebCore::Document::updateRenderTree(std::__1::unique_ptr<WebCore::Style::Update const, std::__1::default_delete<WebCore::Style::Update const> >)
16  0x2a10af86a WebCore::Document::resolveStyle(WebCore::Document::ResolveStyleType)
17  0x2a10afdb8 WebCore::Document::updateStyleIfNeeded()

Wasted capacity: 24832 bytes (used 12260 of 37092 bytes, utilization: 33.05%) - 538 allocations
2   0x2a09aaf63 WTF::VectorBuffer<float, 0ul, WTF::FastMalloc>::VectorBuffer(unsigned long, unsigned long)
3   0x2a09aafbb WTF::Vector<float, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc>::Vector(WTF::Vector<float, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc> const&)
4   0x2a18cb537 WebCore::FEColorMatrix::create(WebCore::Filter&, WebCore::ColorMatrixType, WTF::Vector<float, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc> const&)
5   0x2a19a7a99 WebCore::CSSFilter::build(WebCore::RenderElement&, WebCore::FilterOperations const&, WebCore::FilterConsumer)
6   0x2a1ab1a67 WebCore::RenderLayerFilters::buildFilter(WebCore::RenderElement&, float, WebCore::RenderingMode)
7   0x2a1aaee89 WebCore::RenderLayer::styleChanged(WebCore::StyleDifference, WebCore::RenderStyle const*)
8   0x2a1a8f84f WebCore::RenderLayerModelObject::styleDidChange(WebCore::StyleDifference, WebCore::RenderStyle const*)
9   0x2a1a1d985 WebCore::RenderBox::styleDidChange(WebCore::StyleDifference, WebCore::RenderStyle const*)
10  0x2a19f23c0 WebCore::RenderBlock::styleDidChange(WebCore::StyleDifference, WebCore::RenderStyle const*)
11  0x2a1a0d909 WebCore::RenderBlockFlow::styleDidChange(WebCore::StyleDifference, WebCore::RenderStyle const*)
12  0x2a1c072e6 WebCore::RenderTreeUpdater::createRenderer(WebCore::Element&, WebCore::RenderStyle&&)
13  0x2a1c05e4d WebCore::RenderTreeUpdater::updateElementRenderer(WebCore::Element&, WebCore::Style::ElementUpdates const&)
14  0x2a1c054a0 WebCore::RenderTreeUpdater::updateRenderTree(WebCore::ContainerNode&)
15  0x2a1c04efb WebCore::RenderTreeUpdater::commit(std::__1::unique_ptr<WebCore::Style::Update const, std::__1::default_delete<WebCore::Style::Update const> >)
16  0x2a10af489 WebCore::Document::updateRenderTree(std::__1::unique_ptr<WebCore::Style::Update const, std::__1::default_delete<WebCore::Style::Update const> >)
17  0x2a10af86a WebCore::Document::resolveStyle(WebCore::Document::ResolveStyleType)
18  0x2a10afdb8 WebCore::Document::updateStyleIfNeeded()
19  0x2a10ac6e2 WebCore::Document::updateLayout()

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-unassigned/attachments/20210404/e5484d18/attachment-0001.htm>


More information about the webkit-unassigned mailing list