Extremely low performance and hangs with SVG visualization containing filters

NEW
Unassigned

Status

()

Core
SVG
5 years ago
3 months ago

People

(Reporter: ferongr, Unassigned)

Tracking

(Depends on: 1 bug, Blocks: 1 bug, {perf})

Trunk
Points:
---
Dependency tree / graph

Firefox Tracking Flags

(Not tracked)

Details

(Whiteboard: [in-the-wild] [external-report], URL)

(Reporter)

Description

5 years ago
Windows 7 64bit, 32bit Nightly.

Go to website at URL field. 
Mouse/click anywhere on the large circle.

The browser hangs for a few seconds frequently. Profiler trace follows.

http://people.mozilla.com/~bgirard/cleopatra/?report=c856ed4b9c8e8d417148568f7591605dd217044b
This has long lists of chained filters. Is Firefox performance significantly different to any other filter supporting UA?
(Reporter)

Comment 2

5 years ago
Chromium exhibits no visible slowness and hovering over the different circle segments produces a visible result nearly instantaneously.
(Reporter)

Updated

5 years ago
Blocks: 802871
Against current Trunk the Profile of Comment 0 is still valid with

Selection - Most time spent in:
    nsSVGFETurbulenceElement::Noise2(int,double * const,nsSVGFETurbulenceElement::StitchInfo *)
    nsSVGFETurbulenceElement::Noise2(int,double * const,nsSVGFETurbulenceElement::StitchInfo *)
    nsSVGFETurbulenceElement::Turbulence(int,double *,double,double,int,bool,bool,double,double,double,double)
    nsSVGFETurbulenceElement::Filter(nsSVGFilterInstance *,nsTArray<nsSVGFE::Image const *> const &,nsSVGFE::Image const *,nsIntRect const &)
    nsSVGFilterInstance::Render(gfxASurface * *)
    nsSVGFilterFrame::PaintFilteredFrame(nsRenderingContext *,nsIFrame *,nsSVGFilterPaintCallback *,nsRect const *)
    nsSVGIntegrationUtils::PaintFramesWithEffects(nsRenderingContext *,nsIFrame *,nsRect const &,nsDisplayListBuilder *,mozilla::layers::LayerManager *)
    mozilla::PaintInactiveLayer
    mozilla::FrameLayerBuilder::DrawThebesLayer(mozilla::layers::ThebesLayer *,gfxContext *,nsIntRegion const &,nsIntRegion const &,void *)
    gfx::DrawThebesLayer

As an Addition since SVG Display List's Landing this is now even more worse CPU Usage-wise during Onload as you can see when you disable their Prefs and compare.
Keywords: perf
With the latest perf gains related to reflow and invalidation, I'm now seeing 95% of the profile time under nsSVGFilterFrame::PaintFilteredFrame.
Depends on: 869496
OS: Windows 7 → All
Hardware: x86_64 → All
Summary: Extremely low performance and hangs with SVG visualization. → Extremely low performance and hangs with SVG visualization containing filters
Whiteboard: [in-the-wild] [external-report]
This is much better with the new filters. Hovering over the percentages on the right is near-instant. Hovering over pie chart segments doesn't do anything for some reason, but that's unrelated to filter performance.
Status: UNCONFIRMED → NEW
Ever confirmed: true
You need to log in before you can comment on or make changes to this bug.