Imx-gpu-viv-tools

Hello Team,
how to add gpu-viv-tools for yocto imx8mm som for yocto (dunfell) ?
I am using below imx8mm image
TDX Wayland with XWayland 5.1.0-devel-Verdin-iMX8MM_Reference-Multimedia-Image

regards
nagendra

Hi @nagendra

Welcome to Toradex Community.

To include imx-gpu-viv-tools,you need to add IMAGE_INSTALL_append += " imx-gpu-viv" in local.conf file and build the image using bitbake -k tdx-reference-multimedia-image

Hi Ashok,
yes compiled yocto image with above change, what tools i could get after flashing the image?
I could not see any gpu tools on the target ? am i missing anything ?, my primary goal is to measure gpu performance.

regards
nagendra

Hi @nagendra , for measuring GPU performance, you need VPD Analyzer. For example on our multimedia BSP, use the following commands to generate vpd files. You can replace glmark2-es2-wayland with your application. Then import vpd files into VPD Analyzer. The detailed guide comes from Chapter 13 Vivante IDE, i.MX_Graphics_User’s_Guide.pdf. Download it from NXP site.

root@apalis-imx8:~# export VIV_PROFILE=1
root@apalis-imx8:~# glmark2-es2-wayland
root@apalis-imx8:~# ls -lh *.vpd
-rw-r--r-- 1 root root 128 Jul  1 09:23 vprofiler_838_1.vpd
-rw-r--r-- 1 root root 19M Jul  1 09:23 vprofiler_838_2.vpd

Hello Benjamin
thanks for info, unfortunately the size of the vpd file show 0 always . do I need to enabled anything ?
also how can i integrate gpuinfo.sh and other tools into my yocto ?
regards
nagendra

Hi @nagendra

how can i integrate gpuinfo.sh and other tools into my yocto ?

Add IMAGE_INSTALL_append= " imx-test" in local.conf file.

@benjamin.tx
Thank you, will try it, Btn, any issues ? why my .vpd file size is zero ?
also " imx-gpu-viv" provides which gpu tools and how can I use them? as I did not get any gpu tools into my yocto file system?

Hi @nagendra , you can download it by git clone -b imx_5.4.70_2.3.0 git://source.codeaurora.org/external/imx/imx-test.git

Copy imx-test folder to iMX8MM board’s root path and rename it to unit_tests.

cd /unit_tests/test/gpu/
./gpuinfo.sh

Maybe IMX8M MIni GPU driver doesn’t support exporting vpd files. I used to test on iMX8 QuadMax.

@benjamin.tx
after some workaround , I could re insert galcore module with gpuProfiler=1 option
and my vpd file has some data
trying to open it in vivante VAnalyzer (v 1.5) but throwing error “unsupported data file version”
what could be the issue? any specific version to be used ?

Hi @nagendra , sorry, I forgot about galcore driver setting. You can also set the parameter in u-boot.

setenv tdxargs galcore.gpuProfiler=1
saveenv

For our Linux BSP 5.x, you need down VivanteIDE from here.

With that you can analyze the GPU performance.

@benjamin.tx
for my example the driver utilisation has some number for few frames, but the gpu utilisation is always 0, it means not gpu involved ? also the analysis pane does not show the details option is it normal?

Hi @nagendra , does your application utilizes GPU ? Is it Qt QML or OpenGL based? A simple application like C/C++ hello world will not utilize GPU. glmark2-es2-wayland is based on OpenGL and it is included in our default multimedia BSP. You can test with it.

@benjamin.tx ,
yes, I know simple app does not help in this context, tried with "glmark2-es2-wayland, and found that for all frames the gpu % is zero and the Driver utilisation is varied. how can I interpret this in terms of GPU load ?

Screenshot from 2021-08-25 11-43-56

Hi @nagendra , it is strange for iMX8M Mini. With the same method on iMX8M Plus and iMX8QM, GPU utilization load can be observed from VPD Analyzer. I also open a ticket on NXP Community.

Hi @nagendra , NXP engineer says GPU profiling on IMX8M Mini’s GC7000Nano will be fully supported by 5.10.35 BSP. However, we have not ported it to our SoM.

Hello @benjamin.tx , thanks for the clarifications,

So, it is clear that verdin-iMX8mMini (BSP5.1.0) can not be used for GPU profiling.
Can I use iMX8Mplus verdin-1.1A ? to get GPU profiling ? ,
according to link
https://developer.toradex.com/verdin-sample-phase-over#Compatibility_of_Verdin_Products
the BSP 5.2.0 Quarterly Release and newer is supported by imx8m plus
do you see any limitation here also ?

regards
Nagendra

Hi @nagendra , Verdin iMX8M Plus has a different GPU that is GC7000UL. GPU profiling is supported on Linux BSP V5.3. A screenshot above comes from iMX8M Plus where you can find the CPU Core is Vivante GC7000UL and GPU Utilization is 12%.

@benjamin.tx , Thank you.