linux - QML 动画有些撕裂

标签 linux qt qml qt5 x11

我注意到在我基于 Tegra 3 的嵌入式 Linux 开发板上使用 Qt 5.4.2 的一些 QML 2 动画有些撕裂。我怀疑这是否是一个完整的 vsync 问题,因为大多数动画都很流畅,但有些动画涉及大量平行运动和剪裁,这些动画会持续撕裂。这些动画出来时是撕裂的,而不是简单的卡顿,所以我认为这也不完全是性能问题。尽管这可能是由于系统无法提供必要的 FPS 以正确同步造成的?完全相同的应用程序在我的 Haswell i7 PC 上没有这样的问题。

我已启用 QT_QPA_EGLFS_FORCEVSYNC 无效,并且尚未设法找到我可以尝试的任何其他方法。我应该提一下,由于 Nvidia 驱动程序指示使用 X11,我正在使用 X11 后端 ( http://code.qt.io/cgit/qt/qtbase.git/tree/src/plugins/platforms/eglfs/qeglfshooks_x11.cpp?h=5.4 ) 运行 EGLFS。我认为这意味着我不能真正使用 EGLFS 通常可用的 FB 相关设置。我可以尝试解决此问题吗?

附言。通过将 QT_QPA_EGLFS_SWAPINTERVAL 设置为 0,我可以使撕裂变得更糟。这再次表明我很可能没有整个系统 vsync 问题。

PPS。我在我的应用程序开始时收到“QSGContext::initialize:缺少模板缓冲区支持,预计会出现渲染错误”警告。

最佳答案

在配备 Vivante GC2000 的 Freescale/NXP imx6 上,即使不使用 x11,我也会遇到类似的问题。

设置“export QT_QPA_EGLFS_SWAPINTERVAL=2”似乎可以减少 3.14.38 内核的撕裂。

在 3.14.52 内核上不起作用,但“export FB_MULTI_BUFFER=3”对带有 imx6 的 Qt 5.5.1 和 5.6 都有帮助。

关于linux - QML 动画有些撕裂,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34304670/

相关文章:

linux - 如何将 curl 用于非交互式重复性任务 - 每天下载销售 CSV 文件 20 次

c++ - 你如何在 Ubuntu 中的 QT 中的 QcustomPlot 上画两条线?

c++ - 如何设置 QPushButton 的精确大小?

qt - QML FolderListModel 过滤掉文件并仅显示文件夹

从 qrc 导入 qml 时 QtCreator 语法突出显示

linux - Bash 脚本在杀死它自己及其所有子进程的 PGID 后没有被杀死

linux - 如何使用ssh heredoc在bash中删除多个文件?

linux - 将 Linux 串行波特率设置为高于 4 兆波特

c++ - Qt:Windows 10:未加载 QMYSQL 驱动程序

c++ - QImage 与 QThreads