当我水平快速滚动时,我的应用程序出现了撕裂问题。通常我只是启用vsync,但我不知道如何在Qt中执行此操作。撕裂发生在我的开发PC上,它使用X-server运行Linux,但它也需要在Android或Linux + EGLFS的目标系统上运行良好。
一个谷歌的结果来自Qt4时代,并表示撕裂将在Qt 5中消失。但显然它不是。
许多谷歌搜索结果都是关于嵌入式Linux系统的env vars,例如QT_QPA_EGLFS_FORCEVSYNC
,但我更喜欢这个解决方案适用于我的开发PC。
一个google结果表示启用/禁用vsync取决于正在使用的renderloop。我没有覆盖renderloop,所以,因为我在linux上,我想我使用的是threaded
renderloop。
答案 0 :(得分:0)
这是关于导致此问题的nvidia二进制驱动程序的错误报告。
https://bugreports.qt.io/browse/QTBUG-45480
我也在使用这些驱动程序,所以这可能就是它 - 只是一个驱动程序错误。如果是这样,至少它不太可能发生在我的目标硬件上(我还没有在那里测试过),所以这很好。