PVRCarbon recording libraries for Aarch64

Is there something like this or desktop only? If yes, where can I find them?

Regards

Hi,

By mistake we did not pack the Recording and the Playback folders with PVRCarbon which carry these libraries. We are making an update today to include them. By the way, the recommended way of recording is from the desktop GUI using remote connection (principally on Android).

Regards.

Carlos.

Greetings,

I tried the gles libraries from the Linux_armv8_64 directory and it crashes with a segmentation fault.
Recorder Version v0.5 20.1@577104

Hello,

Do you have more details like an error log or similar?

Thanks.

Carlos.

How do I generate that with maximum verbose?

That’s all I can currently offer:

PVRCarbon Recorder v0.5 (20.1@5771704)
PVRCarbon|Note: By default to support multi-platform playback we override api alignment values to our recommended values. To disable this set the align recommended option to false
PVRCarbon|Writing intermediate data to ‘/usr/bin/tmyapp.0000.parts’
minicoredumper: dump: auxv link_map name (/media/mp000/pvrcarbon/libPVRCarbon.so): 39 bytes @ 0x7fb9a87cc0
minicoredumper: dump: build-id: (/media/mp000/pvrcarbon/libPVRCarbon.so) - found
PVRCarbon Recorder v0.5 (20.1@5771704)
PVRCarbon|Note: By default to support multi-platform playback we override api alignment values to our recommended values. To disable this set the align
PVRCarbon|Debugger detected: This may interfere with tracking mapped memory which relies on segmentation faults. If it does, please configure your debugger to ignore SIGSEGVs
PVRCarbon|To ignore SIGSEGVs with GDB: (gdb) handle SIGSEGV nostop noprint
PVRCarbon|To ignore SIGSEGVs with LLDB: (lldb) pro hand -p true -s false SIGSEGV
PVRCarbon|Writing intermediate data to ‘/usr/bin/myapp.0000.parts’
PVRCarbon|Signal 11 (Segmentation fault) caught
PVRCarbon|-----
PVRCarbon|0] (unknown) /media/mp000/pvrcarbon/libPVRCarbon.so
PVRCarbon|1] (unknown) /usr/bin/myapp
PVRCarbon|2] (unknown) /usr/bin/myapp
PVRCarbon|3] (unknown) /usr/bin/myapp
PVRCarbon|4] (unknown) /usr/bin/myapp
PVRCarbon|5] (unknown) /usr/bin/myapp
PVRCarbon|6] (unknown) /usr/bin/myapp

PVRCarbon|9] (unknown) /lib/libpthread.so.0
PVRCarbon|-----
minicoredumper: dump: auxv link_map name (/media/mp000/pvrcarbon/libPVRCarbon.so): 39 bytes @ 0x7fb2fd4cc0
minicoredumper: dump: build-id: (/media/mp000/pvrcarbon/libPVRCarbon.so) - found

Hi,

I think that might be enough for us to have a look. Which is your Linux platform?

Thanks.

Carlos.

Hello,

Based on this output we believe the debugger may be intercepting seg faults we rely on for memory tracking. If you are personally capturing your application from within a debugger you might need to configure gdb/lldb to ignore SIGSEGVs.

This should only be an issue for Vulkan applications and OpenGL ES applications that use the EXT_buffer_storage extension.

If this is not the case, please make sure the recorder can write its output to /usr/bin as the application will exit if it fails to write the output. If this does not help and you are using OpenGL ES, let us know how you have setup the recorder and where your host egl/gl libraries live.

Regards.

Carlos.

But then it should work if I don’t use gdb, right? I had scenarios where I don’t use gdb and it still segfaults within libPVRCarbon.so.

Linux is Yocto.

Hi,

GDB will get in the way if you are using Vulkan or the EXT_buffer_storage extension for OGLES.
If this is not the case, it could be caused by not being able to write to the output location or by a wrong setup.

Regards

Carlos.

I put the three wrapper libraries and the pvrcarbon.json into directory /media/mp000/pvrcarbon which is on my usb stick. The stick should be writeable.

This is my pvrcarbon.json. It corresponds to the example I only changed the host library paths and *.pvccarbon output filename:

{
“recording”:
{
“hostLibrary”:
{
“egl”: “/usr/lib/libEGL.so”,
“glesv2”: “/usr/lib/libGLESv2.so”
},
“output”:
{
“debug”: false,
“verbose”: false,
“information”: false,
“warning”: true,
“error”: true
},
“filename”: “/media/mp000/tsd.nav.mainapp.mib3.pvrcbn”,
“bundleParts”: true,
“compressBundle”: true,
“flushBehaviour”: 0,
“exitAfterFrame”: 4294967295,
“override”:
{
“egl”:
{
},
“gl”:
{
},
“vk”:
{
},
“swapInterval” : 0
},
“disable”:
{
“BC”: false,
“ETC1”: false,
“ETC2”: false,
“ASTC”: false
“binaryShaders”: false,
“extensions”: “”
},
“align”:
{
“memoryMap”: true,
“texelBuffer”: true,
“uniformBuffer”: true,
“storageBuffer”: true,
“memory”: true,
“atomSize”: true
},
“network”:
{
“enable”: false
},
“frameGrab”:
{
“enable”: true,
“downscale”: 8,
“frames”:“0,10-100”
}
}
}

The /media/mp000/pvrcarbon is put to the front of the LD_LIBRARY_PATH.

Hello,

It is strange because your GDB output doesn’t show any sign that it is loading from your config file.
In your description you have placed it in the libPVRCarbon path so it should be picked up. Maybe a permission issue is stopping it from being found/opened? ? Maybe the gdb output was from a run without the config?

You could try setting the config options in the environment:

export PVRCARBON_filename=/media/mp000/tsd.nav.mainapp.mib3.pvrcbn

If the drivers are in /usr/lib/ as mentioned in the config, then you shouldn’t need to set anything else as PVRCarbon will look for them in that location.

Regards

Carlos.

© Imagination Technologies Limited. All rights reserved.
Privacy PolicyTerms & ConditionsTrademarksCookies