75Hz vsync, only shows 60 FPS
I am developer in Continental and we are trying here to explore Qt for automotive development. Last couple of weeks we are trying to get work vsync with 75Hz.
We have crosschecked so far:
- FB_MULTIBUFFER set to 2 - to enable multibuffering and vsync
- many times we have checked if the calculation of fbset parameters for our automotive display are correct. Display has to work with 75Hz and on another projects it is also working with this frequency.
- System is running on imx6 SL and Sabre automotive with Qt 5.0.2 (because of our internal support we cant use newer version of Qt) and the application itself is running on EGLFS platform.
- FPS counter in Qt application shows only 60FPS
So my question is, isn't there in Qt bug or something which fix the frame rate for 60FPS? Unfortunately for automotive development we need 75Hz, otherwise the project will never be accepted. Thank you for answer
Is it a Qt Quick (QML) application? If so, it is unfortunately expected since the animation system of Qt Quick relies on the refresh rate reported from the platform integration. Currently the reported value is always 60 on embedded platforms.
Until the necessary support for dynamically querying the refresh rate is implemented, you could temporarily change the Qt sources to return 75 from e.g. QPlatformScreen::refreshRate().
Yes, it is Qt Quick (QML) application.
Thank you very much for your answer. I thought that there could be such a problem. Do you know exactly where I can find it in the source files? Or it is in QPlatformSceen module only?
So it seems, that our display was wrong. Now we were able to run demo with 75FPS and without vsync even at 100FPS - than of course as we would expect with screen tearing effect on fast moving parts.
It seems that 75Hz is now working fine. Than I am confused, how it is possible, when Qt should be fixed on embedded devices to 60 FPS?
Is the information about maximum FPS fixed to 60 really correct? Can someone please confirm this information?
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)