executing powervr sdk binairie examples on linux

This topic contains 28 replies, has 6 voices, and was last updated by  Shaun 2 months, 1 week ago.

Viewing 15 posts - 1 through 15 (of 29 total)
  • Author
    Posts
  • #31714

    aicha11
    Member

    il I execute the binairies exemple I got this error
    Failed to choose a suitable config

    #38749

    dgu
    Member

    did you link it correctly ?
    do you have proper graphic card with minimal requirement ?
    mine are
    direct rendering: Yes
    server glx vendor string: SGI
    server glx version string: 1.4
    server glx extensions:
    OpenGL shading language version string: 1.20

    a very old ubuntu running super well :

    regards
    david

    #38750

    Joe Davis
    Member

    Hi Aicha,

    You also need to execute the correct Linux binary for your platform, for example the X11 binaries will only run if you have the required X11 packages on your machine.

    Joe

    #56127

    Pan
    Member

    I met the same problem ,have you solved it?

    #56128

    Shaun
    Member

    Hi Pan,

    What error are you getting exactly can you provide the log if possible? Is this one of the examples from our SDK, if so which example and what version of the SDK are you using? What machine are you trying to run the example on i.e. Linux, Windows, x86, ARM etc?

    Thanks,
    Shaun

    #56134

    Pan
    Member

    Hi Shaun,
    I’m using the 2017 R1 version of the SDK and I run the example on Linux.
    Here is my equipment info:
    pansr@pansr-IdeaPad:~$ glxinfo |grep OpenGL
    OpenGL vendor string: NVIDIA Corporation
    OpenGL renderer string: GeForce GT 650M/PCIe/SSE2
    OpenGL core profile version string: 4.5.0 NVIDIA 375.39
    OpenGL core profile shading language version string: 4.50 NVIDIA
    OpenGL core profile context flags: (none)
    OpenGL core profile profile mask: core profile
    OpenGL core profile extensions:
    OpenGL version string: 4.5.0 NVIDIA 375.39
    OpenGL shading language version string: 4.50 NVIDIA
    OpenGL context flags: (none)
    OpenGL profile mask: (none)
    OpenGL extensions:
    OpenGL ES profile version string: OpenGL ES 3.2 NVIDIA 375.39
    OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20
    OpenGL ES profile extensions:

    1.
    I compiled the example of 01_HelloAPI successfully,and tried to run the OGLESHelloAPI.
    Then i get this error : Failed to get an EGLDisplay.

    pansr@pansr-IdeaPad:/opt/Imagination/PowerVR_Graphics/PowerVR_SDK/SDK_2017_R1/Examples/Beginner/01_HelloAPI/OGLES/Build/Linux_x86_64$ sudo make
    mkdir -p ReleaseNullWS
    gcc -O2 -Wall -m64 -c -I/opt/Imagination/PowerVR_Graphics/PowerVR_SDK/SDK_2017_R1/Builds/Include ../../OGLESHelloAPI_NullWS.cpp -o ReleaseNullWS/OGLESHelloAPI_NullWS.o
    mkdir -p ReleaseNullWS
    g++ -o ReleaseNullWS/OGLESHelloAPI ReleaseNullWS/OGLESHelloAPI_NullWS.o -L/opt/Imagination/PowerVR_Graphics/PowerVR_SDK/SDK_2017_R1/Builds/Linux/x86_64/Lib -Wl,–rpath-link,/opt/Imagination/PowerVR_Graphics/PowerVR_SDK/SDK_2017_R1/Builds/Linux/x86_64/Lib -m64 -lEGL -lGLESv2 -L/lib

    pansr@pansr-IdeaPad:/opt/Imagination/PowerVR_Graphics/PowerVR_SDK/SDK_2017_R1/Examples/Beginner/01_HelloAPI/OGLES/Build/Linux_x86_64$ cd ReleaseNullWS/

    pansr@pansr-IdeaPad:/opt/Imagination/PowerVR_Graphics/PowerVR_SDK/SDK_2017_R1/Examples/Beginner/01_HelloAPI/OGLES/Build/Linux_x86_64/ReleaseNullWS$ ./OGLESHelloAPI
    Failed to get an EGLDisplay

    2.
    Then i tried to use the libEGL.so and libGLESv2.so in PVRVFrame to compile the code ,and i compile failed.

    pansr@pansr-IdeaPad:/opt/Imagination/PowerVR_Graphics/PowerVR_SDK/SDK_2017_R1/Examples/Beginner/01_HelloAPI/OGLES$ ls
    Build OGLESHelloAPI_iOS.mm OGLESHelloAPI_NullWS.cpp OGLESHelloAPI_Windows.cpp
    OGLESHelloAPI_Android.cpp OGLESHelloAPI_LinuxX11.cpp OGLESHelloAPI_OSX.mm

    pansr@pansr-IdeaPad:/opt/Imagination/PowerVR_Graphics/PowerVR_SDK/SDK_2017_R1/Examples/Beginner/01_HelloAPI/OGLES$ sudo g++ OGLESHelloAPI_NullWS.cpp -I../../../../Builds/Include/ -L../../../../../../PowerVR_Tools/PVRVFrame/Library/Linux_x86_64/ -lEGL -lGLESv2 -lX11
    Here is the log,i don’t know where the functions are.
    ../../../../../../PowerVR_Tools/PVRVFrame/Library/Linux_x86_64//libGLESv2.so:对‘DbgMergeRanges’未定义的引用
    ../../../../../../PowerVR_Tools/PVRVFrame/Library/Linux_x86_64//libGLESv2.so:对‘DbgCopyDIEAttr’未定义的引用
    ../../../../../../PowerVR_Tools/PVRVFrame/Library/Linux_x86_64//libGLESv2.so:对‘DbgMakeDIEAttr’未定义的引用
    ../../../../../../PowerVR_Tools/PVRVFrame/Library/Linux_x86_64//libGLESv2.so:对‘DbgMakeExprConsti’未定义的引用
    ../../../../../../PowerVR_Tools/PVRVFrame/Library/Linux_x86_64//libGLESv2.so:对‘DbgMakeExprBReg’未定义的引用
    ../../../../../../PowerVR_Tools/PVRVFrame/Library/Linux_x86_64//libGLESv2.so:对‘ForAllDIEs’未定义的引用
    ../../../../../../PowerVR_Tools/PVRVFrame/Library/Linux_x86_64//libGLESv2.so:对‘PVR_qsort_s’未定义的引用
    ../../../../../../PowerVR_Tools/PVRVFrame/Library/Linux_x86_64//libGLESv2.so:对‘DbgMakeCFAr’未定义的引用
    ../../../../../../PowerVR_Tools/PVRVFrame/Library/Linux_x86_64//libGLESv2.so:对‘DbgAddFDE’未定义的引用
    ../../../../../../PowerVR_Tools/PVRVFrame/Library/Linux_x86_64//libGLESv2.so:对‘DbgAppendCFA’未定义的引用
    ../../../../../../PowerVR_Tools/PVRVFrame/Library/Linux_x86_64//libGLESv2.so:对‘DbgMakeLineInfo’未定义的引用
    ../../../../../../PowerVR_Tools/PVRVFrame/Library/Linux_x86_64//libGLESv2.so:对‘DbgMakeRangeList’未定义的引用
    ../../../../../../PowerVR_Tools/PVRVFrame/Library/Linux_x86_64//libGLESv2.so:对‘DbgMakeExprOp’未定义的引用
    ../../../../../../PowerVR_Tools/PVRVFrame/Library/Linux_x86_64//libGLESv2.so:对‘DbgMakeDIEAttrString’未定义的引用
    ../../../../../../PowerVR_Tools/PVRVFrame/Library/Linux_x86_64//libGLESv2.so:对‘DbgCopyRanges’未定义的引用
    ../../../../../../PowerVR_Tools/PVRVFrame/Library/Linux_x86_64//libGLESv2.so:对‘DbgInitLineProgramState’未定义的引用
    ../../../../../../PowerVR_Tools/PVRVFrame/Library/Linux_x86_64//libGLESv2.so:对‘ElfMakeSection’未定义的引用
    ../../../../../../PowerVR_Tools/PVRVFrame/Library/Linux_x86_64//libGLESv2.so:对‘DbgStrDup’未定义的引用
    ../../../../../../PowerVR_Tools/PVRVFrame/Library/Linux_x86_64//libGLESv2.so:对‘DbgRemoveDIEChild’未定义的引用
    ../../../../../../PowerVR_Tools/PVRVFrame/Library/Linux_x86_64//libGLESv2.so:对‘ElfMakeSymbol’未定义的引用
    ../../../../../../PowerVR_Tools/PVRVFrame/Library/Linux_x86_64//libGLESv2.so:对‘DbgMakeCallFrameInfo’未定义的引用
    ../../../../../../PowerVR_Tools/PVRVFrame/Library/Linux_x86_64//libGLESv2.so:对‘DbgFindDIEAttr’未定义的引用
    ../../../../../../PowerVR_Tools/PVRVFrame/Library/Linux_x86_64//libGLESv2.so:对‘ElfReleaseContext’未定义的引用
    ../../../../../../PowerVR_Tools/PVRVFrame/Library/Linux_x86_64//libGLESv2.so:对‘DbgMakeLoc’未定义的引用
    ../../../../../../PowerVR_Tools/PVRVFrame/Library/Linux_x86_64//libGLESv2.so:对‘DbgMakeLocList’未定义的引用
    ../../../../../../PowerVR_Tools/PVRVFrame/Library/Linux_x86_64//libGLESv2.so:对‘DbgAddDIEAttr’未定义的引用
    ../../../../../../PowerVR_Tools/PVRVFrame/Library/Linux_x86_64//libGLESv2.so:对‘DbgMakeDIEAttrAddr’未定义的引用
    ../../../../../../PowerVR_Tools/PVRVFrame/Library/Linux_x86_64//libGLESv2.so:对‘DbgMakeDIEAttrLinePtr’未定义的引用
    ../../../../../../PowerVR_Tools/PVRVFrame/Library/Linux_x86_64//libGLESv2.so:对‘DbgReleaseContext’未定义的引用
    ../../../../../../PowerVR_Tools/PVRVFrame/Library/Linux_x86_64//libGLESv2.so:对‘DbgMakeDIEAttrLocList’未定义的引用
    ../../../../../../PowerVR_Tools/PVRVFrame/Library/Linux_x86_64//libGLESv2.so:对‘DbgAppendLineInfoRow’未定义的引用
    ../../../../../../PowerVR_Tools/PVRVFrame/Library/Linux_x86_64//libGLESv2.so:对‘DbgMakeFileEntry’未定义的引用
    ../../../../../../PowerVR_Tools/PVRVFrame/Library/Linux_x86_64//libGLESv2.so:对‘DbgMakeDIEAttrRangeList’未定义的引用
    ../../../../../../PowerVR_Tools/PVRVFrame/Library/Linux_x86_64//libGLESv2.so:对‘DbgMakeDIEAttrExprLoc’未定义的引用
    ../../../../../../PowerVR_Tools/PVRVFrame/Library/Linux_x86_64//libGLESv2.so:对‘DbgReleaseDIETree’未定义的引用
    ../../../../../../PowerVR_Tools/PVRVFrame/Library/Linux_x86_64//libGLESv2.so:对‘DbgIsDIEChild’未定义的引用
    ../../../../../../PowerVR_Tools/PVRVFrame/Library/Linux_x86_64//libGLESv2.so:对‘DbgMakeCompilationUnit’未定义的引用
    ../../../../../../PowerVR_Tools/PVRVFrame/Library/Linux_x86_64//libGLESv2.so:对‘ElfCreateContext’未定义的引用
    ../../../../../../PowerVR_Tools/PVRVFrame/Library/Linux_x86_64//libGLESv2.so:对‘DbgMakeCFAi’未定义的引用
    ../../../../../../PowerVR_Tools/PVRVFrame/Library/Linux_x86_64//libGLESv2.so:对‘DbgRemoveDIEAttr’未定义的引用
    ../../../../../../PowerVR_Tools/PVRVFrame/Library/Linux_x86_64//libGLESv2.so:对‘DbgMakeExprConstu’未定义的引用
    ../../../../../../PowerVR_Tools/PVRVFrame/Library/Linux_x86_64//libGLESv2.so:对‘DbgMakeCFArr’未定义的引用
    ../../../../../../PowerVR_Tools/PVRVFrame/Library/Linux_x86_64//libGLESv2.so:对‘DbgMakeFDE’未定义的引用
    ../../../../../../PowerVR_Tools/PVRVFrame/Library/Linux_x86_64//libGLESv2.so:对‘DbgReleaseLoc’未定义的引用
    ../../../../../../PowerVR_Tools/PVRVFrame/Library/Linux_x86_64//libGLESv2.so:对‘ElfAddSymbol’未定义的引用
    ../../../../../../PowerVR_Tools/PVRVFrame/Library/Linux_x86_64//libGLESv2.so:对‘DbgInitDIEList’未定义的引用
    ../../../../../../PowerVR_Tools/PVRVFrame/Library/Linux_x86_64//libGLESv2.so:对‘ElfMakeFileHeader’未定义的引用
    ../../../../../../PowerVR_Tools/PVRVFrame/Library/Linux_x86_64//libGLESv2.so:对‘ElfAlloc’未定义的引用
    ../../../../../../PowerVR_Tools/PVRVFrame/Library/Linux_x86_64//libGLESv2.so:对‘ElfAddSection’未定义的引用
    ../../../../../../PowerVR_Tools/PVRVFrame/Library/Linux_x86_64//libGLESv2.so:对‘ElfWriteExternal’未定义的引用
    ../../../../../../PowerVR_Tools/PVRVFrame/Library/Linux_x86_64//libGLESv2.so:对‘DbgReleaseExprList’未定义的引用
    ../../../../../../PowerVR_Tools/PVRVFrame/Library/Linux_x86_64//libGLESv2.so:对‘FindBipartiteGraphMatching’未定义的引用
    ../../../../../../PowerVR_Tools/PVRVFrame/Library/Linux_x86_64//libGLESv2.so:对‘DbgMakeCFAri’未定义的引用
    ../../../../../../PowerVR_Tools/PVRVFrame/Library/Linux_x86_64//libGLESv2.so:对‘DbgMakeDIETag’未定义的引用
    ../../../../../../PowerVR_Tools/PVRVFrame/Library/Linux_x86_64//libGLESv2.so:对‘DbgMakeDIEAttrFlagPresent’未定义的引用
    ../../../../../../PowerVR_Tools/PVRVFrame/Library/Linux_x86_64//libGLESv2.so:对‘DbgMakeStandardOpcodeLengths’未定义的引用
    ../../../../../../PowerVR_Tools/PVRVFrame/Library/Linux_x86_64//libGLESv2.so:对‘DbgIsSameExprList’未定义的引用
    ../../../../../../PowerVR_Tools/PVRVFrame/Library/Linux_x86_64//libGLESv2.so:对‘DbgCreateContext’未定义的引用
    ../../../../../../PowerVR_Tools/PVRVFrame/Library/Linux_x86_64//libGLESv2.so:对‘ElfPrepareExternal’未定义的引用
    ../../../../../../PowerVR_Tools/PVRVFrame/Library/Linux_x86_64//libGLESv2.so:对‘DbgMakeCIE’未定义的引用
    ../../../../../../PowerVR_Tools/PVRVFrame/Library/Linux_x86_64//libGLESv2.so:对‘DbgReleaseAttr’未定义的引用
    ../../../../../../PowerVR_Tools/PVRVFrame/Library/Linux_x86_64//libGLESv2.so:对‘DbgAppendDIEChildren’未定义的引用
    ../../../../../../PowerVR_Tools/PVRVFrame/Library/Linux_x86_64//libGLESv2.so:对‘DbgMakeDIEAttrDIEReference’未定义的引用
    ../../../../../../PowerVR_Tools/PVRVFrame/Library/Linux_x86_64//libGLESv2.so:对‘DbgAppendDIEList’未定义的引用
    ../../../../../../PowerVR_Tools/PVRVFrame/Library/Linux_x86_64//libGLESv2.so:对‘DbgMakeDIE’未定义的引用
    ../../../../../../PowerVR_Tools/PVRVFrame/Library/Linux_x86_64//libGLESv2.so:对‘DbgReleaseFDE’未定义的引用
    ../../../../../../PowerVR_Tools/PVRVFrame/Library/Linux_x86_64//libGLESv2.so:对‘DbgCreateExternalDwarf’未定义的引用
    ../../../../../../PowerVR_Tools/PVRVFrame/Library/Linux_x86_64//libGLESv2.so:对‘ElfStrDup’未定义的引用
    ../../../../../../PowerVR_Tools/PVRVFrame/Library/Linux_x86_64//libGLESv2.so:对‘DbgMakeDIEAttrUData’未定义的引用
    ../../../../../../PowerVR_Tools/PVRVFrame/Library/Linux_x86_64//libGLESv2.so:对‘DbgMakeDIEAttrBlock’未定义的引用
    collect2: error: ld returned 1 exit status

    Thanks
    PanShouren

    #56135

    Shaun
    Member

    Hi Pan,

    It looks like you are building the example for the incorrect windowing system, I assume your Linux machine uses the X11 windowing system as it has an Nvidia graphics card installed. To build the example for X11 run the following command at the shell: $ make PLATFORM=Linux_x86_64 X11BUILD=1 X11ROOT=/usr/lib/x86_64-linux-gnu/X11

    Note that your X11ROOT might be different from mine so check this before building the demo.

    The build should create a ReleaseX11 folder, try running the binary and let me know if you still have any issues.

    Thanks,
    Shaun

    • This reply was modified 5 months, 2 weeks ago by  Shaun.
    #56139

    Pan
    Member

    Hi,Shaun
    As you said, my Ubuntu uses the X11 windowing system as it has an Nvidia graphics card,and i use the command you suggested to build the example,i still get the error: “Failed to get an EGLDisplay”.I don’t know what went wrong.
    And i read the PVRVFrame Doc,but i don’t know how to use the PowerVR emulator to build and run opengles program.

    Thanks,
    Pan

    #56140

    Shaun
    Member

    Hi Pan,

    I am glad you could build the X11 version of the app, I think the problem now is probably that the PVRVFrame libraries are not being picked up by the application when you build/run it.

    The ‘HelloAPI’ example statically links against PVRVFrame, which is already done for you in the make file so there is no need to add -L to the build command. The files are in <SDK Path>/Builds/Linux/x86_64/lib.

    All of the other examples are dynamically linked to PVRVFrame, so you do not need to build against the PVRVFrame libraries but they must be present in your system for the app to pick them up at run-time and use them, you should be able to use export LD_LIBRARY_PATH=<path to PVRVFrame>.

    Can you try running ldd on the binary and post the output?
    Also have you been able to run any other 3D applications on your test machine?

    Thanks,
    Shaun

    • This reply was modified 5 months, 2 weeks ago by  Shaun.
    #56143

    Pan
    Member

    Hi, Shaun:
    Thank you for your explanation,i used the sdk libraries instead of the PVRVFrame libraries to run the application before. Now i run the example successfully,i can see the triangle but it disappeard suddenly.Why is this?

    Thanks,
    Pan

    #56144

    Shaun
    Member

    Hi Pan,

    That’s great news, the application closes by ‘design’ after 800 frames have been rendered.

    Thanks,
    Shaun

    #56145

    Pan
    Member

    Hi, Shaun:
    I saw it in the code .Thank you very much.
    I’ve been puzzled by this problem for many days,Now it’s finally settled.

    非常感谢!
    Pan

    #56517

    Calvin
    Member

    Hi Shaun,

    I have met this issue for days, I need your help. thx!

    I set LD_LIBRARY_PATH = /opt/Imagination/PowerVR_Graphics/PowerVR_SDK/SDK_2017_R1/Builds/Linux/x86_64/Lib

    but I still got same error.
    ./OGLESHelloAPI
    Failed to get an EGLDisplay

    #56518

    Shaun
    Member

    Hi Calvin,

    Are you getting this issue with the pre-built binaries or are you building the application from source?
    What model of GPU does your system have?
    Does the problem persist if you run any of the other examples in the SDK?

    If you are running this on a desktop GPU i.e. nvidia, AMD, Intel etc. that does not have GLES, then you need to point LD_LIBRARY_PATH at our PVRVFrame libraries, which can be found in our SDK. You can grab the installer here: https://community.imgtec.com/developers/powervr/installers/.

    Thanks,
    Shaun

    • This reply was modified 2 months, 2 weeks ago by  Shaun.
    • This reply was modified 2 months, 2 weeks ago by  Shaun.
    #56523

    Calvin
    Member

    Shaun,

    Thanks a lots for your reply.
    GPU on my Ubuntu 16.04 LTS is NVIDIA GF106GL Quadro 2000.

    I sure I downloaded and ran the PowerVRSDKSet-2017_R1.run-x64 on my Ubuntu
    $sudo ./PowerVRSDKSet-2017_R1.run-x64
    and the installation path is /opt/Imagination/PowerVR_Graphics/PowerVR_SDK/SDK_2017_R1

    Does the PVRFrame libraries you mentioned point to /opt/Imagination/PowerVR_Graphics/PowerVR_SDK/SDK_2017_R1/Builds/Linux/x86_64/Lib?

    Thanks.
    Calvin.

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