https://bugs.documentfoundation.org/show_bug.cgi?id=98500

            Bug ID: 98500
           Summary: Multiple animated GIFs cause 100% CPU utilization in
                    Impress
           Product: LibreOffice
           Version: 5.1.1.1 rc
          Hardware: x86-64 (AMD64)
                OS: Linux (All)
            Status: UNCONFIRMED
          Severity: normal
          Priority: medium
         Component: Impress
          Assignee: [email protected]
          Reporter: [email protected]

Created attachment 123386
  --> https://bugs.documentfoundation.org/attachment.cgi?id=123386&action=edit
Presentation with multiple animated GIFs causing LO Impress slowdown

Even a small animated GIF causes Impress to slow down significantly. Having a
presentation with multiple GIFs can cause Impress to rise CPU load to 100%
eventually making impossible to edit the presentation.

Attachment contains a presentation that is not possible to edit on a Gentoo
Linux ~AMD64 system running on a Core 2 Duo CPU 2.53GHz with 4Gb RAM. Although
it is not a high-end system, editing a simple presentation with a few
animations should be possible. Presentations without animated GIFs cause CPU
load only in range of 10% (as reported by top).
An option to disable animations from running while in editing (not
presentation) mode could be a workaround.

Steps to reproduce - on a Linux machine open attached sample and:
1) try to scroll down sidebar with slide previews (as soon as one animated
slide enters field of view, CPU hits 100%);
2) try to edit (move around) any moving images from any of slides (5053
bogomips machine is too slow for that);
3) killall soffice.bin as you are tired of waiting till LO window will redraw
itself to close it in a proper way.

Issue is still present on:
Version: 5.1.1.1
Build ID: c43cb650e9c145b181321ea547d38296db70f36e
CPU Threads: 2; OS Version: Linux 4.4; UI Render: default; 
Locale: lv-LV (lv_LV.utf8)

I was not able to observe any hight CPU utilisation with 5.0.0.5 (x64) running
on a (more powerful) Windows 10 box - scrolling and editing of attached example
file was snappy and without any hickups observed in Linux version.

Haven't been trying to trace back, but it has been present also in pre-5
versions, and no space for compilation to bisect. If it is required, I might
try to install older binary versions to narrow down potential time of start of
slowdown.

GDB output when Impress was consuming all you can eat CPU:
#0  0x00007f9fe4744766 in BitmapReadAccess::SetPixelFor_8BIT_PAL(unsigned
char*, long, BitmapColor const&, ColorMask const&) () from
/opt/libreoffice5.1/program/libmergedlo.so
#1  0x00007f9fe488a79a in GIFReader::FillImages(unsigned char*, unsigned long)
()
   from /opt/libreoffice5.1/program/libmergedlo.so
#2  0x00007f9fe488ab27 in GIFReader::ReadNextBlock() () from
/opt/libreoffice5.1/program/libmergedlo.so
#3  0x00007f9fe488bb67 in GIFReader::ProcessGIF() () from
/opt/libreoffice5.1/program/libmergedlo.so
#4  0x00007f9fe488beff in GIFReader::ReadGIF(Graphic&) () from
/opt/libreoffice5.1/program/libmergedlo.so
#5  0x00007f9fe488c0a5 in ImportGIF(SvStream&, Graphic&) () from
/opt/libreoffice5.1/program/libmergedlo.so
#6  0x00007f9fe48740f1 in GraphicFilter::ImportGraphic(Graphic&, rtl::OUString
const&, SvStream&, unsigned short, unsigned short*, GraphicFilterImportFlags,
com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue>*,
WMF_EXTERNALHEADER*) () from /opt/libreoffice5.1/program/libmergedlo.so
#7  0x00007f9fe3f689d7 in SdrGrafObj::ImpSwapHdl(GraphicObject const*) ()
   from /opt/libreoffice5.1/program/libmergedlo.so
#8  0x00007f9fe3b658d0 in GraphicObject::ImplAutoSwapIn() () from
/opt/libreoffice5.1/program/libmergedlo.so
#9  0x00007f9fe3f673e9 in SdrGrafObj::ForceSwapIn() const () from
/opt/libreoffice5.1/program/libmergedlo.so
#10 0x00007f9fe3e91af4 in
sdr::contact::ViewObjectContactOfGraphic::impPrepareGraphicWithAsynchroniousLoading()
()
   from /opt/libreoffice5.1/program/libmergedlo.so
