Go to file
Milian Wolff 4f14b42f7d Add support for forced VSYNC using the EGLFS platform plugin.
Before a buffer swap the new QEglFSHooks::waitForVSync method is
called which looks at QT_QPA_EGLFS_FORCEVSYNC and - if that is set
and non-null - calls ioctl with the FBIO_WAITFORVSYNC request on
the framebuffer device.

This is required on some embedded platforms where the driver does not
support VSYNC yet the Kernel provides a generic implementation.

I tested this using QML_RENDER_TIMING=1 which proofs that the frame
rate for an example of mine drops from >125fps to a straight ~60fps
with a few frames that take ~33ms (i.e. 30fps) as expected for VSYNC.

To prevent excessive open/close calls on the frame buffer device
per frame, the file descriptor is now cached. To keep the QEglFSHooks
interface as clean as possible this is done via a global static in
qeglfshooks_stub.cpp and initialized and freed in platformInit and
platformDestroy.

Change-Id: I4d31b227c65ff22aa089db0fbc62c89a59cbb6c7
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2013-02-22 09:24:40 +01:00
bin syncqt: Use /usr/bin/env perl not /usr/bin/perl 2013-02-20 22:19:43 +01:00
config.tests Relax unix compile.test to check the expected file exists 2013-02-20 22:19:43 +01:00
dist Merge remote-tracking branch 'origin/stable' into dev 2013-02-18 16:14:52 +01:00
doc Merge remote-tracking branch 'origin/stable' into dev 2013-02-18 16:14:52 +01:00
examples Check for network module when building according examples 2013-02-21 07:27:25 +01:00
lib Initial import from the monolithic Qt. 2011-04-27 12:05:43 +02:00
mkspecs Merge remote-tracking branch 'origin/stable' into dev 2013-02-20 22:08:29 +01:00
qmake Unify win32-g++ and Unix qmake Makefiles. 2013-02-19 10:35:06 +01:00
src Add support for forced VSYNC using the EGLFS platform plugin. 2013-02-22 09:24:40 +01:00
tests Fix QMetaType of const references 2013-02-21 14:54:00 +01:00
tools Merge remote-tracking branch 'origin/stable' into dev 2013-02-20 22:08:29 +01:00
util Merge remote-tracking branch 'origin/stable' into dev 2013-02-14 14:24:57 +01:00
.gitattributes Update the git-archive export options 2012-09-07 15:39:31 +02:00
.gitignore Add qmake generated files to .gitignore. 2012-12-19 21:31:58 +01:00
.qmake.conf don't auto-install example sources by default for all modules 2012-12-03 15:56:28 +01:00
.tag Update the git-archive export options 2012-09-07 15:39:31 +02:00
configure Merge remote-tracking branch 'origin/stable' into dev 2013-02-20 22:08:29 +01:00
configure.bat Update copyright year in Digia's license headers 2013-01-18 09:07:35 +01:00
header.BSD Update copyright year in Digia's license headers 2013-01-18 09:07:35 +01:00
header.FDL Update copyright year in Digia's license headers 2013-01-18 09:07:35 +01:00
header.LGPL Update copyright year in Digia's license headers 2013-01-18 09:07:35 +01:00
header.LGPL-ONLY Update copyright year in Digia's license headers 2013-01-18 09:07:35 +01:00
INSTALL fix links in INSTALL 2012-10-10 08:45:22 +02:00
LGPL_EXCEPTION.txt Change copyrights from Nokia to Digia 2012-09-22 19:20:11 +02:00
LICENSE.FDL Initial import from the monolithic Qt. 2011-04-27 12:05:43 +02:00
LICENSE.GPL Add the LICENSE.GPL file to the module referenced from license headers 2012-05-20 22:41:08 +02:00
LICENSE.LGPL Update copyright year in Digia's license headers 2013-01-18 09:07:35 +01:00
LICENSE.PREVIEW.COMMERCIAL Change copyrights from Nokia to Digia 2012-09-22 19:20:11 +02:00
qtbase.pro create tool pri file for syncqt 2013-02-11 18:00:12 +01:00
sync.profile syncqt: Don't check for QT_{BEGIN,END}_HEADER macros 2013-01-26 18:18:46 +01:00