PVRTrace – ERROR: attempted to recursively load trace DLL.

This topic contains 1 reply, has 2 voices, and was last updated by  Joe Davis 2 years, 8 months ago.

Viewing 2 posts - 1 through 2 (of 2 total)
  • Author
    Posts
  • #31951

    temein
    Member

    The output of VS2010:

    PVRTrace: DllMain
    PVRTrace: DLL_PROCESS_ATTACH.
    PVRTrace: DLL_THREAD_ATTACH
    PVRTrace: DllMain
    PVRTrace: DLL_THREAD_ATTACH
    PVRTrace: DllMain
    PVRTrace: DLL_THREAD_ATTACH
    PVRTrace: DllMain
    PVRTrace: DLL_THREAD_ATTACH
    PVRTrace: DllMain
    PVRTrace: DLL_THREAD_ATTACH
    PVRTrace: DllMain
    Config file found: E:ImaginationPowerVRGraphicsSDKSDK_3.3ExamplesBeginner1_HelloAPIOGLES2BuildWindowsVC2010/pvrtraceconfig.json

    Opening trace file ‘OGLES2HelloAPI.exe.pvrt’ for record recording.
    ‘OGLES2HelloAPI.exe.pvrt’ already exists so will be overwritten.
    Recorder Version: 3.3@2850432
    Loading host library ‘libEGL.dll’
    PVRTrace – ERROR: attempted to recursively load trace DLL.
    PVRTrace: DllMain
    PVRTrace: Trace finished.

    The config file at E:ImaginationPowerVRGraphicsSDKSDK_3.3ExamplesBeginner1_HelloAPIOGLES2BuildWindowsVC2010pvrtraceconfig.json:

    {
    “Tracing”: {
    “OutputFilename”: “%pname.pvrt”,
    “RecordData”: true,
    “StartFrame”: 0,
    “EndFrame”: 100,
    “ExitOnLastFrame”: true,
    “ClientBufferRecordFrequency”: 0,
    “SaveFrameBuffer”: true
    },
    “Debug”: {
    “Level”: 1
    },
    “Network”: {
    “Wait”: true,
    “Enabled”: false,
    “BufferSize”: 256
    },
    “Host”: {
    “Es2LibraryPath”: “libGLESv2.dll”,
    “Es1LibraryPath”: “libGLES_CM.dll”,
    “EglLibraryPath”: “libEGL.dll”
    },
    “Profiling”: {
    “SoftwareCounters”: true,
    “FunctionTimelineLevel”: 0,
    “Enabled”: false,
    “RenderstateOverride”: true
    }
    }

    PVRTrace.dll, libGLESv2.dll, libGLES_CM.dll and libEGL.dll are copied form E:ImaginationPowerVRGraphicsSDKPVRTraceRecorderWindows_x86_32 to $(OutDir) E:ImaginationPowerVRGraphicsSDKSDK_3.3ExamplesBeginner1_HelloAPIOGLES2BuildWindowsVC2010Debug(Where OGLES2HelloAPI.exe is located)

    In the documentation at E:ImaginationPowerVRGraphicsSDKPVRTraceDocumentationPVRTrace.User Manual.pdf:

    2.3.2. Windows
    1. Copy: “libEGL.dll” , “libGLESv2.dll” (OpenGL ES 2.0 and 3.0),
    “libGLES_CM.dll” , “libGLESv1_CM.dll” (OpenGL ES 1.1), and “PVRTrace.dll”
    To: Executable folder
    2. If a PVRTace configuration file does not exist, make one manually (see Section 2.4
    Configuration).
    3. Place “pvrtraceconfig.json” into the executable folder.
    4. Update “pvrtraceconfig.json” so that EglLibraryPath, Es1LibraryPath and
    Es2LibraryPath are set to the location of the systems graphics libraries (see Section 2.4).

    What am I doing wrong? @Joe

    #39402

    Joe Davis
    Member

    Hi,

    It seems that you are pointing the PVRTrace libraries at the PVRTrace libraries. Instead, your pvrtraceconfig.json should point to host OpenGL ES libraries or emulation libraries (e.g. PVRVFrame).

    One easy way to do this on Windows is to copy the PVRTrace libraries to your EXE’s directory, then copy the PVRVFrame OpenGL ES emulation libraries to a sub directory, e.g.

    IntroducingPOD/
    ├── libEGL.dll
    ├── libGLES_CM.dll
    ├── libGLESv1_CM.dll
    ├── libGLESv2.dll
    ├── OGLES2IntroducingPOD.exe
    ├── PVRTrace.dll
    ├── pvrtraceconfig.json
    └── PVRVFrameLibs
    ├──├── libEGL.dll
    ├──├── libGLES_CM.dll
    ├──└── libGLESv2.dll

    For this to work, you will also have to modify the pvrtraceconfig.json Host library paths to point to the PVRVFrameLibs sub-directory:

    {
    “Tracing”: {
    “OutputFilename”: “%pname.pvrt”,
    “RecordData”: true,
    “StartFrame”: 0,
    “EndFrame”: 100,
    “ExitOnLastFrame”: true,
    “ClientBufferRecordFrequency”: 0,
    “SaveFrameBuffer”: true
    },
    “Debug”: {
    “Level”: 1
    },
    “Network”: {
    “Wait”: true,
    “Enabled”: false,
    “BufferSize”: 256
    },
    “Host”: {
    “Es2LibraryPath”: “PVRVFrameLibs/libGLESv2.dll”,
    “Es1LibraryPath”: “PVRVFrameLibs/libGLES_CM.dll”,
    “EglLibraryPath”: “PVRVFrameLibs/libEGL.dll”
    },
    “Profiling”: {
    “SoftwareCounters”: true,
    “FunctionTimelineLevel”: 0,
    “Enabled”: false,
    “RenderstateOverride”: true
    }
    }

    With this folder structure and configuration file, I was able to successfully generate a file (OGLES2IntroducingPOD.exe.pvrt).

    Regards,
    Joe

Viewing 2 posts - 1 through 2 (of 2 total)
You must be logged in to reply to this topic.