RetroArch
RetroArch copied to clipboard
(Qt) Shader menu can freeze RetroArch on closing content/exiting
Description
Closing content or exiting RetroArch when the Qt shader menu is open can cause crashes, freezes and sometimes hundreds of messages like:
QBasicTimer::start: QBasicTimer can only be used with threads started with QThread
QBasicTimer::start: QBasicTimer can only be used with threads started with QThread
QBasicTimer::start: QBasicTimer can only be used with threads started with QThread
...
QObject::killTimer: Timers cannot be stopped from another thread
QObject::~QObject: Timers cannot be stopped from another thread
This seems to be related to the way shader parameters are loaded, as the crash seems to happen somewhere after
[INFO] [Qt]: Reloading shader parameters.
Sometimes this is the very last log message.
Steps to reproduce the bug
The best way I found to reproduce:
- Load
shaders_glsl/crt/crt-royale.glslp
- Open Qt shader menu
- Close Content or Exit to freeze and eventually crash RetroArch
It might not always crash, but with crt-royale there seems to be a very high probability.
Bisect Results
I noticed this issue while testing for #9315 (but couldn't find a good way to reproduce it). It was on master before that and it might be an issue that is as old as the Qt shader menu itself.