Hi,
I have a single qt application running on a imx8m mini which has to be displayed in fulscreen mode on a display. So it its not necessary to use wayland or x11.
As far as I understand, it is currently impossible to build qtbase with "eglfs" in PACKAGECONFIG without also having "wayland" in DISTRO_FEATURES in a build for an imx8. Is this correct?
This is my reasoning:
1) the currently available iimx8 SOCs all have "imxgpu3d":
https://github.com/Freescale/meta-freescale/blob/dunfell/conf/machine/include/imx-base.inc
2) this means that qtbase PACKAGECONFIG_GL will be "gles2":
https://github.com/Freescale/meta-freescale/blob/dunfell/dynamic-layers/qt5-layer/recipes-qt/qt5/qtb...
3) so imx-gpu-viv will be required to provide "virtual/libgles2". imx-gpu-viv then requires "wayland" as a DISTRO_FEATURE
https://github.com/Freescale/meta-freescale/blob/dunfell/recipes-graphics/imx-gpu-viv/imx-gpu-viv-6....
Is this a shortcoming of how imx-gpu-viv libraries are provided by NXP?
Thanks in advance.
Hello shing,
For the i.MX8 NXP/Vivante changed their proprietary graphic stack significantly. The framebuffer and X11 driver are deprecated, only Wayland will be supported, and they have switched from the Linux framebuffer interface to (a fork of) libdrm. Is able to run a Qt Quick application on an i.MX8M using this new infrastructure, i.e. using the regular eglfs_kms platform plugin. So I am wondering if the qtbase configure script should be adapted to detect i.MX8, and for that not build eglfs_viv, eglfs_viv_wl and eglfs_kms_egldevice anymore. it is a trend to move away from basing EGL/OpenGL implementations on top of the (deprecated) fbdev, and instead move onto drm. Sometimes, and I suspect this is the case with Vivante as well, vendors offer both variants of the drivers. With eglfs this means the backend has to be selected based on what's there in the system at run time. (in this case this means choosing between eglfs_viv[_wl] or eglfs_kms) Qt upstream has no explicit support for i.MX8 (there are no device specs in mkspecs/devices since none got contributed so far), but, as you also found out, eglfs is known to work, so in that sense the i.MX8 is supported. I suppose Yocto and other distro build tools have Qt available for i.MX8 targets as well. How they configure things there (what drivers, which eglfs backend) is up to them. For example, as I understand, the pre-built, Yocto-based reference images from the commercial Qt for Device Creation offering are still using the fbdev-based stack and so the eglfs_viv path for i.MX8.
/regards