i.MX93 EVK + Yocto: Qt6 app runs slow on Wayland, but cannot run with linuxfb (missing linuxfb.so)

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

i.MX93 EVK + Yocto: Qt6 app runs slow on Wayland, but cannot run with linuxfb (missing linuxfb.so)

804 Views
seyoungkim
Contributor II

Hi everyone,

I’m working with the i.MX93 EVK board and building a Linux image using Yocto. My goal is to run a simple Qt6 widget application on the device without any windowing system. Here’s what I’ve tried so far:

  1. Wayland Backend:

    • Built the image using the Wayland backend (with fsl-imx-wayland).

    • The Qt6 widget(not 3d or qml) sample app launches, but it runs very slowly—the UI is almost unusable.

  2. Framebuffer Backend (fsl-imx-fb):

    • I tried building with the framebuffer backend hoping for better performance.

    • yocto said can't support linuxfb with i.mx93 so i edited local.conf. "fsl-imx-wayland " to "fsl-imx-fb"
    • However, when I run my Qt6 app with:

      ./mywidgetapp -platform linuxfb
       

      I get an error saying the linuxfb.so Qt platform plugin cannot be found.

Additional Question:
For a minimal Yocto image (like core-image-minimal or core-image-base) without any windowing system (console only),

  • What is the recommended Qt6 platform backend to use for running simple widget-based apps?

  • Is linuxfb supposed to work on the i.MX93 EVK in this setup, or is there another backend I should consider for direct framebuffer usage?

Questions:

  • How can I properly enable and include the linuxfb Qt6 platform plugin in my Yocto build for the i.MX93 EVK?

  • Is there any recommended way to improve Qt6 app performance on this board (especially for simple widget-based UIs)?

  • Has anyone successfully run Qt6 apps on i.MX93 using framebuffer (linuxfb) or achieved acceptable performance with Wayland?

Any advice or working recipes would be appreciated!

Additional info:

  • Yocto release: Scarthgap

  • Qt version: 6.8.1

  • Machine: i.MX93-11x11-lpddr4x-evk

Thanks!

0 Kudos
Reply
6 Replies

713 Views
seyoungkim
Contributor II

I managed to get linuxfb support working, even though it's not officially supported in the current Yocto setup. I found a way to include linuxfb.so in the build.

I'm not 100% sure everything is working perfectly yet, but I know others have probably struggled with the same issue. So I'm sharing the snippet below in the hope that it might help someone else — even just a little.

--------------------------------------------------------------------

# Enable linuxfb support
PACKAGECONFIG:append:pn-qtbase = " linuxfb tslib examples"

EXTRA_QMAKEVARS_PRE:append = " QT_QPA_DEFAULT_PLATFORM=linuxfb"
EXTRA_OECMAKE:append = " -DQT_FEATURE_linuxfb=ON -DQT_QPA_PLATFORM_PLUGIN=linuxfb"

do_install:append () {
install -d ${D}${libdir}/plugins/platforms
if [ -f ${B}/src/plugins/platforms/linuxfb/libqlinuxfb.so ]; then
install -m 0755 ${B}/src/plugins/platforms/linuxfb/libqlinuxfb.so ${D}${libdir}/plugins/platforms/
fi
}

----------------------------------------------------------------------

Now my qt6 widget sample app running fast as working at qt5

 

 

774 Views
Zhiming_Liu
NXP TechSupport
NXP TechSupport

Hi,
The Qt6 widget(not 3d or qml) sample app launches, but it runs very slowly—the UI is almost unusable.

-->There is no 2d/3d gpu in i.MX93, the 3d/qml sample will cost losts of cpu resources. There is only display hardware engine PXP, not GPU hardware.

 

For fb, this is not supported for i.MX8 and i.MX9.



Best Regards,
Zhiming

0 Kudos
Reply

771 Views
seyoungkim
Contributor II

Thank you for your clear explanation!

So, as you mentioned, i.MX93 does not have a 2D/3D GPU, only the PXP engine, and framebuffer (linuxfb) backend is not officially supported on i.MX8/i.MX9 series. I now understand why the performance is so limited with Qt6 on this hardware.

However, in my project, using Qt6 is a strict requirement(qt widget base) due to cross-platform code sharing.
Given this, is there any possible way to improve the UI performance with Qt6 on i.MX93, even slightly?
For example:

  • Are there any kernel options, graphics drivers, or Yocto settings that can help, even a little?

  • Is it possible to utilize the PXP engine with Qt6 in any way for better software rendering?

  • Are there any alternative Qt6 backends, or minimal window managers/compositors, that could improve performance on this hardware?

If anyone has experience squeezing better performance out of Qt6 on i.MX93, even with some tweaks or non-standard setups, I would really appreciate any advice or references.

Thank you again for your support!

0 Kudos
Reply

767 Views
Zhiming_Liu
NXP TechSupport
NXP TechSupport

Hi,

The default BSP is already using PXP in weston, so I don't think there's much room for optimization at the moment, and if you need 3d drawing then i.MX93 isn't really suitable.

Best Regards,
Zhiming

0 Kudos
Reply

730 Views
seyoungkim
Contributor II

As I mentioned before, I’m not using 3D or QML—I’m only running a widget-based application. My question is: Why is my i.MX93 EVK board so slow with the widget application? And is there any way to improve the performance? 

Check Backend and Framebuffer

  • On i.MX93, Wayland is the supported backend, but it’s slow.

  • linuxfb is not supported on i.MX93.

  • eglfs is not supported (no GPU).

  • There is currently no fast backend for widget apps on i.MX93.

0 Kudos
Reply

727 Views
Zhiming_Liu
NXP TechSupport
NXP TechSupport

Hi @seyoungkim 

The point I was trying to make is that 93 has very limited hardware acceleration resources, and available acceleration is already integrated in the BSP, and there is no better way to improve performance. For a complex GUI program like qt6, naturally you can't get better performance. The only way to improve interface performance I think is to use LVGL and give up on QT6.

Best Regards,
Zhiming

0 Kudos
Reply