HI team.
I am using the kernel BSP 5.10.72 so i want to use the gpu_vprofiler for this version to get the compatible openGL and EGL libraries.
Please help me to get this Vivante_vdk for this version 5.10.72 to test the Qt applicaions GPU usage.
Regards,
Rk
Hi @rakesh3,
Thanks, Dhruvit for reply,
Actually, i am getting the below msg and getting segmentation fault while running the Qt5 app.
.dynamic section for "/rootfs/lib/arm-linux-gnueabihf/libGLESv1_CM.so" is not at the expected address (wrong library or version mismatch?)
.dynamic section for "/rootfs/lib/arm-linux-gnueabihf/libEGL.so.1" is not at the expected address (wrong library or version mismatch?)
These libraries are provided by vivanted GPU 6.4.3
Is there any library version mismatched happened between the im-gpu-viv library for kernel 5.10 and what I am using or something else.
Please give suggestions on this.
Regards,
Rk
Hi @rakesh3,
Thanks & Regards,
Dhruvit Vasavada
Hi Dhruit,
Thanks for your reply,
Actually, the root issue is that I am getting the segmentation fault in Qt5 application and here i am using the imx-gpu-viv libraries into target board. But while running the qt application i am getting the segmentation fault at libEGL library .
So currently I am using the below configuration in usr/lib/
ibEGL.so.1.5.0
lrwxrwxrwx 1 rakesh rakesh 15 Jul 5 2022 libEGL.so -> libEGL.so.1.5.0
lrwxrwxrwx 1 rakesh rakesh 15 Jul 5 2022 libEGL.so.1 -> libEGL.so.1.5.0
lrwxrwxrwx 1 rakesh rakesh 20 Mar 25 2021 libEGL_mesa.so.0 -> libEGL_mesa.so.0.0.0
-rw-r--r-- 1 rakesh rakesh 150588 Mar 25 2021 libEGL_mesa.so.0.0.0
-rw-r--r-- 1 rakesh rakesh 46744 Jul 29 2020 libEGL.so.1.1.0
and
libGLES_CL.so.1.1.0
-rwxr-xr-x 1 rakesh rakesh 292400 Jul 5 2022 libGLES_CM.so.1.1.0
-rwxr-xr-x 1 rakesh rakesh 284208 Jul 5 2022 libGLESv1_CL.so.1.1.0
-rwxr-xr-x 1 rakesh rakesh 284208 Jul 5 2022 libGLESv1_CM.so.1.1.0
-rwxr-xr-x 1 rakesh rakesh 1455904 Jul 5 2022 libGLESv2.so.2.0.0
lrwxrwxrwx 1 rakesh rakesh 19 Jul 5 2022 libGLES_CL.so -> libGLES_CL.so.1.1.0
lrwxrwxrwx 1 rakesh rakesh 19 Jul 5 2022 libGLES_CL.so.1 -> libGLES_CL.so.1.1.0
lrwxrwxrwx 1 rakesh rakesh 19 Jul 5 2022 libGLES_CM.so -> libGLES_CM.so.1.1.0
lrwxrwxrwx 1 rakesh rakesh 19 Jul 5 2022 libGLES_CM.so.1 -> libGLES_CM.so.1.1.0
lrwxrwxrwx 1 rakesh rakesh 21 Jul 5 2022 libGLESv1_CL.so -> libGLESv1_CL.so.1.1.0
lrwxrwxrwx 1 rakesh rakesh 21 Jul 5 2022 libGLESv1_CL.so.1 -> libGLESv1_CL.so.1.1.0
lrwxrwxrwx 1 rakesh rakesh 21 Jul 5 2022 libGLESv1_CM.so -> libGLESv1_CM.so.1.1.0
lrwxrwxrwx 1 rakesh rakesh 21 Jul 5 2022 libGLESv1_CM.so.1 -> libGLESv1_CM.so.1.1.0
lrwxrwxrwx 1 rakesh rakesh 18 Jul 5 2022 libGLESv2.so -> libGLESv2.so.2.0.0
lrwxrwxrwx 1 rakesh rakesh 18 Jul 5 2022 libGLESv2.so.2 -> libGLESv2.so.2.0.0
-rw-r--r-- 1 rakesh rakesh 38364 Jul 29 2020 libGLESv1_CM.so.1.2.0
-rw-r--r-- 1 rakesh rakesh 87516 Jul 29 2020 libGLESv2.so.2.1.0
I am strongly suspecting any library issue here, I am getting the upstream library and imx-gpu-viv library also.
If i am changing the libEGL.so.1.5.0 to libEGL.so.1.1.0 then I am not getting any segmentation fault but since its working in the imx-prebuild image so Ideally it should work with libEGL.so.1.5.0 also.
Below is the library used by Qt app.
# ldd demo
linux-vdso.so.1 (0x7ed7a000)
libQt5Widgets.so.5 => /usr/lib/libQt5Widgets.so.5 (0x76aa1000)
libQt5Core.so.5 => /usr/lib/libQt5Core.so.5 (0x765f8000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x764bd000)
libc.so.6 => /lib/libc.so.6 (0x763c1000)
libQt5Gui.so.5 => /usr/lib/libQt5Gui.so.5 (0x75f27000)
libm.so.6 => /lib/libm.so.6 (0x75ec1000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x75e98000)
/lib/ld-linux-armhf.so.3 (0x76f1c000)
libpthread.so.0 => /lib/libpthread.so.0 (0x75e73000)
libz.so.1 => /lib/libz.so.1 (0x75e53000)
libpcre2-16.so.0 => /usr/lib/libpcre2-16.so.0 (0x75e03000)
libdl.so.2 => /lib/libdl.so.2 (0x75df0000)
libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0x75d02000)
libGLESv2.so.2 => /usr/lib/libGLESv2.so.2 (0x75acb000)
libpng16.so.16 => /usr/lib/libpng16.so.16 (0x75a98000)
libpcre.so.1 => /usr/lib/libpcre.so.1 (0x75a38000)
libGAL.so => /usr/lib/libGAL.so (0x75954000)
libVSC.so => /usr/lib/libVSC.so (0x74ad8000)
Doubts: -
1) I am not getting sometimes any GPU related output ([drm] Initialization vivante) in $dmesg | grep GPU.
2) I am getting some error logs in X11.0.log as below
VIVANTE(0): Backing store enabled
[ 73.718] (==) VIVANTE(0): DPMS enabled
[ 74.428] (EE) VIVANTE(0): [dri] VivDRIScreenInit failed because Drm can't be opened.
[ 74.460] (II) Initializing extension Generic Event Extension
This might be reason for segmentation fault or its a expected logs.?
Below is the backtrace of Qt application.
OThread 1 "demo" received signal SIGSEGV, Segmentation fault.
0xb6053908 in pthread_mutex_lock () from /lib/arm-linux-gnueabihf/libpthread.so.0
(gdb) bt full
#0 0xb6053908 in pthread_mutex_lock () from /lib/arm-linux-gnueabihf/libpthread.so.0
No symbol table info available.
#1 0xb0c0f048 in wl_proxy_create_wrapper () from /lib/arm-linux-gnueabihf/libwayland-client.so.0
No symbol table info available.
#2 0xb0c5dd64 in ?? () from /lib/arm-linux-gnueabihf/libEGL.so.1
No symbol table info available.
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
(gdb)
libEGL-mesa0 is required or not?
How to process here, please give suggestions on this, since it's a long time Issue still I am not seeing any further debug points here .
Attached Xorg.log file.
Regards,
Rk
Hi @rakesh3,
Hi @rakesh3,
I hope you are doing well.
Thanks for reply,
Sorry for wrong information. We are not using the Yocto, we are just using the bitbake method to build the image.
Actually, we got these prebuild attached libraries from NXP for GPU driver and now the Qt5 application is getting segmentation fault.
But qt6 application is working fine without any segmentation fault but i think GPU is not being used in that case CPU usage is 200% and rendering is very slow.
If I change the libEGL.so.1.5.0(prebuild) to libEGL.so.1.1.0(upstream version) then at least we are not getting the segmentation fault in Qt5 application.
One more thing, As per this ticket Solved: Re: QT5.4 eglfs(hellogl_es2) Segmentation fault - NXP Community
Could you please tell me how to check the "Kernel gpu driver version and graphics driver version used in user-land"
Also, please find the detailed backtrace of SEG FAULT in attached doc.
Hi @rakesh3,
Hi,
Thanks for reply,
I have attached the libraries in the ticket imx-gpu-viv_6.4.3 which we got and currently using it with X11 GPU application.
Please look once to that library.
Regards,
Rk
Hi @rakesh3,
Hi @rakesh3,
Thanks for reply,
Below is the backtrace of seg fault.
In the backtrace in gdb I am getting the below error,
OThread 1 "demo" received signal SIGSEGV, Segmentation fault.
0xb6053908 in pthread_mutex_lock () from /lib/arm-linux-gnueabihf/libpthread.so.0
(gdb) bt full
#0 0xb6053908 in pthread_mutex_lock () from /lib/arm-linux-gnueabihf/libpthread.so.0
No symbol table info available.
#1 0xb0c0f048 in wl_proxy_create_wrapper () from /lib/arm-linux-gnueabihf/libwayland-client.so.0
No symbol table info available.
#2 0xb0c5dd64 in ?? () from /lib/arm-linux-gnueabihf/libEGL.so.1
No symbol table info available.
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
(gdb)
I am using the Yocto Dunfell version. Currently I am using the prebuild libs for X11 GPU. Please have a look into these libs. (Suspected libs are libEGL/libGLES)
Please give suggestions for this seg fault.