2015-12-16 93 views
1

我注意到在我的基於Tegra 3的嵌入式Linux電路板上,有一些Qt 2動畫與Qt 5.4.2分離。我懷疑這是否是一個完整的vsync問題,因爲大部分動畫都是平滑的,但有一些動畫涉及大量的平行運動和裁剪,這些都會持續下去。與簡單的口吃相比,這些動畫出現了撕裂,所以我不認爲這完全是性能問題。雖然這可能是由於系統無法提供必要的FPS來正確同步造成的?完全相同的應用程序在我的Haswell i7 PC上沒有這樣的麻煩。QML動畫的一些撕裂

我已經啓用QT_QPA_EGLFS_FORCEVSYNC沒有任何作用,還沒有設法找到任何我可以嘗試的東西。我應該提到,由於Nvidia驅動程序規定使用X11,我正在運行帶有X11後端的EGLFS(http://code.qt.io/cgit/qt/qtbase.git/tree/src/plugins/platforms/eglfs/qeglfshooks_x11.cpp?h=5.4)。我認爲這意味着我無法真正使用EGLFS通常可用的FB相關設置。還有什麼我可以嘗試解決這個問題嗎?

PS。通過設置QT_QPA_EGLFS_SWAPINTERVAL爲0,我可以使撕裂變得更糟。這再次表明我很可能沒有整個系統vsync問題。

PPS。我在應用程序的開始處得到了「QSGContext :: initialize:模板緩衝區支持缺失,期望呈現錯誤」警告。

回答

-1

在具有Vivante GC2000的飛思卡爾/恩智浦imx6上,即使不使用x11,也會發現類似的問題。

設置「export QT_QPA_EGLFS_SWAPINTERVAL = 2」似乎減少了對3.14.38內核的撕裂。

在3.14.52內核沒有工作,但「導出FB_MULTI_BUFFER = 3」在Qt 5.5.1和5.6和imx6上都有幫助。