2019-04-23 01:41 AM
Hello, I'm testing the st-example-image-qt, but when I launch the Qt examples works extremely slow, looks like Qt doesn't use the hardware acceleration.
Any clue about it?
Best Regards
Eduard
Solved! Go to Solution.
2019-04-29 12:53 AM
Hello Eduard,
I/ The problem probably comes from the fact you may not have accepted the EULA (gcnano is under Third party licensing).
you should have on your board:
root@stm32mp1:~# cat /etc/lsb-release.d/graphics-1.0
LIBGLES1=gcnano-userland-multi-binary-stm32mp
II/ Here is my complete build process for reference:
$ repo init -u https://github.com/STMicroelectronics/oe-manifest.git -b refs/tags/openstlinux-4.19-thud-mp1-19-02-20
conf/machine/include/st-machine-common-stm32mp.inc
# New value proposed for rootfs is 768MB
-ROOTFS_PARTITION_SIZE = "768432"
+ROOTFS_PARTITION_SIZE = "1400000"
$ DISTRO=openstlinux-eglfs MACHINE=stm32mp1 source layers/meta-st/scripts/envsetup.sh
$ bitbake st-example-image-qt
Depending on your host PC, sometimes the builds does not succeed (see: https://community.st.com/s/question/0D50X0000AVSWK1SQP/what-is-the-process-for-initializing-the-openembedded-build-environment-stexampleimageqt).
Here is my build setup:
$ source layers/meta-st/scripts/envsetup.sh
[HOST DISTRIB check]
Linux Distrib: Ubuntu
Linux Release: 16.04
[BUILD_DIR configuration]
Selected BUILD_DIR: build-openstlinuxeglfs-stm32mp1
[source layers/openembedded-core/oe-init-build-env][with previous config]
===========================================================================
Configuration files have been created for the following configuration:
DISTRO : openstlinux-eglfs
DISTRO_CODENAME : thud
MACHINE : stm32mp1
BB_NUMBER_THREADS : <no-custom-config-set>
PARALLEL_MAKE : <no-custom-config-set>
BUILD_DIR : build-openstlinuxeglfs-stm32mp1
DOWNLOAD_DIR : /local/github/openstlinux-4.19-thud-mp1-19-02-20/build-openstlinuxeglfs-stm32mp1-disco/downloads
SSTATE_DIR : /local/github/openstlinux-4.19-thud-mp1-19-02-20/build-openstlinuxeglfs-stm32mp1-disco/sstate-cache
SOURCE_MIRROR_URL : <no-custom-config-set>
SSTATE_MIRRORS : <no-custom-config-set>
WITH_EULA_ACCEPTED: YES
===========================================================================
Available images for OpenSTLinux layers are:
- Official OpenSTLinux images:
st-image-weston - OpenSTLinux weston image with basic Wayland support (if enable in distro)
- Other OpenSTLinux images:
- Supported images:
st-image-core - OpenSTLinux core image
- Proposed images as example only:
st-example-image-qt - ST example of image based on QT framework (require 'openstlinux-eglfs' distro)
st-example-image-x11 - ST example of image based on X11 (require 'openstlinux-x11' distro)
st-example-image-xfce - ST example of image based on XFCE framework (require 'openstlinux-x11' distro)
and more images are available on meta-st-openstlinux/recipes-samples/images.
You can now run 'bitbake <image>'
2019-04-24 02:51 AM
Hello,
first important information about this image: https://wiki.st.com/stm32mpu/wiki/QT_overview.
So performances of this image is really not the target. Which examples you considered "extremely slow" ?
Here are some trials I have done with correct behavior:
root@stm32mp1:~# psplash-drm-quit
root@stm32mp1:~# export QT_QPA_EGLFS_ALWAYS_SET_MODE="1"
root@stm32mp1:~# /usr/share/examples/opengl/hellowindow/hellowindow
root@stm32mp1:~# /usr/share/examples/opengl/cube/cube
2019-04-25 01:26 AM
Hello Bernard, thanks for you answer.
The hellowindow application looks well, but use the 100% of cpu.
The cube application move 1 frame each 3 seconds and use 100% of CPU.
We test the GTK environment and looks like use the gpu in correct way, but Qt looks like doesn't use it.
You can show the "extremely slow" examples in:
root@stm32mp1:/usr/share/examples/quick#
Best Regards
Eduard
2019-04-25 05:02 AM
Hello Eduard,
Thanks for the detailed information. I would say your GPU is not working and all the job is done by the CPU. So probably a build issue or flashing issue.
I/ Could you please check on your board:
1. GPU kernel driver is well probed:
root@stm32mp1:~# dmesg | grep galcore
[ 8.038278] galcore: loading out-of-tree module taints kernel.
root@stm32mp1:/usr/lib# lsmod | grep galcor
galcore 331776 0
2. user library are well installed (in "vendor" partition):
root@stm32mp1:~# ls -lisa /usr/lib | grep GLES
8611 0 lrwxrwxrwx 1 root root 27 Mar 9 2018 libGLESv1_CM.so -> /vendor/lib/libGLESv1_CM.so
11595 0 lrwxrwxrwx 1 root root 24 Mar 9 2018 libGLESv2.so -> /vendor/lib/libGLESv2.so
23098 0 lrwxrwxrwx 1 root root 21 Mar 14 18:18 libGLESv2.so.2 -> /usr/lib/libGLESv2.so
II/ You can also check GPU load with netdata: just browse on your host PC the following page: http://<your board ip @>:19999/stm32.html.
See https://wiki.st.com/stm32mpu/wiki/Netdata for more details.
On my side I have the following results:
If you confirm the GPU issue, please check your build especially around the /vendor partition or during flashing (standard partition size need to be adapted for Qt image if you keep the webkit).
rgs,
Bernard
2019-04-26 09:09 AM
Hello Bernard, thaks a lot for your answer.
Answering your questions:
The module is not loaded, due that the st-example-image-qt doesn't generate the module.
The /lib in vendor folder doesn't exist.
I have make several test:
/usr/lib/libGLESv2.so.2 -> libGLESv2.so.2.0.0
/usr/lib/libGLESv2.so.2.0.0
Build Configuration:
Galcore kernel module:
After these changes we have the same issue, the system doesn't use the GPU.
Can you share the recipe for "st-example-image-qt" that are you using? looks like is not the same
Best Regards
Eduard Gavin
2019-04-29 12:53 AM
Hello Eduard,
I/ The problem probably comes from the fact you may not have accepted the EULA (gcnano is under Third party licensing).
you should have on your board:
root@stm32mp1:~# cat /etc/lsb-release.d/graphics-1.0
LIBGLES1=gcnano-userland-multi-binary-stm32mp
II/ Here is my complete build process for reference:
$ repo init -u https://github.com/STMicroelectronics/oe-manifest.git -b refs/tags/openstlinux-4.19-thud-mp1-19-02-20
conf/machine/include/st-machine-common-stm32mp.inc
# New value proposed for rootfs is 768MB
-ROOTFS_PARTITION_SIZE = "768432"
+ROOTFS_PARTITION_SIZE = "1400000"
$ DISTRO=openstlinux-eglfs MACHINE=stm32mp1 source layers/meta-st/scripts/envsetup.sh
$ bitbake st-example-image-qt
Depending on your host PC, sometimes the builds does not succeed (see: https://community.st.com/s/question/0D50X0000AVSWK1SQP/what-is-the-process-for-initializing-the-openembedded-build-environment-stexampleimageqt).
Here is my build setup:
$ source layers/meta-st/scripts/envsetup.sh
[HOST DISTRIB check]
Linux Distrib: Ubuntu
Linux Release: 16.04
[BUILD_DIR configuration]
Selected BUILD_DIR: build-openstlinuxeglfs-stm32mp1
[source layers/openembedded-core/oe-init-build-env][with previous config]
===========================================================================
Configuration files have been created for the following configuration:
DISTRO : openstlinux-eglfs
DISTRO_CODENAME : thud
MACHINE : stm32mp1
BB_NUMBER_THREADS : <no-custom-config-set>
PARALLEL_MAKE : <no-custom-config-set>
BUILD_DIR : build-openstlinuxeglfs-stm32mp1
DOWNLOAD_DIR : /local/github/openstlinux-4.19-thud-mp1-19-02-20/build-openstlinuxeglfs-stm32mp1-disco/downloads
SSTATE_DIR : /local/github/openstlinux-4.19-thud-mp1-19-02-20/build-openstlinuxeglfs-stm32mp1-disco/sstate-cache
SOURCE_MIRROR_URL : <no-custom-config-set>
SSTATE_MIRRORS : <no-custom-config-set>
WITH_EULA_ACCEPTED: YES
===========================================================================
Available images for OpenSTLinux layers are:
- Official OpenSTLinux images:
st-image-weston - OpenSTLinux weston image with basic Wayland support (if enable in distro)
- Other OpenSTLinux images:
- Supported images:
st-image-core - OpenSTLinux core image
- Proposed images as example only:
st-example-image-qt - ST example of image based on QT framework (require 'openstlinux-eglfs' distro)
st-example-image-x11 - ST example of image based on X11 (require 'openstlinux-x11' distro)
st-example-image-xfce - ST example of image based on XFCE framework (require 'openstlinux-x11' distro)
and more images are available on meta-st-openstlinux/recipes-samples/images.
You can now run 'bitbake <image>'
2019-04-29 06:32 AM
Hello Bernad, thanks a lot for your answer.
You are right, just adding the EULA agreement, the GPU works like expected. (ACCEPT_EULA_stm32mp1 = "1" at local.conf)
CPU use "cube application"
GPU use "cube application"
Thanks again for your help, we can continue testing the MPU features.
Best Regards
Eduard Gavin
2019-04-29 06:37 AM
Very good !