[Digikam-devel] [digikam] [Bug 322789] Enabling "color managed view" in editor slows down tool startup

Peter Albrecht px79 at crazymonkeys.de
Sat Jan 4 20:57:18 GMT 2014


https://bugs.kde.org/show_bug.cgi?id=322789

--- Comment #18 from Peter Albrecht <px79 at crazymonkeys.de> ---
Ok, I am one step further: Valgrind can generate a very nice call graph. ;)

Based on the positions in comment #17:
Between position A and position B, I get about ~70 calls to
"IccTransform::apply (DImg& image, DImgLoaderObserver* const observer)"
The callstack is every time:
      #0 Digikam::IccTransform::apply() at
/srv/local/debug/media-gfx/digikam-3.5.0/work/digikam-3.5.0/core/libs/dimg/filters/icc/icctransform.cpp:615
      #1 Digikam::DImg::convertToPixmap() at
/srv/local/debug/media-gfx/digikam-3.5.0/work/digikam-3.5.0/core/libs/dimg/dimg.cpp:2038
      #2 Digikam::EditorCore::convertToPixmap() at
/srv/local/debug/media-gfx/digikam-3.5.0/work/digikam-3.5.0/core/utilities/imageeditor/core/editorcore.cpp:999
      #3 Digikam::ImageIface::convertToPixmap() at
/srv/local/debug/media-gfx/digikam-3.5.0/work/digikam-3.5.0/core/utilities/imageeditor/plugin/imageiface.cpp:309
      #4 Digikam::ImageRegionWidget::paintPreview() at
/srv/local/debug/media-gfx/digikam-3.5.0/work/digikam-3.5.0/core/utilities/imageeditor/q3support/imageregionwidget.cpp:141
      #5 Digikam::PreviewWidget::viewportPaintEvent() at
/srv/local/debug/media-gfx/digikam-3.5.0/work/digikam-3.5.0/core/utilities/imageeditor/q3support/previewwidget.cpp:591
      (#6 qt4 event handling ...)

After the breakpoint at position B, there are another ~70 calls to
"IccTransform::apply" with the exact same backtrace.

After those second ~70 calls, there is one further call to
"IccTransform::apply" with backtrace:
      #0 Digikam::IccTransform::apply() at
/srv/local/debug/media-gfx/digikam-3.5.0/work/digikam-3.5.0/core/libs/dimg/filters/icc/icctransform.cpp:615
      #1 Digikam::DImg::convertToPixmap() at
/srv/local/debug/media-gfx/digikam-3.5.0/work/digikam-3.5.0/core/libs/dimg/dimg.cpp:2038
      #2 Digikam::EditorCore::convertToPixmap() at
/srv/local/debug/media-gfx/digikam-3.5.0/work/digikam-3.5.0/core/utilities/imageeditor/core/editorcore.cpp:999
      #3 Digikam::ImageIface::convertToPixmap() at
/srv/local/debug/media-gfx/digikam-3.5.0/work/digikam-3.5.0/core/utilities/imageeditor/plugin/imageiface.cpp:309
      #4 Digikam::ImageRegionWidget::setPreviewImage() at
/srv/local/debug/media-gfx/digikam-3.5.0/work/digikam-3.5.0/core/utilities/imageeditor/q3support/imageregionwidget.cpp:446
      #5 DigikamColorImagePlugin::BCGTool::setPreviewImage() at
/srv/local/debug/media-gfx/digikam-3.5.0/work/digikam-3.5.0/core/imageplugins/color/bcgtool.cpp:174
      #6 Digikam::EditorToolThreaded::slotFilterFinished() at
/srv/local/debug/media-gfx/digikam-3.5.0/work/digikam-3.5.0/core/utilities/imageeditor/editor/editortool.cpp:535

After this one call, the "Brightness / Contrast / Gamma..." tool in Image
Editor is ready to be used.

I don't believe, all those ~140 calls to "IccTransform::apply" are correct. So
I'll try to find out, who's firing those "viewportPaintEvent"s. Hints on
finding the sender of those events are welcome, of course. ;)

-- 
You are receiving this mail because:
You are the assignee for the bug.



More information about the Digikam-devel mailing list