Build image without LXDE and Qt5 support

If I load my Qt program to Boot2Q

What exactly do you mean by that?

it is really smooth but with my customized LXDE Image everything is very slow (but works).

Customised in what sense? You mean your image contains both LXDE as well as Qt?

What commands or packets do I need to set the commercial Qt solution active?

I’m not sure what you mean by that. I thought you do have Boot2Qt already installed, not?

I have multiple images. Once a plain Boot2Qt image as you can flash it out of Qt-Creator and the other one i talk about is your LXDE Image with added Qt5 layer and other libraries.

For production, I will use the image with added Qt5 layer and not Boot2Qt, because of the customized drivers and kernel. Boot2Qt is only for testing. The goal is to let the program run in my image but with the graphics acceleration as I can see it in the Boot2Q image.

There must be a setting or library i miss in my own image. My Qt application (uses QtQuick.Controls 2.0) runs in both images but with different performance.

I hope this clarifies my use case, otherwise let me know…

Short answer you can’t.

If you have read all the above you should know by now that the i.MX 7 SoC does not feature any graphics hardware acceleration and only The Qt Company’s proprietary Qt for Device Creation aka Boot2Qt features QtQuick optimisations for such low-end graphics hardware. After all I guess The Qt Company does want to make some money off something after all.

Now I understand. The previously mentioned “QtQuick optimisation” is not a library one can buy but rather the complete image which comes with the commercial Qt-Creator licence (known as Boot2Qt). I thought it is a library you can pay for and include it in an own build.

Sorry, but such details about their offerings you would really need to discuss with The Qt Company themselves.

Now it works perfekt!

I asked Qt about this topic and I want to share my experience with you …

The answer from Qt:
I spoke to the developers about this and the only thing that could differ is
that we force the usage of Qt Quick 2D Renderer here, so it could be that for
some reason it is not using this in your image case. It is available as part
of Qt from Qt 5.8 so you can just do:

QT_QPA_PLATFORM=linuxfb
QMLSCENE_DEVICE=softwarecontext

as environment variables to match what Qt does. If you are using Qt 5.7 (as
indicated in the case you created), then you need to download and build Qt
Quick 2D Renderer (you can find this as part of the downloads on
account.qt.io). To follow the steps for building it you can read:

http://doc.qt.io/QtQuick2DRenderer/qtquick2drenderer-installation-guide.html
#building-renderer

And then set the environment variables to match the Qt image.

Regards,
Andy

Andy Shaw
Software Engineer,
The Qt Company

I didn’t manage to get the Quick 2D Renderer to work with my Qt 5.7 :frowning:

But fortunately Qt improved and integrated this renderer in Qt 5.8 for free! ( https://wiki.qt.io/New_Features_in_Qt_5.8 ). You can use the meta-qt5 layer from yocto build ‘pyro’ which uses Qt 5.8 ( https://github.com/meta-qt5/meta-qt5/tree/pyro ). If you want to debug don’t forget to add ‘nativesdk-python3-json’ to ‘./meta-qt5/recipes-qt/packagegroups/nativesdk-packagegroup-qt5-toolchain-host.bb’.

I built a fresh SDK and image (using Qt 5.8) and the only thing I needed to add is this environment variable to the target: QMLSCENE_DEVICE=softwarecontext

Now the performance is outstanding and it’s almost no modification to the master branch.