Unable to run PVRPerfServer using the TI Processor SDK on the BeagleBone Black

Hello,

I have downloaded the latest Processor SDK for AM335x Sitara Processors from Texas Instruments (TI). I have installed this Linux image on my BeagleBone Black (BBB). The TI SDK contains 3D and Qt examples to leverage the SGX 530 GPU of the BBB via the PowerVR driver(s). That is my aim - to explore the capabilities of the GPU for embedded graphics.

I have struggled some getting the examples and demos to run. TI’s SDK has some issues on the BBB - most notably the Matrix GUI fails to load. Luckily, the samples can be run from the command line as a workaround. See my thread on TI’s forum for details [link].

Now that I can see the GPU running some graphics operations on my HDMI display, I want to run the Imagination profiling tools to get an idea of the hardware utilization. Unfortunately, though, the PVRPerfServerDeveloper application fails to connect to the PowerVR driver(s).

I have read the PVRPerfServer overview from the documentation [link]. I have confirmed the presence of libPVRScopeServices.so.1 within the /usr/lib location of TI Linux.

This is the output of the application:

root@am335x-evm:/opt/PVRTune/PVRPerfServer/Linux_armv7hf# ./PVRPerfServerDeveloper
./PVRPerfServerDeveloper: /usr/lib/libstdc++.so.6: no version information available (required by ./PVRPerfServerDeveloper)
./PVRPerfServerDeveloper: /usr/lib/libstdc++.so.6: no version information available (required by ./PVRPerfServerDeveloper)
./PVRPerfServerDeveloper: /usr/lib/libstdc++.so.6: no version information available (required by ./PVRPerfServerDeveloper)
./PVRPerfServerDeveloper: /usr/lib/libstdc++.so.6: no version information available (required by ./PVRPerfServerDeveloper)
PVRPerfServerDeveloper v14.143 32-bits - Build 17.1@4676419.
Copyright (C) Imagination Technologies Ltd. All rights reserved.
* Support:            DevTech@imgtec.com
* OS:                 Linux version 5.10.100-g7a7a3af903 (oe-user@oe-host) (arm-none-linux-gnueabihf-gcc (GNU Toolchain for the A-profile Architecture 9.2-2019.12 (arm-9.10)) 9.2.1 20191025, GNU ld (GNU Toolchain for the A-profile Architecture 9.2-2019.12 (arm-9.10)) 2.33.1.20191209) #1 PREEMPT Sat May 14 22:36:58 UTC 2022
* Time (local):       Thu, 01 Sep 2022 18:50:38 +0000 (18:50:38)
* Time (UTC):         Thu, 01 Sep 2022 18:50:38 +0000 (18:50:38)
Error: failed to initialise services connection (driver support not found).
* Not connected to PowerVR driver.
* Processor count:    1
This server is am335x-evm:6520 (lo:127.0.0.1,eth0:172.28.4.52)...
Waiting for connection (press q to quit)...
200.0ps [GPU data unavailable!] : 00/00,Tu

For reference, here is the version of the PowerVR driver:

root@am335x-evm:/usr/lib# cat /proc/pvr/version
Version SGX_DDK sgxddk 1.17@4948957 (release) omap_linux
System Version String: SGX revision = 125

Can someone please provide some guidance as to what could be misconfigured that causes the PVRPerfServer to fail connecting to the driver?

Thank you, in advance, for your help!

Hi brad-tot,

Thanks for your message and welcome to the PowerV Developer Forum!

I will ask the Tools Team for information and things you could try to make PVRPerfServerDeveloper run correctly.

Regarding libPVRScopeServices.so.1, it might be good to verify whether it is a symbolik link (in this case verify it is pointing to the correct version of libPVRScopeServices.so) or the latest version of the library (in this case verify there is a libPVRScopeServices.so pointing to this libPVRScopeServices.so.1).

Best regards,
Alejandro

Hi Alejandro,

Thank you for your help.

Here is a readout of everything in /usr/lib that has “PVR” in the filename:

root@am335x-evm:/usr/lib# ls -l | grep -i pvr
lrwxrwxrwx  1 root root       34 May 14 22:55 libGLESv1_PVR_MESA.so.1 -> libGLESv1_PVR_MESA.so.1.17.4948957
-rw-r--r--  1 root root   370940 May 14 22:49 libGLESv1_PVR_MESA.so.1.17.4948957
lrwxrwxrwx  1 root root       34 May 14 22:55 libGLESv2_PVR_MESA.so.1 -> libGLESv2_PVR_MESA.so.1.17.4948957
-rw-r--r--  1 root root   346356 May 14 22:49 libGLESv2_PVR_MESA.so.1.17.4948957
lrwxrwxrwx  1 root root       35 May 14 22:55 libPVRScopeServices.so.1 -> libPVRScopeServices.so.1.17.4948957
-rw-r--r--  1 root root     9656 May 14 22:49 libPVRScopeServices.so.1.17.4948957
lrwxrwxrwx  1 root root       24 May 14 22:55 libpvr2d.so.1 -> libpvr2d.so.1.17.4948957
-rw-r--r--  1 root root    17932 May 14 22:49 libpvr2d.so.1.17.4948957
lrwxrwxrwx  1 root root       34 May 14 22:55 libpvr_dri_support.so.1 -> libpvr_dri_support.so.1.17.4948957
-rw-r--r--  1 root root   104248 May 14 22:49 libpvr_dri_support.so.1.17.4948957

Kind regards,

Brad

Hi Brad,

After asking the Tools Team, they mentioned the error you have means the OS failed to load libPVRScopeServices.so. They recommend you start with an ls -l, file and ldd on the files
PVRPerfServerDeveloper, libPVRScopeServices.so.1 and any other files pointed by those two, like libPVRScopeServices.so.1.17.4948957.

Also PVRPerfServer tries to open libPVRScopeServices.so, you need to verify whether the OS will open libPVRScopeServices.so.1 instead, as you might need to make a link with the expected filename through ln -s

Best regards,
Alejandro

Hi Alejandro,

I am now able to run the application correctly. Your suggestion to create the symbolic link resolved the error.

ln -s /usr/lib/libPVRScopeServices.so.1 /usr/lib/libPVRScopeServices.so

Thank you!

Brad

Hi Brad,

Glad it worked, I will let the Tools Team know their advice was so useful. Please let us know if you come across any other PowerVR-related issues.

Best regards,
Alejandro