iMX6 上的 Qt5:平台 eglfs 与 xcb 上 运行 的性能优势

Qt5 on iMX6: performance advantage on running on platform eglfs vs xcb

我有一个 Qt5 应用程序,它使用 Qwt 库来绘制一些轨迹,具有图形缩放功能,以及一些其他简单的 Qt 小部件,例如 QLabelQPushButton , QScrollBar, QFrame 等.

应用程序 运行正在 Linux 上线。

Linux 内核是 3.10.17.

发行版是 Ubuntu 14.04.4 LTS(可信)。

Qt 版本为 5.2.1。

我正在尝试 运行 应用程序指定平台 eglfs(据我所知,它应该直接在 Linux 帧缓冲区上工作)而不是默认的 xcb(需要 X 服务器)。 但是我无法让它工作(这个post中描述了问题:"EGL Error : could not create the EGL surface: error 0x300b" on i.MX6 when running Qt5 application with -platform eglfs)。

我的问题是: 如果我成功了,就 CPU 负载而言,eglfs 相对于 xcb 会有显着的性能改进吗?

我没有看到 Qt 的 eglfs 或 xcb 平台之间的巨大差异,甚至 xcb 有时更流畅。例如,xcb 中的鼠标移动非常流畅,eglfs 中则不然。 但是如果你使用 QGlPainter 而不是 QPainter 并且相应地使用 QGlWidget 而不是 QWidget 将会有一个巨大的改进。

此外,QtQuick2 与 eglfs 配合得很好,它在我们的 IMX6-Rex 板上非常流畅和高质量。