PVRTrace can't capture the weston compositor

Hi, I’m trying to get PVRTrace working on a my custom SoC(w/ PowerVR Furian GT9524). The PVRTrace can capture most of egl applications but it can’t capture the weston process. The weston compositor has gl-renderer and it loads libEGL/GLESv2 library for rendering but PVRTrace can’t detect weston renderer. My test command is as follow:

root@test# source Scripts/envsetup.sh
Setting the shell to use PVRTrace…

PVRHub directory set up as /home/root/pvr

OpenGL ES libraries found on the system!
Changing the base configuration file...
PVRTrace config file has been updated:
          EglLibraryPath set to  "/usr/lib/libEGL.so.1",
          Es1LibraryPath set to  "",
          Es2LibraryPath set to  "/usr/lib/libGLESv2_PVR_MESA.so"

NOTE: To edit the pvrtraceconfig.json just use a text editor of your choice

Path updated with the Scripts/ directory

NOTE: The old LD_LIBRARY_PATH has been saved to OLD_LD_LIBRARY_PATH

ln: /home/root/pvr/PVRTrace/Recorder/libEGL.so.1: File exists
ln: /home/root/pvr/PVRTrace/Recorder/libGLES_CM.so.1: File exists
ln: /home/root/pvr/PVRTrace/Recorder/libGLESv1_CM.so.1: File exists
ln: /home/root/pvr/PVRTrace/Recorder/libGLESv2.so.2: File exists

Created common symbolic links to PVRTrace libraries

Instructions:
    Run: "source Scripts/start_tracing.sh" to start a system wide trace.
    Run: "source Scripts/stop_tracing.sh" to stop the system wide trace.
    Run: "pvr_trace Application" to trace the desired application.
    Run: "pvr_profile Application" to profile the desired application.

Environment setup OK

root@test# source Scripts/start_tracing.sh
Enabling system wide tracing…

PVRTrace configuration:
          EglLibraryPath set to  "/usr/lib/libEGL.so.1",
          Es1LibraryPath set to  "",
          Es2LibraryPath set to  "/usr/lib/libGLESv2_PVR_MESA.so"
          OutputFilename set to  "/home/root/pvr/recordings/trace-%pid.pvrtrace",

NOTE: pvrtrace.cfg can be edited with any text editor.

root@test# weston --backend=drm-backend.so --tty=14 --idle-time=0 &

There is nothing in /home/root/pvr/recordings/ path.
Any advice would be appreciated! Thanks.

Hi YoungJun,

Thanks for your message and for the detailed information about the issue you’re experiencing, we’ll be taking care of it shortly,

Best regards,
Alejandro

Hi YoungJun,

Apologies for the delay. PVRTrace is currently outdated and has been replaced by PVRCarbon, If you could try capturing this process with PVRCarbon and see if that helps resolve the issue?
PVRCarbon is available here: https://www.imgtec.com/developers/powervr-sdk-tools/pvrcarbon/

In the case that this does not resolve the issue are there any other EGL applications that Trace is not recording?

All the best,
Lawrence

As a follow up from the tools team, this should definitely be possible.
The “trick” is to make sure that the compositor is loading the Carbon/Trace libraries. There’s no shell script with PVRCarbon to automatically set up the recorder:

To setup on Linux, copy PVRCarbon’s libEGL.so ,libGLESv2.s , and PVRCarbon.so to any folder and add the path to LD_LIBRARY_PATH .
The libraries mentioned above can be found in: /PVRCarbon/Recorder/GLES/[PLATFORM]/

PVRCarbon also needs to know the location of the OpenGLES libraries on the system, however it will try to locate them itself by default. After setting up the recorder PVRCarbon should start recording when an application is launched.

Hi LawrenceGreen,

Thanks for your detail information! I’ll capture it with your guide and share the result later.

Thanks,
YoungJun

Hi LawrenceGreen,

I’ve successfully captured weston’s gl-renderer with PVRCarbon. Many thanks for your support.

Thanks,
YoungJun