IMX6 yocto fido meta-qt5 - cannot set EGLFS environment variables

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

IMX6 yocto fido meta-qt5 - cannot set EGLFS environment variables

2,510 Views
arinsaramathew
Contributor I

Hi,

I am currently working on a project using imx6 with yocto version Fido. I have a display working on FULL HD resolution. I am using a Landscape display but the qt application is in portrait therefore I have to rotate the app 90 degrees to make it portrait. I was using xcb plugin to run my application window in touchscreen. But the performance was not well and the took too much CPU. Therefore I switched to eglfs by following the steps mentioned in here. Now when I run the application window, I get the message

"QEglFSImx6Hooks will set environment variable FB_MULTI_BUFFER=2 to enable double
buffering and vsync.
If this is not desired, you can override this via: export QT_EGLFS_IMX6_NO_FB_M
ULTI_BUFFER=1
Unable to query physical screen size, defaulting to 100 dpi.
To override, set QT_QPA_EGLFS_PHYSICAL_WIDTH and QT_QPA_EGLFS_PHYSICAL_HEIGHT (i
n millimeters) " .

and only a portion of the application window can be seen on screen.

I tried setting QT_QPA_EGLFS_PHYSICAL_WIDTH and QT_QPA_EGLFS_PHYSICAL_HEIGHT, but it is only changing the font size and icon size in the application window (but i need the full application to fit in touchscreen).

Also i cannot rotate the screen and set the resolution in pixal, when I tried setting QT_QPA_EGLFS_ROTATION, QT_QPA_EGLFS_WIDTH and QT_QPA_EGLFS_HEIGHT there was no change in application window. 

I am new to Qt  and I have no idea how to solve this. Any help would be appreciated.

Thank you.

0 Kudos
2 Replies

1,614 Views
arinsaramathew
Contributor I

Hi,

Thank you for the replay. I tried setting FB_MULTI_BUFFER to 0,1,3 but I am still facing the same issue.

Later I found the configuration log of Qt  just to be sure if any thing is missing. I found that QPA backend is given as "EGLFS i.MX6....... . no". 

Build options:
Configuration .......... accessibility accessibility-atspi-bridge audio-backend c++11 clock-gettime clock-monotonic compile_examples concurrent cross_compile dbus egl egl_x11 evdev eventfd freetype full-config getaddrinfo getifaddrs gstreamer-0.10 inotify ipv6ifname large-config largefile libudev medium-config minimal-config mremap neon no-harfbuzz opengl openssl-linked pcre png posix_fallocate pulseaudio qpa qpa reduce_exports release shared silent small-config system-jpeg system-png system-zlib xcb xcb-glx xcb-plugin xcb-render xcb-xlib xinput2 xkbcommon-evdev xlib xrender
Build parts ............ libs tools
Mode ................... release
Using sanitizer(s)...... none
Using C++11 ............ yes
Using gold linker....... no
Using new DTAGS ........ no
Using PCH .............. no
Target compiler supports:
Neon ................. yes

Qt modules and options:
Qt D-Bus ............... yes (loading dbus-1 at runtime)
Qt Concurrent .......... yes
Qt GUI ................. yes
Qt Widgets ............. yes
Large File ............. yes
QML debugging .......... yes
Use system proxies ..... no

Support enabled for:
Accessibility .......... yes
ALSA ................... no
CUPS ................... no
Evdev .................. yes
FontConfig ............. no
FreeType ............... qt
Glib ................... no
GStreamer .............. yes (0.10)
GTK theme .............. no
HarfBuzz ............... no
Iconv .................. no
ICU .................... no
Image formats:
GIF .................. yes (plugin, using bundled copy)
JPEG ................. yes (plugin, using system library)
PNG .................. yes (in QtGui, using system library)
journald ............... no
libinput................ no
mtdev .................. no
Networking:
getaddrinfo .......... yes
getifaddrs ........... yes
IPv6 ifname .......... yes
libproxy.............. no
OpenSSL .............. yes (linked to the libraries)
NIS .................... no
OpenGL / OpenVG:
EGL .................. yes
OpenGL ............... desktop
OpenVG ............... no
PCRE ................... yes (bundled copy)
pkg-config ............. yes
PulseAudio ............. yes
QPA backends:
DirectFB ............. no
EGLFS ................ no
EGLFS i.MX6....... . no
EGLFS KMS .......... no
EGLFS Mali ......... no
EGLFS Raspberry Pi . no
EGLFS X11 .......... yes
LinuxFB .............. no
XCB .................. yes (system library)
EGL on X ........... yes
GLX ................ yes
MIT-SHM ............ no
Xcb-Xlib ........... yes
Xcursor ............ yes
Xfixes ............. yes
Xi ................. no
Xi2 ................ yes
Xinerama ........... yes
Xrandr ............. yes
Xrender ............ yes
XKB ................ yes
XShape ............. yes
XSync .............. yes
XVideo ............. yes
Session management ..... no
SQL drivers:
DB2 .................. no
InterBase ............ no
MySQL ................ no
OCI .................. no
ODBC ................. no
PostgreSQL ........... no
SQLite 2 ............. no
SQLite ............... no
TDS .................. no
tslib .................. no
udev ................... yes
xkbcommon-x11........... yes (system library)
xkbcommon-evdev......... yes
zlib ................... yes (system library)

I tried changing -xplatform to linux-imx6-g++ but now I am getting error as below.

"This is the Qt Open Source Edition.

You are licensed to use this software under the terms of
the Lesser GNU General Public License (LGPL) versions 2.1.
You are also licensed to use this software under the terms of
the GNU Lesser General Public License (LGPL) versions 3.

You have already accepted the terms of the Open Source license.


The specified system/compiler is not supported"

I searched my qtbase/mkspecs directory in my built and there is no linux-imx6-g++.

Also I tried adding -device=linux-imx6-q++ but its still giving me error.

Can anyone please help me with this.

Thank you

0 Kudos

1,614 Views
Bio_TICFSL
NXP TechSupport
NXP TechSupport

Hi Arin,

I have tested it on iMX6 driver, and met the problem only when FB_MULTI_BUFFER=2, either when FB_MULTI_BUFFER=0, 1 or 3 , the graphic is OK.  I think this is synchronization with the display issues as the display is good when I make some change that the process sleep several milliseconds after the eglswapbuffer is called.

0 Kudos