iMX6 上的 Qt5:平台 eglfs 与 xcb 上 运行 的性能优势
Qt5 on iMX6: performance advantage on running on platform eglfs vs xcb
我有一个 Qt5
应用程序,它使用 Qwt
库来绘制一些轨迹,具有图形缩放功能,以及一些其他简单的 Qt 小部件,例如 QLabel
、QPushButton
, 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 板上非常流畅和高质量。
我有一个 Qt5
应用程序,它使用 Qwt
库来绘制一些轨迹,具有图形缩放功能,以及一些其他简单的 Qt 小部件,例如 QLabel
、QPushButton
, 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 板上非常流畅和高质量。