When I place a QThread::usleep(16667) inside the rendering loop, and create the window with QSurfaceFormat::setSwapInterval(0) (no vertical sync), the rendering runs smoothly at no noticeable GPU load. With vertical synchronisation switched on (setSwapInterval(1)), there are in fact not more than 60 fps rendered, but the GPU is heavily working on something.
The same occurs on another system (Qt Creator Community OpenGL, mingw, Win32, Intel Q6600, VGA AMD 3850). Can anyone confirm this?
It depends if it's a Qt Quick application or not. If you are using widgets or doing your own custom OpenGL rendering then there will be no problem. The issue with Qt Quick is that it has its own animation system which gets driven by the default 16.66 ms on platforms where it fails to query the real refresh rate from the system. Run with QSG_INFO=1 to verify the actual value that is in use. (NB Qt 5.5 has some improvements in this area - https://bugreports.qt.io/browse/QTBUG-44971 - so it is now able to retrive the correct refresh rate on embedded platforms too)
Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.