Qt Quick 2场景图是否同步到EGLFS上的vsync?

时间:2013-07-30 14:01:16

标签: qml qt5 qtquick2

我正在研究Qt 5.1中的Qt Quick 2。很酷。但是,我不了解Scene Graph功能。如果我只是创建Flickable,将一堆图像放到它上面,并在带有EGLFS后端的嵌入式设备上的QQuickView中显示 - 我是否使用了场景图?

如果是,为什么我会看到撕裂 - 场景图应该是VSynced?

如果没有 - 我应该怎么做才能与Flickable一起使用?或者这是否意味着我应该从零开始实施所有内容?

我的应用程序基本上允许浏览无限生成的图像。

1 个答案:

答案 0 :(得分:1)

QtQuick2具有唯一后端的场景图。所以,是的,你正在使用它。这是否会被vsynced,这是另一个故事 - 主要取决于场景图是否使用渲染线程,以及驱动程序的质量(即交换缓冲区是否等待vsync)。你可以尝试

  1. 运行您的应用,环境变量QML_RENDER_TIMING设置为非零值;这将打印您的应用程序的框架统计信息。如果您的帧长度不是vsync间隔的精确倍数,那么您没有vsync

  2. 使用环境变量QT_QPA_EGLFS_FORCEVSYNC运行您的应用,它将尝试使用FBIO_WAITFORVSYNC ioctl尝试与vsync同步。