#11 0x00007f9fe3e91d70 in
sdr::contact::ViewObjectContactOfGraphic::createPrimitive2DSequence(sdr::contact::DisplayInfo
const&) const () from /opt/libreoffice5.1/program/libmergedlo.so
#12 0x00007f9fe3e95c00 in
sdr::contact::ViewObjectContact::getPrimitive2DSequence(sdr::contact::DisplayInfo
const&) const () from /opt/libreoffice5.1/program/libmergedlo.so
#13 0x00007f9fe3e95f31 in
sdr::contact::ViewObjectContact::getPrimitive2DSequenceHierarchy(sdr::contact::DisplayInfo&)
const () from /opt/libreoffice5.1/program/libmergedlo.so
#14 0x00007f9fe3e95945 in
sdr::contact::ViewObjectContact::getPrimitive2DSequenceSubHierarchy(sdr::contact::DisplayInfo&)
const () from /opt/libreoffice5.1/program/libmergedlo.so
#15 0x00007f9fe3e77ea1 in
sdr::contact::ViewObjectContactOfPageHierarchy::getPrimitive2DSequenceHierarchy(sdr::contact::DisplayInfo&)
const () from /opt/libreoffice5.1/program/libmergedlo.so
#16 0x00007f9fe3e95945 in
sdr::contact::ViewObjectContact::getPrimitive2DSequenceSubHierarchy(sdr::contact::DisplayInfo&)
const () from /opt/libreoffice5.1/program/libmergedlo.so
---Type <return> to continue, or q <return> to quit---
#17 0x00007f9fe3e781b6 in
sdr::contact::ViewObjectContactOfSdrPage::getPrimitive2DSequenceHierarchy(sdr::contact::DisplayInfo&)
const () from /opt/libreoffice5.1/program/libmergedlo.so
#18 0x00007f9fe3e7bb52 in
sdr::contact::PagePrimitiveExtractor::createPrimitive2DSequenceForPage(sdr::contact::DisplayInfo
const&) () from /opt/libreoffice5.1/program/libmergedlo.so
#19 0x00007f9fe3e7c2e1 in
sdr::contact::ViewObjectContactOfPageObj::createPrimitive2DSequence(sdr::contact::DisplayInfo
const&) const () from /opt/libreoffice5.1/program/libmergedlo.so
#20 0x00007f9fe3e95c00 in
sdr::contact::ViewObjectContact::getPrimitive2DSequence(sdr::contact::DisplayInfo
const&) const () from /opt/libreoffice5.1/program/libmergedlo.so
#21 0x00007f9fe3e967a3 in sdr::contact::ViewObjectContact::getObjectRange()
const ()
   from /opt/libreoffice5.1/program/libmergedlo.so
#22 0x00007f9fe3e96a3d in
sdr::contact::ViewObjectContact::triggerLazyInvalidate() ()
   from /opt/libreoffice5.1/program/libmergedlo.so
#23 0x00007f9fe3e96f89 in sdr::contact::ObjectContactOfPageView::Invoke() ()
   from /opt/libreoffice5.1/program/libmergedlo.so
#24 0x00007f9fe484fc58 in ImplSchedulerData::Invoke() () from
/opt/libreoffice5.1/program/libmergedlo.so
#25 0x00007f9fe484fe65 in Scheduler::ProcessTaskScheduling(bool) ()
   from /opt/libreoffice5.1/program/libmergedlo.so
#26 0x00007f9fe485d206 in Application::Yield() () from
/opt/libreoffice5.1/program/libmergedlo.so
#27 0x00007f9fe485ed05 in Application::Execute() () from
/opt/libreoffice5.1/program/libmergedlo.so
#28 0x00007f9fe3960d06 in desktop::Desktop::Main() () from
/opt/libreoffice5.1/program/libmergedlo.so
#29 0x00007f9fe4862c09 in ImplSVMain() () from
/opt/libreoffice5.1/program/libmergedlo.so
#30 0x00007f9fe4862c52 in SVMain() () from
/opt/libreoffice5.1/program/libmergedlo.so
#31 0x00007f9fe397e302 in soffice_main () from
/opt/libreoffice5.1/program/libmergedlo.so
#32 0x000000000040075b in sal_main () at
/home/buildslave/source/libo-core/desktop/source/app/main.c:48
#33 main (argc=<optimized out>, argv=<optimized out>)
    at /home/buildslave/source/libo-core/desktop/source/app/main.c:47

-- 
You are receiving this mail because:
You are the assignee for the bug.
_______________________________________________
Libreoffice-bugs mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/libreoffice-bugs

Reply via email to