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.
Attachments
For Gerrit Dashboard: QTBUG-55521 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
169202,4 | Ensure windows renderloop doesn't stop existing, running, animations | dev | qt/qtdeclarative | Status: MERGED | +2 | 0 |