Details
-
Bug
-
Resolution: Done
-
P1: Critical
-
5.6.0, 5.7.0
-
None
-
Windows 10, Windows 7
Description
Attached is a very small demonstration program. It is simply a QPropertyAnimation that is animating the opacity of a QMainWindow. When you press the button it creates a QQuickWindow (just creates it) - doing this breaks any animation such that they no longer progress.
The reason this happens is that the QQuickWindow constructor calls through to :
QSGRenderLoop *QSGRenderLoop::instance()
which decides it's best to use QSGWindowsRenderLoop (due to the QCoreApplication::setAttribute(Qt::AA_UseSoftwareOpenGL); in main.cpp)
Somehow this is broken such that it never advances the global timer and so all the animations don't progress. The QSGAnimationDriver::advance() function does not get called, no animations run from that point forwards, even new animations that you create.
It all works fine if I override the QSG_RENDER_LOOP by setting the environment variable QSG_RENDER_LOOP=threaded
So it would seem that the QSGWindowsRenderLoop is broken somehow.