Hi, I am trying to trace a Qt app using PVRCarbon and record it into a file, copy it to a Windows host PC and load the recording into GUI. I want to check the frame of each swap buffer and OpenGL ES calls.
in this case what shall I set the variable of PVRCARBON_host_library_egl and PVRCARBON_host_library_glesv2?
here is result I tried
root@b2qt-salvator-x:~# PVRCARBON_network_enable=false PVRCARBON_filename=/home/root/qt-debug.pvrcbn LD_LIBRARY_PATH=/home/root/Linux_armv8_64:$LD_LIBRARY_PATH /usr/bin/apptest
PVRCarbon Recorder v0.11 (23.2@24ff2634a052)
loaded module: libgbm_kms.so.1
PVRCarbon|WARNING: EGL host library path not set.
PVRCarbon|WARNING: OpenGL ES v2 host library path not set.
PVRCarbon|WARNING: OpenCL host library path not set.
PVRCarbon|Recording process: 'apptest'
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|Successfully installed syshooks
PVRCarbon|Recording frames: 0-4294967295
PVRCarbon|Writing intermediate data to '/home/root/qt-debug.0000.parts'
PVRCarbon|ERROR: Host EGL path is unset
PVRCarbon|CRITICAL: Aborting... Unable to recover from error
the above error fixed by
PVRCARBON_exit_after_frame=100
PVRCARBON_frames=0-100
PVRCARBON_flush_behaviour=5
PVRCARBON_host_library_egl="/home/root/Linux_armv8_64/libEGL.so"
PVRCARBON_host_library_glesv2="/home/root/Linux_armv8_64/libGLESv2.so"
PVRCARBON_network_enable=false
PVRCARBON_filename=/home/root/qt-debug.pvrcbn
PVRCARBON_align_memory=false
LD_LIBRARY_PATH=/home/root/Linux_armv8_64 /usr/bin/apptest
I am facing another problem is PVRCARBON_frames and PVRCARBON_exit_after_frame don’t work
even I set it to 100, the app won’t exit after 100 frames and show below no matter how I change the frame range
PVRCarbon|Recording frames: 0-4294967295
getting another error…
PVRCarbon|ERROR: Failed to open file '/home/root/apptest_frames_0-100.0000.parts/0.1017.calls.pvrcbn.part' (Too many open files)
PVRCarbon|ERROR: Could not open '/home/root/apptest_frames_0-100.0000.parts/0.1017.calls.pvrcbn.part' for writing
Full log:
root@b2qt-salvator-x:~# /usr/bin/apptest
PVRCarbon Recorder v0.11 (23.2@24ff2634a052)
Detected locale "C" with character encoding "ANSI_X3.4-1968", which is not UTF-8.
Qt depends on a UTF-8 locale, and has switched to "C.UTF-8" instead.
If this causes problems, reconfigure your locale. See the locale(1) manual
for more information.
loaded module: libgbm_kms.so.1
PVRCarbon|DEBUG: EnvironmentConfig: Set host egl library path to '/home/root/Linux_armv8_64/libEGL.so'
PVRCarbon|DEBUG: EnvironmentConfig: Set host glesv2 library path to '/home/root/Linux_armv8_64/libGLESv2.so'
PVRCarbon|DEBUG: EnvironmentConfig: Set frames to '0-100'
PVRCarbon|DEBUG: EnvironmentConfig: Enabled bundle parts
PVRCarbon|DEBUG: EnvironmentConfig: Enabled bundle compression
PVRCarbon|DEBUG: EnvironmentConfig: Disabled frame grabbing
PVRCarbon|DEBUG: EnvironmentConfig: Set exit after frame to 100
PVRCarbon|DEBUG: EnvironmentConfig: Set flush behaviour to flush at the end of every frame
PVRCarbon|DEBUG: EnvironmentConfig: Disabled native buffer recording
PVRCarbon|DEBUG: EnvironmentConfig: Set DRM device to '/dev/dri/card0'
PVRCarbon|DEBUG: EnvironmentConfig: Disabled network recording
PVRCarbon|DEBUG: EnvironmentConfig: Set alignment to device values
PVRCarbon|DEBUG: EnvironmentConfig: Set memory alignment to -1
PVRCarbon|DEBUG: vk_layer_settings: Did not locate 'vk_layer_settings.txt' for parsing
PVRCarbon|INFORMATION: Set EGL host library path to '/home/root/Linux_armv8_64/libEGL.so'.
PVRCarbon|INFORMATION: Set OpenGL ES v2 host library path to '/home/root/Linux_armv8_64/libGLESv2.so'.
PVRCarbon|WARNING: OpenCL host library path not set.
PVRCarbon|Recording process: 'apptest'
PVRCarbon|DEBUG: Library '/lib/libc.so.6' loaded
PVRCarbon|DEBUG: Library '/lib/libc.so.6' unloaded
PVRCarbon|Successfully installed syshooks
PVRCarbon|Recording frames: 0-100
PVRCarbon|Writing intermediate data to '/home/root/apptest_frames_0-100.0000.parts'
PVRCarbon|DEBUG: Library '/home/root/Linux_armv8_64/libEGL.so' loaded
PVRCarbon|DEBUG: Could not get function 'eglGetSyncAttribNV'
PVRCarbon|DEBUG: Could not get function 'eglFenceNV'
PVRCarbon|DEBUG: Could not get function 'eglClientWaitSyncNV'
PVRCarbon|DEBUG: Could not get function 'eglQueryStreamMetadataNV'
PVRCarbon|DEBUG: Could not get function 'eglPostSubBufferNV'
PVRCarbon|DEBUG: Could not get function 'eglQueryNativeWindowNV'
PVRCarbon|DEBUG: Could not get function 'eglSwapBuffersRegionNOK'
PVRCarbon|DEBUG: Could not get function 'eglExportDMABUFImageQueryMESA'
PVRCarbon|DEBUG: Could not get function 'eglExportDMABUFImageMESA'
PVRCarbon|DEBUG: Could not get function 'eglQueryNativePixmapNV'
PVRCarbon|DEBUG: Could not get function 'eglCreateDRMImageMESA'
PVRCarbon|DEBUG: Could not get function 'eglSwapBuffersWithDamageKHR'
PVRCarbon|DEBUG: Could not get function 'eglQueryStreamTimeKHR'
PVRCarbon|DEBUG: Could not get function 'eglStreamConsumerGLTextureExternalKHR'
PVRCarbon|DEBUG: Could not get function 'eglSetStreamAttribKHR'
PVRCarbon|DEBUG: Could not get function 'eglCreateStreamAttribKHR'
PVRCarbon|DEBUG: Could not get function 'eglStreamAttribKHR'
PVRCarbon|DEBUG: Could not get function 'eglGetSystemTimeNV'
PVRCarbon|DEBUG: Could not get function 'eglQueryStreamu64KHR'
PVRCarbon|DEBUG: Could not get function 'eglQueryStreamKHR'
PVRCarbon|DEBUG: Could not get function 'eglSignalSyncKHR'
PVRCarbon|DEBUG: Could not get function 'eglGetSyncAttribKHR'
PVRCarbon|DEBUG: Could not get function 'eglCreateSyncKHR'
PVRCarbon|DEBUG: Could not get function 'eglClientWaitSyncKHR'
PVRCarbon|DEBUG: Could not get function 'eglUnlockSurfaceKHR'
PVRCarbon|DEBUG: Could not get function 'eglExportDRMImageMESA'
PVRCarbon|DEBUG: Could not get function 'eglDestroyImageKHR'
PVRCarbon|DEBUG: Could not get function 'eglCreateImageKHR'
PVRCarbon|DEBUG: Could not get function 'eglQueryDisplayAttribKHR'
PVRCarbon|DEBUG: Could not get function 'eglQueryDebugKHR'
PVRCarbon|DEBUG: Could not get function 'eglLabelObjectKHR'
PVRCarbon|DEBUG: Could not get function 'eglDebugMessageControlKHR'
PVRCarbon|DEBUG: Could not get function 'eglCreateSync64KHR'
PVRCarbon|DEBUG: Could not get function 'eglGetStreamFileDescriptorKHR'
PVRCarbon|DEBUG: Could not get function 'eglCreateStreamFromFileDescriptorKHR'
PVRCarbon|DEBUG: Could not get function 'eglSwapBuffersWithDamageEXT'
PVRCarbon|DEBUG: Could not get function 'eglQueryDisplayAttribNV'
PVRCarbon|DEBUG: Could not get function 'eglStreamConsumerOutputEXT'
PVRCarbon|DEBUG: Could not get function 'eglCreatePlatformPixmapSurfaceEXT'
PVRCarbon|DEBUG: Could not get function 'eglQueryOutputPortAttribEXT'
PVRCarbon|DEBUG: Could not get function 'eglSignalSyncNV'
PVRCarbon|DEBUG: Could not get function 'eglQueryOutputLayerAttribEXT'
PVRCarbon|DEBUG: Could not get function 'eglSetStreamMetadataNV'
PVRCarbon|DEBUG: Could not get function 'eglOutputPortAttribEXT'
PVRCarbon|DEBUG: Could not get function 'eglOutputLayerAttribEXT'
PVRCarbon|DEBUG: Could not get function 'eglGetOutputLayersEXT'
PVRCarbon|DEBUG: Could not get function 'eglQueryDmaBufModifiersEXT'
PVRCarbon|DEBUG: Could not get function 'eglCreateStreamKHR'
PVRCarbon|DEBUG: Could not get function 'eglQueryDmaBufFormatsEXT'
PVRCarbon|DEBUG: Could not get function 'eglQueryDisplayAttribEXT'
PVRCarbon|DEBUG: Could not get function 'eglQueryDeviceStringEXT'
PVRCarbon|DEBUG: Could not get function 'eglQueryDevicesEXT'
PVRCarbon|DEBUG: Could not get function 'eglLockSurfaceKHR'
PVRCarbon|DEBUG: Could not get function 'eglCompositorSetWindowListEXT'
PVRCarbon|DEBUG: Could not get function 'eglGetSystemTimeFrequencyNV'
PVRCarbon|DEBUG: Could not get function 'eglCompositorSetWindowAttributesEXT'
PVRCarbon|DEBUG: Could not get function 'eglCompositorSetSizeEXT'
PVRCarbon|DEBUG: Could not get function 'eglCompositorSetContextListEXT'
PVRCarbon|DEBUG: Could not get function 'eglCompositorSetContextAttributesEXT'
PVRCarbon|DEBUG: Could not get function 'eglCompositorBindTexWindowEXT'
PVRCarbon|DEBUG: Could not get function 'eglQuerySurfacePointerANGLE'
PVRCarbon|DEBUG: Could not get function 'eglPresentationTimeANDROID'
PVRCarbon|DEBUG: Could not get function 'eglQueryDeviceAttribEXT'
PVRCarbon|DEBUG: Could not get function 'eglGetNativeClientBufferANDROID'
PVRCarbon|DEBUG: Could not get function 'eglCreateFenceSyncNV'
PVRCarbon|DEBUG: Could not get function 'eglQueryStreamAttribKHR'
PVRCarbon|DEBUG: Could not get function 'eglGetNextFrameIdANDROID'
PVRCarbon|DEBUG: Could not get function 'eglGetFrameTimestampsANDROID'
PVRCarbon|DEBUG: Could not get function 'eglGetCompositorTimingSupportedANDROID'
PVRCarbon|DEBUG: Could not get function 'eglGetCompositorTimingANDROID'
PVRCarbon|DEBUG: Could not get function 'eglStreamConsumerGLTextureExternalAttribsNV'
PVRCarbon|DEBUG: Could not get function 'eglCreateNativeClientBufferANDROID'
PVRCarbon|DEBUG: Could not get function 'eglQueryNativeDisplayNV'
PVRCarbon|DEBUG: Could not get function 'eglGetPlatformDisplayEXT'
PVRCarbon|DEBUG: Could not get function 'eglCreatePlatformWindowSurfaceEXT'
PVRCarbon|DEBUG: Could not get function 'eglSetBlobCacheFuncsANDROID'
PVRCarbon|DEBUG: Could not get function 'eglResetStreamNV'
PVRCarbon|DEBUG: Could not get function 'eglWaitSyncKHR'
PVRCarbon|DEBUG: Could not get function 'eglStreamConsumerAcquireKHR'
PVRCarbon|DEBUG: Could not get function 'eglCreatePixmapSurfaceHI'
PVRCarbon|DEBUG: Could not get function 'eglGetFrameTimestampSupportedANDROID'
PVRCarbon|DEBUG: Could not get function 'eglGetOutputPortsEXT'
PVRCarbon|DEBUG: Could not get function 'eglQueryOutputPortStringEXT'
PVRCarbon|DEBUG: Could not get function 'eglSwapBuffersRegion2NOK'
PVRCarbon|DEBUG: Could not get function 'eglDestroyStreamKHR'
PVRCarbon|DEBUG: Could not get function 'eglStreamConsumerReleaseAttribKHR'
PVRCarbon|DEBUG: Could not get function 'eglDestroySyncNV'
PVRCarbon|DEBUG: Could not get function 'eglQueryOutputLayerStringEXT'
PVRCarbon|DEBUG: Could not get function 'eglCompositorSwapPolicyEXT'
PVRCarbon|DEBUG: Could not get function 'eglSetDamageRegionKHR'
PVRCarbon|DEBUG: Could not get function 'eglDestroySyncKHR'
PVRCarbon|DEBUG: Could not get function 'eglCreateStreamProducerSurfaceKHR'
PVRCarbon|DEBUG: Could not get function 'eglStreamConsumerAcquireAttribKHR'
PVRCarbon|DEBUG: Could not get function 'eglStreamConsumerReleaseKHR'
PVRCarbon|DEBUG: Could not get function 'eglQuerySurface64KHR'
PVRCarbon|DEBUG: Could not get function 'eglDupNativeFenceFDANDROID'
PVRCarbon|DEBUG: Could not get function 'eglCreateStreamSyncNV'
PVRCarbon|INFORMATION: Host EGL Library '/home/root/Linux_armv8_64/libEGL.so' loaded successfully
PVRCarbon|DEBUG: EGL Interface: Adding Host Layer
PVRCarbon|DEBUG: EGL Interface: Adding Overrides Layer
PVRCarbon|DEBUG: EGL Interface: Adding Record Layer
PVRCarbon|VERBOSE: Opening '/home/root/apptest_frames_0-100.0000.parts/0.data.pvrcbn.part' for writing
PVRCarbon|VERBOSE: Opening '/home/root/apptest_frames_0-100.0000.parts/0.calls.pvrcbn.part' for writing
PVRCarbon|VERBOSE: Opening '/home/root/apptest_frames_0-100.0000.parts/0.1.calls.pvrcbn.part' for writ
...
PVRCarbon|VERBOSE: Opening '/home/root/apptest_frames_0-100.0000.parts/0.1016.calls.pvrcbn.part' for writing
PVRCarbon|ERROR: Failed to open file '/home/root/apptest_frames_0-100.0000.parts/0.1017.calls.pvrcbn.part' (Too many open files)
PVRCarbon|ERROR: Could not open '/home/root/apptest_frames_0-100.0000.parts/0.1017.calls.pvrcbn.part' for writing
PVRCarbon|CRITICAL: Aborting... Unable to recover from error