RPCS3 / rpcs3

PS3 emulator/debugger
https://rpcs3.net/
GNU General Public License v2.0
14.55k stars 1.85k forks source link

Kuroi UI stylesheet results in infinite loop and crash on any dialogue window #15600

Open v-fox opened 2 weeks ago

v-fox commented 2 weeks ago

Quick summary

When trying to install fresh BIOS unto newest openSUSE build (v0.0.32-0.0.32~git20240507) it crashed right after calling the dialogue for file. Running in gdb shows something of an infinite loop in Qt style code.

Details

Using "none", "native (breeze)" or "native (oxygen)" instead works BUT with breeze game icons do not load. Although, this may or may not have something to do with me patching in https://github.com/RPCS3/rpcs3/pull/15473 in hopes that it would somehow resolve the original issue.

Attach a log file

RPCS3.log

#0  0x00007fffeb9d8e09 in QObjectPrivate::connectImpl(QObject const*, int, QObject const*, void**, QtPrivate::QSlotObjectBase*, int, int const*, QMetaObject const*) () at /lib64/libQt6Core.so.6
#1  0x00007fffeb9de9cb in QObject::connectImpl(QObject const*, void**, QObject const*, void**, QtPrivate::QSlotObjectBase*, Qt::ConnectionType, int const*, QMetaObject const*) () at /lib64/libQt6Core.so.6
#2  0x00007fff577e4ad4 in  () at /usr/lib64/qt6/plugins/styles/breeze6.so
#3  0x00007fff57797eed in  () at /usr/lib64/qt6/plugins/styles/breeze6.so
#4  0x00007fff577aa88c in  () at /usr/lib64/qt6/plugins/styles/breeze6.so
#5  0x00007fffecc62846 in  () at /lib64/libQt6Widgets.so.6
#6  0x00007fff57cfef4e in  () at /lib64/libKF6WidgetsAddons.so.6
#7  0x00007fff57d01731 in KMessageWidget::event(QEvent*) () at /lib64/libKF6WidgetsAddons.so.6
#8  0x00007fffecbc2f1e in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib64/libQt6Widgets.so.6
#9  0x00007fffeb98f060 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib64/libQt6Core.so.6
#10 0x00007fffecbf6936 in QWidgetPrivate::propagatePaletteChange() () at /lib64/libQt6Widgets.so.6
#11 0x00007fffecbfde08 in QWidgetPrivate::setPalette_helper(QPalette const&) () at /lib64/libQt6Widgets.so.6
#12 0x00007fffecbffc54 in QWidget::setPalette(QPalette const&) () at /lib64/libQt6Widgets.so.6
#13 0x00007fffecc64966 in  () at /lib64/libQt6Widgets.so.6
#14 0x00007fff57cfef4e in  () at /lib64/libKF6WidgetsAddons.so.6
#15 0x00007fff57d01731 in KMessageWidget::event(QEvent*) () at /lib64/libKF6WidgetsAddons.so.6
#16 0x00007fffecbc2f1e in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib64/libQt6Widgets.so.6
#17 0x00007fffeb98f060 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib64/libQt6Core.so.6
#18 0x00007fffecbf6936 in QWidgetPrivate::propagatePaletteChange() () at /lib64/libQt6Widgets.so.6
#19 0x00007fffecbfde08 in QWidgetPrivate::setPalette_helper(QPalette const&) () at /lib64/libQt6Widgets.so.6
#20 0x00007fffecbffc54 in QWidget::setPalette(QPalette const&) () at /lib64/libQt6Widgets.so.6
#21 0x00007fffecc5a1c7 in  () at /lib64/libQt6Widgets.so.6
#22 0x00007fffecc6325b in  () at /lib64/libQt6Widgets.so.6
#23 0x00007fff57cfef4e in  () at /lib64/libKF6WidgetsAddons.so.6
#24 0x00007fff57d01731 in KMessageWidget::event(QEvent*) () at /lib64/libKF6WidgetsAddons.so.6
#25 0x00007fffecbc2f1e in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib64/libQt6Widgets.so.6
#26 0x00007fffeb98f060 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib64/libQt6Core.so.6
#27 0x00007fffecbf6936 in QWidgetPrivate::propagatePaletteChange() () at /lib64/libQt6Widgets.so.6
#28 0x00007fffecbfde08 in QWidgetPrivate::setPalette_helper(QPalette const&) () at /lib64/libQt6Widgets.so.6
#29 0x00007fffecbffc54 in QWidget::setPalette(QPalette const&) () at /lib64/libQt6Widgets.so.6
#30 0x00007fff648f35c8 in KStyle::polish(QWidget*) () at /lib64/libKF6Style.so.6
#31 0x00007fffecc62846 in  () at /lib64/libQt6Widgets.so.6
#32 0x00007fff57cfef4e in  () at /lib64/libKF6WidgetsAddons.so.6
…

Attach capture files for visual issues

No response

System configuration

Intel(R) Xeon(R) CPU E5-2697 v2 @ 2.70GHz | 24 Threads | 15.46 GiB RAM | TSC: 2.700GHz | AVX Operating system: POSIX, Name: Linux, Release: 6.8.9-2962.gd3445e0-HSF, Version: #1 SMP PREEMPT_DYNAMIC Fri May 10 08:51:14 UTC 2024 (d3445e0) Qt version: Compiled against Qt 6.7.0 | Run-time uses Qt 6.7.0 ·A 0:00:00.323527 {Vulkan Device Enumeration Thread} RSX: Found Vulkan-compatible GPU: 'AMD Radeon RX 580 Series (RADV POLARIS10)' running on driver 24.1.0

Other details

Seems like this happens with all non-native themes.

AniLeo commented 2 weeks ago

Cannot reproduce with Qt 6.6. This is very likely because you built with Qt 6.7 which we don't support yet.

Megamouse commented 2 weeks ago

Cannot reproduce with Qt 6.6. This is very likely because you built with Qt 6.7 which we don't support yet.

Mainly because it seems to have many bugs related to the style and UI.

v-fox commented 2 weeks ago

Cannot reproduce with Qt 6.6. This is very likely because you built with Qt 6.7 which we don't support yet.

It's not like there is a choice, distro updated & removed the old one and apps using Qt's private API definitively break if not recompiled.

Mainly because it seems to have many bugs related to the style and UI.

At least native themes seem to work fine so far.

Well, not counting return of an old KDE bug in KDE6/Qt6 where any window of any app will occasionally leave permanent "window screenshot" over desktop if minimized "at wrong circumstances" until whole WM compositing is restarted... and another old Qt bug making apps auto-exit if they are started minimized to tray... It really hates minimization for some reason.