<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>224168</bug_id>
          
          <creation_ts>2021-04-03 18:11:55 -0700</creation_ts>
          <short_desc>Wasted vector capacity in filters</short_desc>
          <delta_ts>2021-04-03 20:58:02 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</component>
          <version>Safari Technology Preview</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>224169</dup_id>
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>sabouhallawa</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1746837</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-04-03 18:11:55 -0700</bug_when>
    <thetext>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&amp;, WebCore::FilterEffect::Type)
3   0x2a18cb517 WebCore::FEColorMatrix::create(WebCore::Filter&amp;, WebCore::ColorMatrixType, WTF::Vector&lt;float, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc&gt; const&amp;)
4   0x2a19a7a99 WebCore::CSSFilter::build(WebCore::RenderElement&amp;, WebCore::FilterOperations const&amp;, WebCore::FilterConsumer)
5   0x2a1ab1a67 WebCore::RenderLayerFilters::buildFilter(WebCore::RenderElement&amp;, 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&amp;, WebCore::RenderStyle&amp;&amp;)
12  0x2a1c05e4d WebCore::RenderTreeUpdater::updateElementRenderer(WebCore::Element&amp;, WebCore::Style::ElementUpdates const&amp;)
13  0x2a1c054a0 WebCore::RenderTreeUpdater::updateRenderTree(WebCore::ContainerNode&amp;)
14  0x2a1c04efb WebCore::RenderTreeUpdater::commit(std::__1::unique_ptr&lt;WebCore::Style::Update const, std::__1::default_delete&lt;WebCore::Style::Update const&gt; &gt;)
15  0x2a10af489 WebCore::Document::updateRenderTree(std::__1::unique_ptr&lt;WebCore::Style::Update const, std::__1::default_delete&lt;WebCore::Style::Update const&gt; &gt;)
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&amp;)

Wasted capacity: 48960 bytes (used 3264 of 52224 bytes, utilization: 6.25%) - 408 allocations
2   0x2a18dadfa WebCore::FilterEffect::FilterEffect(WebCore::Filter&amp;, WebCore::FilterEffect::Type)
3   0x2a18cc9d2 WebCore::FEComponentTransfer::create(WebCore::Filter&amp;, WebCore::ComponentTransferFunction const&amp;, WebCore::ComponentTransferFunction const&amp;, WebCore::ComponentTransferFunction const&amp;, WebCore::ComponentTransferFunction const&amp;)
4   0x2a19a7217 WebCore::CSSFilter::build(WebCore::RenderElement&amp;, WebCore::FilterOperations const&amp;, WebCore::FilterConsumer)
5   0x2a1ab1a67 WebCore::RenderLayerFilters::buildFilter(WebCore::RenderElement&amp;, 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&amp;, WebCore::RenderStyle&amp;&amp;)
12  0x2a1c05e4d WebCore::RenderTreeUpdater::updateElementRenderer(WebCore::Element&amp;, WebCore::Style::ElementUpdates const&amp;)
13  0x2a1c054a0 WebCore::RenderTreeUpdater::updateRenderTree(WebCore::ContainerNode&amp;)
14  0x2a1c04efb WebCore::RenderTreeUpdater::commit(std::__1::unique_ptr&lt;WebCore::Style::Update const, std::__1::default_delete&lt;WebCore::Style::Update const&gt; &gt;)
15  0x2a10af489 WebCore::Document::updateRenderTree(std::__1::unique_ptr&lt;WebCore::Style::Update const, std::__1::default_delete&lt;WebCore::Style::Update const&gt; &gt;)
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&amp;)

Wasted capacity: 27960 bytes (used 1864 of 29824 bytes, utilization: 6.25%) - 233 allocations
2   0x2a18dadfa WebCore::FilterEffect::FilterEffect(WebCore::Filter&amp;, WebCore::FilterEffect::Type)
3   0x2a18cb517 WebCore::FEColorMatrix::create(WebCore::Filter&amp;, WebCore::ColorMatrixType, WTF::Vector&lt;float, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc&gt; const&amp;)
4   0x2a19a7a99 WebCore::CSSFilter::build(WebCore::RenderElement&amp;, WebCore::FilterOperations const&amp;, WebCore::FilterConsumer)
5   0x2a1ab1a67 WebCore::RenderLayerFilters::buildFilter(WebCore::RenderElement&amp;, 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&amp;, WebCore::RenderStyle&amp;&amp;)
12  0x2a1c05e4d WebCore::RenderTreeUpdater::updateElementRenderer(WebCore::Element&amp;, WebCore::Style::ElementUpdates const&amp;)
13  0x2a1c054a0 WebCore::RenderTreeUpdater::updateRenderTree(WebCore::ContainerNode&amp;)
14  0x2a1c04efb WebCore::RenderTreeUpdater::commit(std::__1::unique_ptr&lt;WebCore::Style::Update const, std::__1::default_delete&lt;WebCore::Style::Update const&gt; &gt;)
15  0x2a10af489 WebCore::Document::updateRenderTree(std::__1::unique_ptr&lt;WebCore::Style::Update const, std::__1::default_delete&lt;WebCore::Style::Update const&gt; &gt;)
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&lt;float, 0ul, WTF::FastMalloc&gt;::VectorBuffer(unsigned long, unsigned long)
3   0x2a09aafbb WTF::Vector&lt;float, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc&gt;::Vector(WTF::Vector&lt;float, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc&gt; const&amp;)
4   0x2a18cb537 WebCore::FEColorMatrix::create(WebCore::Filter&amp;, WebCore::ColorMatrixType, WTF::Vector&lt;float, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc&gt; const&amp;)
5   0x2a19a7a99 WebCore::CSSFilter::build(WebCore::RenderElement&amp;, WebCore::FilterOperations const&amp;, WebCore::FilterConsumer)
6   0x2a1ab1a67 WebCore::RenderLayerFilters::buildFilter(WebCore::RenderElement&amp;, 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&amp;, WebCore::RenderStyle&amp;&amp;)
13  0x2a1c05e4d WebCore::RenderTreeUpdater::updateElementRenderer(WebCore::Element&amp;, WebCore::Style::ElementUpdates const&amp;)
14  0x2a1c054a0 WebCore::RenderTreeUpdater::updateRenderTree(WebCore::ContainerNode&amp;)
15  0x2a1c04efb WebCore::RenderTreeUpdater::commit(std::__1::unique_ptr&lt;WebCore::Style::Update const, std::__1::default_delete&lt;WebCore::Style::Update const&gt; &gt;)
16  0x2a10af489 WebCore::Document::updateRenderTree(std::__1::unique_ptr&lt;WebCore::Style::Update const, std::__1::default_delete&lt;WebCore::Style::Update const&gt; &gt;)
17  0x2a10af86a WebCore::Document::resolveStyle(WebCore::Document::ResolveStyleType)
18  0x2a10afdb8 WebCore::Document::updateStyleIfNeeded()
19  0x2a10ac6e2 WebCore::Document::updateLayout()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1746849</commentid>
    <comment_count>1</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-04-03 20:58:02 -0700</bug_when>
    <thetext>

*** This bug has been marked as a duplicate of bug 224169 ***</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>