当我快速水平滚动时,我的应用程序出现撕裂问题。通常我只是启用 vsync,但我不知道如何在 Qt 中执行此操作。撕裂发生在我的开发 PC 上,它运行带有 X 服务器的 Linux,但它也需要在 Android 或 Linux + EGLFS 的目标系统上运行良好。
Google 的一个结果来自 Qt4 时代,并说撕裂将在 Qt 5 中消失。但显然不是。
许多谷歌搜索结果都是关于嵌入式 linux 系统的环境变量,例如 QT_QPA_EGLFS_FORCEVSYNC
,但我更希望该解决方案也适用于我的开发 PC。
一个谷歌结果表明启用/禁用 vsync 取决于正在使用的渲染循环。我没有覆盖 renderloop,所以,因为我在 linux 上,我想我正在使用 threaded
renderloop。
最佳答案
这是一个关于导致此问题的 nvidia 二进制驱动程序的错误报告。
https://bugreports.qt.io/browse/QTBUG-45480
我也在使用这些驱动程序,所以可能就是这样 - 只是一个驱动程序错误。如果是这样,至少它不太可能发生在我的目标硬件上(我还没有在那里测试过),所以这很好。
关于linux - 如何使用 Qt 5.9.1 修复 Qt Quick 应用程序中的撕裂?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46281939/