SUMMARY Crash with backtrace STEPS TO REPRODUCE 1. Go to unknown faces 2. Find face you want to tag 3. Assign tag, kaboom OBSERVED RESULT Thread 32 "Thread (pooled)" received signal SIGSEGV, Segmentation fault. [Switching to Thread 0x7fff9b400640 (LWP 30936)] 0x00007fffc6f3290d in llvm::AnalysisManager<llvm::Module>::getResultImpl(llvm::AnalysisKey*, llvm::Module&) () from /opt/amdgpu/lib/x86_64-linux-gnu/libLLVM.so.18.1 (gdb) bt #0 0x00007fffc6f3290d in llvm::AnalysisManager<llvm::Module>::getResultImpl(llvm::AnalysisKey*, llvm::Module&) () from /opt/amdgpu/lib/x86_64-linux-gnu/libLLVM.so.18.1 #1 0x00007fffc6f32800 in llvm::AnalysisManager<llvm::Module>::getResultImpl(llvm::AnalysisKey*, llvm::Module&) () from /opt/amdgpu/lib/x86_64-linux-gnu/libLLVM.so.18.1 #2 0x00007fffc6f78d00 in llvm::VerifierPass::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) () from /opt/amdgpu/lib/x86_64-linux-gnu/libLLVM.so.18.1 #3 0x00007fffc8ba1e96 in ?? () from /opt/amdgpu/lib/x86_64-linux-gnu/libLLVM.so.18.1 #4 0x00007fff21275129 in llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) () from /lib/x86_64-linux-gnu/libLLVM-15.so.1 #5 0x00007fff81d29c8d in (anonymous namespace)::EmitAssemblyHelper::RunOptimizationPipeline(clang::BackendAction, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream> >&, std::unique_ptr<llvm::ToolOutputFile, std::default_delete<llvm::ToolOutputFile> >&) () from /lib/x86_64-linux-gnu/libclang-cpp.so.15 #6 0x00007fff81d22617 in clang::EmitBackendOutput(clang::DiagnosticsEngine&, clang::HeaderSearchOptions const&, clang::CodeGenOptions const&, clang::TargetOptions const&, clang::LangOptions const&, llvm::StringRef, llvm::Module*, clang::BackendAction, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream> >) () from /lib/x86_64-linux-gnu/libclang-cpp.so.15 #7 0x00007fff820828b1 in clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) () from /lib/x86_64-linux-gnu/libclang-cpp.so.15 #8 0x00007fff80e8ce9b in clang::ParseAST(clang::Sema&, bool, bool) () from /lib/x86_64-linux-gnu/libclang-cpp.so.15 #9 0x00007fff8207e925 in clang::CodeGenAction::ExecuteAction() () from /lib/x86_64-linux-gnu/libclang-cpp.so.15 #10 0x00007fff82ab4ea7 in clang::FrontendAction::Execute() () from /lib/x86_64-linux-gnu/libclang-cpp.so.15 #11 0x00007fff82a27fb6 in clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) () from /lib/x86_64-linux-gnu/libclang-cpp.so.15 #12 0x00007fff8e7cc54b in ?? () from /lib/x86_64-linux-gnu/libMesaOpenCL.so.1 #13 0x00007fff8e7ceebf in ?? () from /lib/x86_64-linux-gnu/libMesaOpenCL.so.1 #14 0x00007fff8e6a8d8a in ?? () from /lib/x86_64-linux-gnu/libMesaOpenCL.so.1 #15 0x00007fff8e6862e7 in ?? () from /lib/x86_64-linux-gnu/libMesaOpenCL.so.1 #16 0x00007fffe6d8c32d in ?? () from /tmp/.mount_digiKaOJM2w5/usr/lib/libopencv_core.so.411 #17 0x00007fffe6d9bcd3 in ?? () from /tmp/.mount_digiKaOJM2w5/usr/lib/libopencv_core.so.411 #18 0x00007fffe6da9648 in ?? () from /tmp/.mount_digiKaOJM2w5/usr/lib/libopencv_core.so.411 #19 0x00007fffe6daa2ec in cv::ocl::Program::create(cv::ocl::ProgramSource const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&) () from /tmp/.mount_digiKaOJM2w5/usr/lib/libopencv_core.so.411 #20 0x00007fffe6daa705 in cv::ocl::Context::Impl::getProg(cv::ocl::ProgramSource const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&) () from /tmp/.mount_digiKaOJM2w5/usr/lib/libopencv_core.so.411 #21 0x00007fffe6daa8ea in cv::ocl::Context::getProg(cv::ocl::ProgramSource const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&) () from /tmp/.mount_digiKaOJM2w5/usr/lib/libopencv_core.so.411 #22 0x00007fffe6daa9b4 in cv::ocl::Kernel::create(char const*, cv::ocl::ProgramSource const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*) () from /tmp/.mount_digiKaOJM2w5/usr/lib/libopencv_core.so.411 #23 0x00007fffe71f19cc in cv::resize(cv::_InputArray const&, cv::_OutputArray const&, cv::Size_<int>, double, double, int) () from /tmp/.mount_digiKaOJM2w5/usr/lib/libopencv_imgproc.so.411 #24 0x00007ffff77f8fbc in Digikam::DNNSFaceExtractor::getFaceEmbedding (this=this@entry=0x7fff9b3feee0, faceImage=...) at ././/include/opencv4/opencv2/core/mat.inl.hpp:92 #25 0x00007ffff7b8c512 in Digikam::FacePipelineBase::commonFaceThumbnailExtractor (this=0x7ffff7ef4560 <QGlobalStatic<QtGlobalStatic::Holder<Digikam::(anonymous namespace)::Q_QGS_facePipelineEditCreator> >::instance()::holder>, pipelineName=..., stagePriority=stagePriority@entry=QThread::NormalPriority, thisStage=<optimized out>, thisStage@entry=Digikam::MLPipelineFoundation::Extractor, nextStage=nextStage@entry=Digikam::MLPipelineFoundation::Writer, trainingQualityCheck=trainingQualityCheck@entry=true) at /dktemp/digikam-master/core/utilities/facemanagement/pipelines/facepipelinebase.cpp:389 #26 0x00007ffff7b921e7 in Digikam::FacePipelineEdit::extractor (this=<optimized out>) at /dktemp/digikam-master/core/utilities/facemanagement/pipelines/edit/facepipelineedit.cpp:263 #27 0x00007ffff636a1f6 in std::__invoke_impl<bool, bool (Digikam::MLPipelineFoundation::*&)(), Digikam::MLPipelineFoundation*&> (__f=<synthetic pointer>: <optimized out>, __t=<synthetic pointer>: <optimized out>, __f=<synthetic pointer>: <optimized out>, __t=<synthetic pointer>: <optimized out>) at ././/include/c++/11/bits/invoke.h:74 #28 std::__invoke<bool (Digikam::MLPipelineFoundation::*&)(), Digikam::MLPipelineFoundation*&> (__fn=<synthetic pointer>: <optimized out>) at ././/include/c++/11/bits/invoke.h:96 #29 std::invoke<bool (Digikam::MLPipelineFoundation::*&)(), Digikam::MLPipelineFoundation*&> (__fn=<synthetic pointer>: <optimized out>) at ././/include/c++/11/functional:97 #30 QtConcurrent::StoredFunctionCall<bool (Digikam::MLPipelineFoundation::*)(), Digikam::MLPipelineFoundation*>::runFunctor()::{lambda(bool (Digikam::MLPipelineFoundation::*)(), Digikam::MLPipelineFoundation*)#1}::operator()(bool (Digikam::MLPipelineFoundation::*)(), Digikam::MLPipelineFoundation*) const ( args#0=<optimized out>, function=<optimized out>, __closure=<synthetic pointer>) at ././/include/QtConcurrent/qtconcurrentstoredfunctioncall.h:116 #31 std::__invoke_impl<bool, QtConcurrent::StoredFunctionCall<bool (Digikam::MLPipelineFoundation::*)(), Digikam::MLPipelineFoundation*>::runFunctor()::{lambda(bool (Digikam::MLPipelineFoundation::* const&)(), Digikam::MLPipelineFoundation*)#1}, bool (Digikam::MLPipelineFoundation::*)(), Digikam::MLPipelineFoundation*>(std::__invoke_other, QtConcurrent::StoredFunctionCall<bool (Digikam::MLPipelineFoundation::*)(), Digikam::MLPipelineFoundation*>::runFunctor()::{lambda(bool (Digikam::MLPipelineFoundation::* const&)(), Digikam::MLPipelineFoundation*)#1}, bool (Digikam::MLPipelineFoundation::*&&)(), Digikam::MLPipelineFoundation*&&) (__f=<synthetic pointer>...) at ././/include/c++/11/bits/invoke.h:61 #32 std::__invoke<QtConcurrent::StoredFunctionCall<bool (Digikam::MLPipelineFoundation::*)(), Digikam::MLPipelineFoundation*>::runFunctor()::{lambda(bool (Digikam::MLPipelineFoundation::* const&)(), Digikam::MLPipelineFoundation*)#1}, bool (Digikam::MLPipelineFoundation::*)(), Digikam::MLPipelineFoundation*>(QtConcurrent::StoredFunctionCall<bool (Digikam::MLPipelineFoundation::*)(), Digikam::MLPipelineFoundation*>::runFunctor()::{lambda(bool (Digikam::MLPipelineFoundation::* const&)(), Digikam::MLPipelineFoundation*)#1}, bool (Digikam::MLPipelineFoundation::*&&)(), Digikam::MLPipelineFoundation*&&) (__fn=<synthetic pointer>...) at ././/include/c++/11/bits/invoke.h:96 #33 std::__apply_impl<QtConcurrent::StoredFunctionCall<bool (Digikam::MLPipelineFoundation::*)(), Digikam::MLPipelineFoundation*>::runFunctor()::{lambda(bool (Digikam::MLPipelineFoundation::* const&)(), Digikam::MLPipelineFoundation*)#1}, std::tuple<bool (Digikam::MLPipelineFoundation::*)(), Digikam::MLPipelineFoundation*>, 0ul, 1ul>(QtConcurrent::StoredFunctionCall<bool (Digikam::MLPipelineFoundation::*)(), Digikam::MLPipelineFoundation*>::runFunctor()::{lambda(bool (Digikam::MLPipelineFoundation::* const&)(), Digikam::MLPipelineFoundation*)#1}, std::tuple<bool (Digikam::MLPipelineFoundation::*)(), Digikam::MLPipelineFoundation*>&&, std::integer_sequence<unsigned long, 0ul, 1ul>) (__t=..., __f=<synthetic pointer>...) at ././/include/c++/11/tuple:1854 #34 std::apply<QtConcurrent::StoredFunctionCall<bool (Digikam::MLPipelineFoundation::*)(), Digikam::MLPipelineFoundation*>::runFunctor()::{lambda(bool (Digikam::MLPipelineFoundation::* const&)(), Digikam::MLPipelineFoundation*)#1}, std::tuple<bool (Digikam::MLPipelineFoundation::*)(), Digikam::MLPipelineFoundation*> >(QtConcurrent::StoredFunctionCall<bool (Digikam::MLPipelineFoundation::*)(), Digikam::MLPipelineFoundation*>::runFunctor()::{lambda(bool (Digikam::MLPipelineFoundation::* const&)(), Digikam::MLPipelineFoundation*)#1}, std::tuple<bool (Digikam::MLPipelineFoundation::*)(), Digikam::MLPipelineFoundation*>&&) ( __t=..., __f=<synthetic pointer>...) at ././/include/c++/11/tuple:1865 #35 QtConcurrent::StoredFunctionCall<bool (Digikam::MLPipelineFoundation::*)(), Digikam::MLPipelineFoundation*>::runFunctor (this=0x5555576302b0) at ././/include/QtConcurrent/qtconcurrentstoredfunctioncall.h:122 #36 QtConcurrent::RunFunctionTaskBase<bool>::run (this=0x5555576302b0) at ././/include/QtConcurrent/qtconcurrentrunbase.h:83 #37 0x00007ffff412a12b in ?? () from /tmp/.mount_digiKaOJM2w5/usr/lib/libQt6Core.so.6 #38 0x00007ffff41211f9 in ?? () from /tmp/.mount_digiKaOJM2w5/usr/lib/libQt6Core.so.6 #39 0x00007ffff3694ac3 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442 #40 0x00007ffff3726850 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81 EXPECTED RESULT SOFTWARE/OS VERSIONS Linux/KDE Plasma: Mint 21.3 - runs as appimage. Complete backtrace in attachement
Created attachment 179718 [details] full backtrace
You need to disable OpenCL in the digiKam settings under Miscellaneous -> System (restart digiKam). It crashes when using AMD GPU hardware acceleration. Maik
Maik, Perhaps it miss something to enable in OpenCV to have the AMD GPU support ? https://invent.kde.org/graphics/digikam/-/blob/master/project/bundles/3rdparty/ext_opencv/CMakeLists.txt?ref_type=heads#L82 See the reference here : https://docs.opencv.org/4.x/db/d05/tutorial_config_reference.html Gilles
It crash in the OpenCL part of OpenCV library. Go to the DK/Setup/Misc/system and disable the OpenCL hardware acceleration. https://docs.digikam.org/en/setup_application/miscs_settings.html#system-settings
Due to a Kernel/Mesa bug, I currently have no graphics acceleration at all under openSUSE Tumbleweed with Radeon/AMD. It's still somewhat tolerable under X, but under Wayland, the mouse pointer jumps 5 cm. Once it's working again here, I can try using AMD hardware acceleration and OpenCV. Maik
No AMD device here to test, only Intel/NVidia
Does this setting affect speed of face recognition / detection ? Or it just some setting for gui rendering ? Confirm that uncheck of this option fixed the problem.
From the online doc : "Use the OpenCL hardware acceleration: this option will enable the GPU hardware accelerations with the face management, image quality scanning, and auto-tags features. This option affects the OpenCV engine used in the background for intensive computation on images. To see the details about OpenCV hardware support, go to the Help ‣ Components Information menu item, and look at the OpenCV section in the dialog." Gilles Caulier
Im using this hardware from clinfo
Created attachment 179734 [details] clinfo
Maybe something related from log 2025-03-26 17:11:14.793062 MESA-LOADER: failed to open radeonsi: ././/lib/dri/radeonsi_dri.so: sdílený objektový soubor nelze otevřít: Adresář nebo soubor neexistuje (search paths ././/lib/x86_64-linux-gnu/dri:\$${ORIGIN}/dri:././/lib/dri, suffix _dri) 2025-03-26 17:11:14.793336 MESA-LOADER: failed to open zink: ././/lib/dri/zink_dri.so: sdílený objektový soubor nelze otevřít: Adresář nebo soubor neexistuje (search paths ././/lib/x86_64-linux-gnu/dri:\$${ORIGIN}/dri:././/lib/dri, suffix _dri) 2025-03-26 17:11:14.793599 MESA-LOADER: failed to open kms_swrast: ././/lib/dri/kms_swrast_dri.so: sdílený objektový soubor nelze otevřít: Adresář nebo soubor neexistuje (search paths ././/lib/x86_64-linux-gnu/dri:\$${ORIGIN}/dri:././/lib/dri, suffix _dri) 2025-03-26 17:11:14.793874 MESA-LOADER: failed to open swrast: ././/lib/dri/swrast_dri.so: sdílený objektový soubor nelze otevřít: Adresář nebo soubor neexistuje (search paths ././/lib/x86_64-linux-gnu/dri:\$${ORIGIN}/dri:././/lib/dri, suffix _dri)
yes it's clear, the RADEON is AMD device and MESA the OPenGL software interface under Linux.
Ok, let me clarify my latest comment Something wrong i meant bad path... Probably digikam is trying to search in path with single dots, but expecting double dots notation. I have some files there. See below. pschonmann@E495:/tmp/.mount_digiKaB46bsa$ ls ../..//lib/x86_64-linux-gnu/dri crocus_dri.so d3d12_drv_video.so i965_dri.so iris_dri.so kms_swrast_dri.so~ nouveau_drv_video.so r200_dri.so r600_dri.so r600_drv_video.so radeon_dri.so radeonsi_dri.so~ radeonsi_drv_video.so~ swrast_dri.so~ virtio_gpu_dri.so~ virtio_gpu_drv_video.so~ vmwgfx_dri.so~ d3d12_dri.so i915_dri.so i965_drv_video.so kms_swrast_dri.so nouveau_dri.so nouveau_vieux_dri.so r300_dri.so r600_dri.so~ r600_drv_video.so~ radeonsi_dri.so radeonsi_drv_video.so swrast_dri.so virtio_gpu_dri.so virtio_gpu_drv_video.so vmwgfx_dri.so zink_dri.so instead of one dot in path pschonmann@E495:/tmp/.mount_digiKaB46bsa$ ls ././/lib/x86_64-linux-gnu/dri ls: nelze přistoupit k '././/lib/x86_64-linux-gnu/dri': Adresář nebo soubor neexistuje
Hi Petr, The new AppImage bundle 8.7.0 pre-release for Linux based on Qt 6.8.3 and OpenCV 4.11.0 is online at usual place : https://files.kde.org/digikam/ Let's me here if the problem remain. Best regards Gilles Caulier
This error still persist in digiKam-8.7.0-20250415T100055-Qt6-x86-64.appimage even tried MESA_LOADER_DRIVER_OVERRIDE=radeonsi LD_LIBRARY_PATH="" ./digiKam-8.7.0-20250415T100055-Qt6-x86-64.appimage
(In reply to Petr Schonmann from comment #15) > This error still persist in digiKam-8.7.0-20250415T100055-Qt6-x86-64.appimage > even tried > MESA_LOADER_DRIVER_OVERRIDE=radeonsi LD_LIBRARY_PATH="" > ./digiKam-8.7.0-20250415T100055-Qt6-x86-64.appimage Hi Petr, I just want to confirm digiKam does not crash if "Use the OpenCL..." is unchecked in Settings->Miscellaneous->System. Correct? Cheers, Mike
Hi Petr, What's the crash backtrace with GDB in the AppImage? Just start the AppImage with the argument "debug" at end, and in gdb enter "bt" to get the backtrace. See here for details: https://www.digikam.org/contribute/#linux-host-1 Best Gilles Caulier
Hi Michael, MESA is the OpenGL backend for Linux. Here we have an AMD video card. OpenCV is well compiled in the AppImage for the AMD devices ? https://invent.kde.org/graphics/digikam/-/blob/master/project/bundles/3rdparty/ext_opencv/CMakeLists.txt?ref_type=heads#L10 Look here for a story to read on this topic: https://massedcompute.com/faq-answers/?question=Is%20OpenCV%20DNN%20compatible%20with%20AMD%20GPUs Best Gilles
(In reply to Michael Miller from comment #16) > (In reply to Petr Schonmann from comment #15) > > This error still persist in digiKam-8.7.0-20250415T100055-Qt6-x86-64.appimage > > even tried > > MESA_LOADER_DRIVER_OVERRIDE=radeonsi LD_LIBRARY_PATH="" > > ./digiKam-8.7.0-20250415T100055-Qt6-x86-64.appimage > > Hi Petr, > I just want to confirm digiKam does not crash if "Use the OpenCL..." is > unchecked in Settings->Miscellaneous->System. Correct? > > Cheers, > Mike Yes, when i uncheck this option, digikam is working, but all load is on CPU. In past it was working on gpu well.
(In reply to caulier.gilles from comment #17) > Hi Petr, > > What's the crash backtrace with GDB in the AppImage? Just start the AppImage > with the argument "debug" at end, and in gdb enter "bt" to get the > backtrace. See here for details: > > https://www.digikam.org/contribute/#linux-host-1 > > Best > > Gilles Caulier The new backtrace from pschonmann@E495:~/apps/digikam$ ./digiKam-8.7.0-20250421T180047-Qt6-x86-64-debug.appimage debug is below [Thread 0x7ffec3400640 (LWP 16147) exited] [Thread 0x7ffed2000640 (LWP 16146) exited] [Thread 0x7fff3b400640 (LWP 15697) exited] [Thread 0x7fff47400640 (LWP 15699) exited] [Thread 0x7fff3be00640 (LWP 15696) exited] [Thread 0x7ffed3400640 (LWP 16145) exited] [Thread 0x7ffed1600640 (LWP 16142) exited] [Thread 0x7fff46a00640 (LWP 15698) exited] [Thread 0x7ffeeaa00640 (LWP 16238) exited] [Thread 0x7ffee8c00640 (LWP 16239) exited] Error on line 2762 (ocl.cpp): svmCapabilities is empty Digikam::ItemMarkerTiler::slotSourceModelReset: ---- Thread 32 "Thread (pooled)" received signal SIGSEGV, Segmentation fault. [Switching to Thread 0x7fffa5e00640 (LWP 15415)] 0x00007fffc6f3290d in llvm::AnalysisManager<llvm::Module>::getResultImpl(llvm::AnalysisKey*, llvm::Module&) () from /opt/amdgpu/lib/x86_64-linux-gnu/libLLVM.so.18.1 (gdb) bt #0 0x00007fffc6f3290d in llvm::AnalysisManager<llvm::Module>::getResultImpl(llvm::AnalysisKey*, llvm::Module&) () from /opt/amdgpu/lib/x86_64-linux-gnu/libLLVM.so.18.1 #1 0x00007fffc6f32800 in llvm::AnalysisManager<llvm::Module>::getResultImpl(llvm::AnalysisKey*, llvm::Module&) () from /opt/amdgpu/lib/x86_64-linux-gnu/libLLVM.so.18.1 #2 0x00007fffc6f78d00 in llvm::VerifierPass::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) () from /opt/amdgpu/lib/x86_64-linux-gnu/libLLVM.so.18.1 #3 0x00007fffc8ba1e96 in ?? () from /opt/amdgpu/lib/x86_64-linux-gnu/libLLVM.so.18.1 #4 0x00007fff21275129 in llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) () from /lib/x86_64-linux-gnu/libLLVM-15.so.1 #5 0x00007fff81d29d8d in ?? () from /lib/x86_64-linux-gnu/libclang-cpp.so.15 #6 0x00007fff81d22717 in clang::EmitBackendOutput(clang::DiagnosticsEngine&, clang::HeaderSearchOptions const&, clang::CodeGenOptions const&, clang::TargetOptions const&, clang::LangOptions const&, llvm::StringRef, llvm::Module*, clang::BackendAction, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream> >) () from /lib/x86_64-linux-gnu/libclang-cpp.so.15 #7 0x00007fff820829b1 in ?? () from /lib/x86_64-linux-gnu/libclang-cpp.so.15 #8 0x00007fff80e8cf9b in clang::ParseAST(clang::Sema&, bool, bool) () from /lib/x86_64-linux-gnu/libclang-cpp.so.15 #9 0x00007fff8207ea25 in clang::CodeGenAction::ExecuteAction() () from /lib/x86_64-linux-gnu/libclang-cpp.so.15 #10 0x00007fff82ab6577 in clang::FrontendAction::Execute() () from /lib/x86_64-linux-gnu/libclang-cpp.so.15 #11 0x00007fff82a29686 in clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) () from /lib/x86_64-linux-gnu/libclang-cpp.so.15 #12 0x00007fffa473a4e1 in ?? () from /lib/x86_64-linux-gnu/libMesaOpenCL.so.1 #13 0x00007fffa4675d73 in ?? () from /lib/x86_64-linux-gnu/libMesaOpenCL.so.1 #14 0x00007fffa4653261 in ?? () from /lib/x86_64-linux-gnu/libMesaOpenCL.so.1 #15 0x00007fffe6d8c32d in ?? () from /tmp/.mount_digiKaNZ3bRF/usr/lib/libopencv_core.so.411 #16 0x00007fffe6d9bcd3 in ?? () from /tmp/.mount_digiKaNZ3bRF/usr/lib/libopencv_core.so.411 #17 0x00007fffe6da9648 in ?? () from /tmp/.mount_digiKaNZ3bRF/usr/lib/libopencv_core.so.411 #18 0x00007fffe6daa2ec in cv::ocl::Program::create(cv::ocl::ProgramSource const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&) () from /tmp/.mount_digiKaNZ3bRF/usr/lib/libopencv_core.so.411 #19 0x00007fffe6daa705 in cv::ocl::Context::Impl::getProg(cv::ocl::ProgramSource const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&) () from /tmp/.mount_digiKaNZ3bRF/usr/lib/libopencv_core.so.411 #20 0x00007fffe6daa8ea in cv::ocl::Context::getProg(cv::ocl::ProgramSource const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&) () from /tmp/.mount_digiKaNZ3bRF/usr/lib/libopencv_core.so.411 #21 0x00007fffe6daa9b4 in cv::ocl::Kernel::create(char const*, cv::ocl::ProgramSource const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*) () from /tmp/.mount_digiKaNZ3bRF/usr/lib/libopencv_core.so.411 #22 0x00007fffe6cbb5d1 in cv::copyMakeBorder(cv::_InputArray const&, cv::_OutputArray const&, int, int, int, int, int, cv::Scalar_<double> const&) () from /tmp/.mount_digiKaNZ3bRF/usr/lib/libopencv_core.so.411 #23 0x00007ffff77fd540 in Digikam::DNNSFaceExtractor::getFaceEmbedding (this=this@entry=0x7fffa5dfed90, faceImage=...) at ././/include/opencv4/opencv2/core/mat.inl.hpp:92 #24 0x00007ffff7b935f6 in Digikam::FacePipelineBase::commonFaceThumbnailExtractor (this=<optimized out>, pipelineName=..., stagePriority=stagePriority@entry=QThread::NormalPriority, thisStage=<optimized out>, thisStage@entry=Digikam::MLPipelineFoundation::Extractor, nextStage=nextStage@entry=Digikam::MLPipelineFoundation::Writer, trainingQualityCheck=trainingQualityCheck@entry=true) at /dktemp/digikam-master/core/utilities/facemanagement/pipelines/facepipelinebase.cpp:395 #25 0x00007ffff7b9a8c7 in Digikam::FacePipelineEdit::extractor (this=<optimized out>) at /dktemp/digikam-master/core/utilities/facemanagement/pipelines/edit/facepipelineedit.cpp:321 #26 0x00007ffff6368b46 in std::__invoke_impl<bool, bool (Digikam::MLPipelineFoundation::*&)(), Digikam::MLPipelineFoundation*&> (__f=<synthetic pointer>: <optimized out>, __t=<synthetic pointer>: <optimized out>, __f=<synthetic pointer>: <optimized out>, __t=<synthetic pointer>: <optimized out>) at ././/include/c++/11/bits/invoke.h:74 #27 std::__invoke<bool (Digikam::MLPipelineFoundation::*&)(), Digikam::MLPipelineFoundation*&> (__fn=<synthetic pointer>: <optimized out>) at ././/include/c++/11/bits/invoke.h:96 #28 std::invoke<bool (Digikam::MLPipelineFoundation::*&)(), Digikam::MLPipelineFoundation*&> (__fn=<synthetic pointer>: <optimized out>) at ././/include/c++/11/functional:97 #29 QtConcurrent::StoredFunctionCall<bool (Digikam::MLPipelineFoundation::*)(), Digikam::MLPipelineFoundation*>::runFunctor()::{lambda(bool (Digikam::MLPipelineFoundation::*)(), Digikam::MLPipelineFoundation*)#1}::operator()(bool (Digikam::MLPipelineFoundation::*)(), Digikam::MLPipelineFoundation*) const ( args#0=<optimized out>, function=<optimized out>, __closure=<synthetic pointer>) at ././/include/QtConcurrent/qtconcurrentstoredfunctioncall.h:116 #30 std::__invoke_impl<bool, QtConcurrent::StoredFunctionCall<bool (Digikam::MLPipelineFoundation::*)(), Digikam::MLPipelineFoundation*>::runFunctor()::{lambda(bool (Digikam::MLPipelineFoundation::* const&)(), Digikam::MLPipelineFoundation*)#1}, bool (Digikam::MLPipelineFoundation::*)(), Digikam::MLPipelineFoundation*>(std::__invoke_other, QtConcurrent::StoredFunctionCall<bool (Digikam::MLPipelineFoundation::*)(), Digikam::MLPipelineFoundation*>::runFunctor()::{lambda(bool (Digikam::MLPipelineFoundation::* const&)(), Digikam::MLPipelineFoundation*)#1}, bool (Digikam::MLPipelineFoundation::*&&)(), Digikam::MLPipelineFoundation*&&) (__f=<synthetic pointer>...) at ././/include/c++/11/bits/invoke.h:61 #31 std::__invoke<QtConcurrent::StoredFunctionCall<bool (Digikam::MLPipelineFoundation::*)(), Digikam::MLPipelineFoundation*>::runFunctor()::{lambda(bool (Digikam::MLPipelineFoundation::* const&)(), Digikam::MLPipelineFoundation*)#1}, bool (Digikam::MLPipelineFoundation::*)(), Digikam::MLPipelineFoundation*>(QtConcurrent::StoredFunctionCall<bool (Digikam::MLPipelineFoundation::*)(), Digikam::MLPipelineFoundation*>::runFunctor()::{lambda(bool (Digikam::MLPipelineFoundation::* const&)(), Digikam::MLPipelineFoundation*)#1}, bool (Digikam::MLPipelineFoundation::*&&)(), Digikam::MLPipelineFoundation*&&) (__fn=<synthetic pointer>...) at ././/include/c++/11/bits/invoke.h:96 #32 std::__apply_impl<QtConcurrent::StoredFunctionCall<bool (Digikam::MLPipelineFoundation::*)(), Digikam::MLPipelineFoundation*>::runFunctor()::{lambda(bool (Digikam::MLPipelineFoundation::* const&)(), Digikam::MLPipelineFoundation*)#1}, std::tuple<bool (Digikam::MLPipelineFoundation::*)(), Digikam::MLPipelineFoundation*>, 0ul, 1ul>(QtConcurrent::StoredFunctionCall<bool (Digikam::MLPipelineFoundation::*)(), Digikam::MLPipelineFoundation*>::runFunctor()::{lambda(bool (Digikam::MLPipelineFoundation::* const&)(), Digikam::MLPipelineFoundation*)#1}, std::tuple<bool (Digikam::MLPipelineFoundation::*)(), Digikam::MLPipelineFoundation*>&&, std::integer_sequence<unsigned long, 0ul, 1ul>) (__t=..., __f=<synthetic pointer>...) at ././/include/c++/11/tuple:1854 #33 std::apply<QtConcurrent::StoredFunctionCall<bool (Digikam::MLPipelineFoundation::*)(), Digikam::MLPipelineFoundation*>::runFunctor()::{lambda(bool (Digikam::MLPipelineFoundation::* const&)(), Digikam::MLPipelineFoundation*)#1}, std::tuple<bool (Digikam::MLPipelineFoundation::*)(), Digikam::MLPipelineFoundation*> >(QtConcurrent::StoredFunctionCall<bool (Digikam::MLPipelineFoundation::*)(), Digikam::MLPipelineFoundation*>::runFunctor()::{lambda(bool (Digikam::MLPipelineFoundation::* const&)(), Digikam::MLPipelineFoundation*)#1}, std::tuple<bool (Digikam::MLPipelineFoundation::*)(), Digikam::MLPipelineFoundation*>&&) ( __t=..., __f=<synthetic pointer>...) at ././/include/c++/11/tuple:1865 #34 QtConcurrent::StoredFunctionCall<bool (Digikam::MLPipelineFoundation::*)(), Digikam::MLPipelineFoundation*>::runFunctor (this=0x5555575b3e40) at ././/include/QtConcurrent/qtconcurrentstoredfunctioncall.h:122 #35 QtConcurrent::RunFunctionTaskBase<bool>::run (this=0x5555575b3e40) at ././/include/QtConcurrent/qtconcurrentrunbase.h:83 #36 0x00007ffff412ce6b in ?? () from /tmp/.mount_digiKaNZ3bRF/usr/lib/libQt6Core.so.6 #37 0x00007ffff41232db in ?? () from /tmp/.mount_digiKaNZ3bRF/usr/lib/libQt6Core.so.6 #38 0x00007ffff3694ac3 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442 #39 0x00007ffff3726850 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
Hi Petr, The backtrace is showing the error is still coming from the AMD GPU drivers. Turning off OpenCL support will fix the issue until the digiKam team can come up with a better way to check for GPU compatibility. > #21 0x00007fffe6daa9b4 in cv::ocl::Kernel::create(char const*, cv::ocl::ProgramSource const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*) () from /tmp/.mount_digiKaNZ3bRF/usr/lib/libopencv_core.so.411 > #22 0x00007fffe6cbb5d1 in cv::copyMakeBorder(cv::_InputArray const&, cv::_OutputArray const&, int, int, int, int, int, cv::Scalar_<double> const& () from /tmp/.mount_digiKaNZ3bRF/usr/lib/libopencv_core.so.411 > #23 0x00007ffff77fd540 in Digikam::DNNSFaceExtractor::getFaceEmbedding (this=this@entry=0x7fffa5dfed90, faceImage=...) at ././/include/opencv4/opencv2/core/mat.inl.hpp:92 Cheers, Mike
Hi Petr, Did you confirm last comment from Michael about to disable OpenCL option in digiKam ? Best Gilles Caulier
Yes, when i turn off opencl, it works, but too slowly as expected without accelerated operations
Same OpenCL problem than bug 507470 *** This bug has been marked as a duplicate of bug 507470 ***