huxingyi / dust3d

Dust3D is a cross-platform 3D modeling software that makes it easy to create low poly 3D models for video games, 3D printing, and more.
https://dust3d.org/
MIT License
2.99k stars 223 forks source link

Segmentation fault with Qt6 on aarch64 Raspberry Pi OS "Bookworm" #162

Open gustafla opened 6 months ago

gustafla commented 6 months ago

Hi. I'm trying to run dust3d on Raspberry Pi 5 (aarch64), Raspberry Pi OS "bookworm".

Steps to build:

sudo apt install qmake6 qt6-base-dev libqt6svg6 libqt6svgwidgets6 qt6-svg-dev
cd dust3d/application
qmake6 CONFIG+=debug
make -j4

Running it in gdb results in the following crash:

Starting program: dust3d 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/aarch64-linux-gnu/libthread_db.so.1".
[New Thread 0x7ff2beef80 (LWP 4658)]
[New Thread 0x7ff23def80 (LWP 4659)]
[New Thread 0x7ff17f2f80 (LWP 4660)]
[New Thread 0x7fda45ef80 (LWP 4661)]
[New Thread 0x7fd9c4ef80 (LWP 4662)]
[New Thread 0x7fd943ef80 (LWP 4663)]
[New Thread 0x7fd8c2ef80 (LWP 4664)]
[New Thread 0x7fcbffef80 (LWP 4665)]
[New Thread 0x7fcb7eef80 (LWP 4666)]
[Thread 0x7fd9c4ef80 (LWP 4662) exited]
[New Thread 0x7fd9c4ef80 (LWP 4669)]

Thread 1 "dust3d" received signal SIGSEGV, Segmentation fault.
0x0000007ff726c9f4 in ?? () from /lib/aarch64-linux-gnu/libQt6Gui.so.6
(gdb) backtrace 
#0  0x0000007ff726c9f4 in ?? () from /lib/aarch64-linux-gnu/libQt6Gui.so.6
#1  0x0000007ff731a748 in QPlatformBackingStore::rhiFlush(QWindow*, double, QRegion const&, QPoint const&, QPlatformTextureList*, bool) ()
   from /lib/aarch64-linux-gnu/libQt6Gui.so.6
#2  0x0000007ff7957418 in QWidgetRepaintManager::flush(QWidget*, QRegion const&, QPlatformTextureList*) () from /lib/aarch64-linux-gnu/libQt6Widgets.so.6
#3  0x0000007ff7957910 in QWidgetRepaintManager::flush() () from /lib/aarch64-linux-gnu/libQt6Widgets.so.6
#4  0x0000007ff7958f98 in QWidgetRepaintManager::paintAndFlush() () from /lib/aarch64-linux-gnu/libQt6Widgets.so.6
#5  0x0000007ff7955078 in QWidgetRepaintManager::sync(QWidget*, QRegion const&) () from /lib/aarch64-linux-gnu/libQt6Widgets.so.6
#6  0x0000007ff795bcac in ?? () from /lib/aarch64-linux-gnu/libQt6Widgets.so.6
#7  0x0000007ff7907f7c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /lib/aarch64-linux-gnu/libQt6Widgets.so.6
#8  0x0000007ff6c16624 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /lib/aarch64-linux-gnu/libQt6Core.so.6
#9  0x0000007ff7212ed4 in QGuiApplicationPrivate::processExposeEvent(QWindowSystemInterfacePrivate::ExposeEvent*) () from /lib/aarch64-linux-gnu/libQt6Gui.so.6
#10 0x0000007ff7255e74 in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/aarch64-linux-gnu/libQt6Gui.so.6
#11 0x0000007ff751d868 in ?? () from /lib/aarch64-linux-gnu/libQt6Gui.so.6
#12 0x0000007ff62a774c in g_main_context_dispatch () from /lib/aarch64-linux-gnu/libglib-2.0.so.0
#13 0x0000007ff62a79e0 in ?? () from /lib/aarch64-linux-gnu/libglib-2.0.so.0
#14 0x0000007ff62a7a84 in g_main_context_iteration () from /lib/aarch64-linux-gnu/libglib-2.0.so.0
#15 0x0000007ff6df4804 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/aarch64-linux-gnu/libQt6Core.so.6
#16 0x0000007ff6c20610 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/aarch64-linux-gnu/libQt6Core.so.6
#17 0x0000007ff6c19448 in QCoreApplication::exec() () from /lib/aarch64-linux-gnu/libQt6Core.so.6
#18 0x000000555567bb0c in main (argc=1, argv=0x7fffffef98) at sources/main.cc:122

Thanks for developing this cool 3d modeling program. I'm unfortunately not able to debug this further myself for now.