Bug 444860 - svg image makes firefox sluggish and unresponsive
Summary: svg image makes firefox sluggish and unresponsive
Keywords:
Status: CLOSED UPSTREAM
Alias: None
Product: Fedora
Classification: Fedora
Component: firefox
Version: rawhide
Hardware: All
OS: Linux
low
low
Target Milestone: ---
Assignee: Gecko Maintainer
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2008-05-01 10:21 UTC by Rodd Clarkson
Modified: 2018-04-11 09:23 UTC (History)
3 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2008-05-03 07:41:15 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)

Description Rodd Clarkson 2008-05-01 10:21:24 UTC
Description of problem:

Loading the image below makes my copy of Firefox (f9-preview) very slow and
unresponsive)

http://art.gnome.org/download/backgrounds/abstract/3643/ABSTRACT-Fretstak_scalable.svg

Comment 1 Sami Farin 2008-05-01 11:45:57 UTC
For those who believe this is a bug: optimize the blur code in libxul.

CPU: P4 / Xeon, speed 2797.2 MHz (estimated)
Counted GLOBAL_POWER_EVENTS events (time during which processor is not stopped)
with a unit mask of 0x01 (mandatory) count 240000
Counted MACHINE_CLEAR events (cycles with entire machine pipeline cleared) with
a unit mask of 0x01 (count a portion of cycles the machine is cleared for any
cause) count 12000
Counted FSB_DATA_ACTIVITY events (DRDY or DBSY events on the front side bus)
with a unit mask of 0x03 (multiple flags) count 60000
Counted RETIRED_BRANCH_TYPE events (retired branches, selected by type) with a
unit mask of 0x1f (multiple flags) count 180000
Counted RETIRED_MISPRED_BRANCH_TYPE events (retired mispredicted branched,
selected by type) with a unit mask of 0x1f (multiple flags) count 6000
samples  %        samples  %        samples  %        samples  %        samples
 %        image name               app name                 symbol name
67815    25.3208  984      14.0071  1785     15.0202  1423      4.4502  87     
  0.7144  libxul.so                libxul.so               
nsSVGFEGaussianBlurElement::BoxBlurV(unsigned char*, unsigned char*, int, nsRect
const&, unsigned int, unsigned int, unsigned char const*)
31056    11.5957  347       4.9395  1444     12.1508  1372      4.2907  36     
  0.2956  libxul.so                libxul.so               
nsSVGFEGaussianBlurElement::BoxBlurH(unsigned char*, unsigned char*, int, nsRect
const&, unsigned int, unsigned int, unsigned char const*)
23323     8.7084  263       3.7438  5         0.0421  2864      8.9567  71     
  0.5830  libpixman-1.so.0.10.0    libpixman-1.so.0.10.0    pixmanFetchSourcePict
11669     4.3570  411       5.8505  448       3.7698  85        0.2658  185    
  1.5191  libc-2.8.so              libc-2.8.so              memcpy
11042     4.1229  112       1.5943  41        0.3450  2131      6.6644  10     
  0.0821  libpixman-1.so.0.10.0    libpixman-1.so.0.10.0    fbFetchFromOneRectangle
10569     3.9463  88        1.2527  67        0.5638  641       2.0046  3      
  0.0246  libpixman-1.so.0.10.0    libpixman-1.so.0.10.0    fbFetchTransformed
8674      3.2387  96        1.3665  618       5.2003  1746      5.4603  25     
  0.2053  libxul.so                libxul.so               
nsSVGUtils::PremultiplyImageDataAlpha(unsigned char*, int, nsRect const&)
8161      3.0472  134       1.9075  604       5.0825  3002      9.3883  71     
  0.5830  libxul.so                libxul.so               
nsSVGUtils::UnPremultiplyImageDataAlpha(unsigned char*, int, nsRect const&)


#0  0x00002ac095fde5e8 in nsSVGFEGaussianBlurElement::BoxBlurV ()
#1  0x00002ac095fe66fb in nsSVGFEGaussianBlurElement::GaussianBlur ()
#2  0x00002ac095feaee4 in nsSVGFEGaussianBlurElement::Filter ()
#3  0x00002ac095fc033f in nsSVGFilterFrame::FilterPaint ()
#4  0x00002ac095fd0732 in nsSVGUtils::PaintChildWithEffects ()
#5  0x00002ac095fbe3fd in nsSVGDisplayContainerFrame::PaintSVG ()
#6  0x00002ac095fbfece in nsSVGFilterFrame::FilterPaint ()
#7  0x00002ac095fd0732 in nsSVGUtils::PaintChildWithEffects ()
#8  0x00002ac095fbe3fd in nsSVGDisplayContainerFrame::PaintSVG ()
#9  0x00002ac095fd04e9 in nsSVGUtils::PaintChildWithEffects ()
#10 0x00002ac095fc7b9f in nsSVGOuterSVGFrame::Paint ()
#11 0x00002ac095fc7bfd in nsDisplaySVG::Paint ()
#12 0x00002ac095cc2250 in nsDisplayList::Paint ()
#13 0x00002ac095cc22de in nsDisplayClip::Paint ()
#14 0x00002ac095cc2250 in nsDisplayList::Paint ()
#15 0x00002ac095ccfca8 in nsLayoutUtils::PaintFrame ()
#16 0x00002ac095cd5e28 in PresShell::Paint ()
#17 0x00002ac095efd3fa in nsViewManager::RenderViews ()
#18 0x00002ac095efda1b in nsViewManager::Refresh ()
#19 0x00002ac095efe3ac in nsViewManager::DispatchEvent ()
#20 0x00002ac095ef9295 in HandleEvent ()
#21 0x00002ac0961ddbb9 in nsCommonWidget::DispatchEvent ()
#22 0x00002ac0961d9dca in nsWindow::OnExposeEvent ()
#23 0x00002ac0961da39b in expose_event_cb ()
...


Comment 2 Matěj Cepl 2008-05-02 15:52:00 UTC
Please file a bug report in the the upstream bugzilla located at
http://bugzilla.mozilla.org in the particular component.

Once you've filed your bug report to the upstream bugzilla, if you paste the new
bug URL here, Red Hat will continue to track the issue in the centralized
upstream bug tracker, and will review any bug fixes that become available for
consideration in future updates.

Setting status to NEEDINFO, and awaiting upstream bug report URL for tracking.

Thanks in advance.

Comment 3 Matěj Cepl 2008-05-02 15:52:57 UTC
(meaning, we are overloaded already with Firefox getting into F9 and elsewhere;
if you want to see any progress on this bug in the next couple of months, you
will be much better served upstream).

Comment 4 Matěj Cepl 2008-05-03 07:41:15 UTC
We filed this bug in the upstream database
(https://bugzilla.mozilla.org/post_bug.cgi) and believe that it is more
appropriate to let it be resolved upstream.

Red Hat will continue to track the issue in the centralized upstream bug
tracker, and will review any bug fixes that become available for consideration
in future updates.

Thank you for the bug report.


Note You need to log in before you can comment on or make changes to this bug.