Qt eglfs without wayland

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Qt eglfs without wayland

4,224 Views
shing_lee86
Contributor I

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.

0 Kudos
Reply
1 Reply

4,202 Views
Bio_TICFSL
NXP TechSupport
NXP TechSupport

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

 

0 Kudos
Reply