Fail to execute PowerVR Examples

This topic contains 13 replies, has 4 voices, and was last updated by  Tobias Hector 4 years, 10 months ago.

Viewing 14 posts - 1 through 14 (of 14 total)
  • Author
    Posts
  • #30998

    rasko121
    Member

    I am trying to execute the Example on VMware running Ubuntu 10.04 and miserably fail.  I have managed to build the executable (for LinuxGeneric platform, yet I fail to run it.

    • What can be the source of this problem?
    • Also, can you please explain about the graphics drivers (host dependent) and OGLES libraries. I understand both of them are supplied with PowerVR SDK – but how do I find what do I need for my platform and verify it’s configured properly?
    • My last question is about the difference between running 3D Graphics Demo application on a device with 3D HW Acceleration support (PowerVR IP) in comparison with  running 3D Graphics Demo application on a device without 3D HW Acceleration support, but with SW rendering (MESA). Can I run the supplied binaries with PowerVR SDK (Examples for ARMv7-PandaBoard) on the second option (with MESA, instead of PowerVR drivers)? Should I rebuild the to use MESA, instead of PowerVR?
    This is the error I get in VMware:
    me@ubuntu:/opt/Imagination2/PowerVR/GraphicsSDK/SDK_3.0/Examples/Beginner/01_HelloAPI/OGLES/Build/Linux_x86_32/ReleaseRaw$ ls
    libGLES_CM.so  OGLESHelloAPI  OGLESHelloAPI_NullWS.o
    me@ubuntu:/opt/Imagination2/PowerVR/GraphicsSDK/SDK_3.0/Examples/Beginner/01_HelloAPI/OGLES/Build/Linux_x86_32/ReleaseRaw$ ldd OGLESHelloAPI
    libGLES_CM.so => /home/me/OGLES_Linux_x86_32_Lib/libGLES_CM.so (0x00345000)
    libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00507000)
    libm.so.6 => /lib/tls/i686/cmov/libm.so.6 (0x00c0d000)
    libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x001c4000)
    libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0x001e3000)
    libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 (0x00f3f000)
    /lib/ld-linux.so.2 (0x0078d000)
    me@ubuntu:/opt/Imagination2/PowerVR/GraphicsSDK/SDK_3.0/Examples/Beginner/01_HelloAPI/OGLES/Build/Linux_x86_32/ReleaseRaw$ ./OGLESHelloAPI 
    Error: eglChooseConfig() failed.
    Thank you for your help.
    #36224

    chris
    Moderator

    Hi rasko,

    The OpenGL ES emulation libraries require that OpenGL drivers are present on the system. OpenGL drivers are not provided by the SDK; you will have to install them yourself through your distro’s package manager, or I believe Ubuntu provides a GUI for installing video drivers now.

    There are three libraries in play when you run an SDK example:
    – The OpenGL ES emulation libraries libGLES* and libEGL (provided by the SDK)
    – The OpenGL library libGL (provided by your video drivers, or mesa)

    The OpenGL ES libraries depend on libGL because they use it to do the rendering.

    I have managed to successfully emulate OpenGL ES applications using the Mesa software drivers. However this is not tested fully or regularly and I recommend using hardware drivers whenever possible.

    #36225

    rasko121
    Member

    Hi chris,

    thank you for your help.
    I have updated the Ubuntu disto running on my PandaBoard with OMAP4 Graphical Addons, which should have included the OpenGL driver as well. As described here:
    Yet when I run the debug script for PowerVR – I can’t see that the driver and the kernel modules aren’t loaded as expected:
    The other problem is that according to other TI info source – I am not sure PandaBoard is a supported platform for running PowerVR SDK, as it partially mentioned here:
    http://processors.wiki.ti.com/index.php/RN_4_06_00_02 – missing from updated SDK Graphics
    Thus, I am still clueless if I have the correct OGLES driver on my target, how do I verify it and if not – where I obtain it, so I will be able to run the PowerVR demo’s
    Again, thank you for your help.
    #36226

    prabindh
    Member

    The pages you are referring to are for non-OMAP4 platforms. Please refer to the Ubuntu pages for Pandaboard support.  Either the GLP packages, or Pandaboard Ubuntu package should directly support OMAP4. You can also check on Pandaboard forums.

    #36227

    rasko121
    Member

    prabindh,

    thank you for the quick response.
    I have updated my platform according to the procedure described here: Ubuntu Precise 12.04 – TI OMAP Release PPA October 2012 
    Does this mean I should have all the OpenGL drivers for Imagination IP as well? Is there a way I can verify it?
    Can you please point me how to rebuild the example binaries supplied with PowerVR, as it seems to be the only problem with my setup (the ARMv7 binaries were built for older Linux version)?
    Thank you.
    #36228

    prabindh
    Member
    You can check if it is installed using standard commands like dpkg.

     

    You can do a “reinstall” from apt, or you can get the sources and do a manual rebuild. As I mentioned, check on the Pandaboard forums
    #36229

    rasko121
    Member

    Can you please explain the difference between Raw and X11 build?
    What does it mean ESProgile=1? The difference between Common and CommonLite?

    #36230

    Hi rasko,

    X11 and Raw refer to the way the OpenGLES draws to the screen. X11 is the typical Linux XWindow interface, and Raw is for a device that uses no windowing system. If you have X11 drivers, then you should use the X11 build.

    Common and CommonLite are different subsets of OpenGL ES. The CommonLite profile is for devices which do not support floating point, and uses only fixed-point values. Common allows the use of both fixed-point and floating-point.

    Thanks,
    Tobias

    #36231

    rasko121
    Member

    Thank you Tobias.

    I have now built and executed on my Pandaboard the simple examples in the SDK.
    However when I execute an advanced example (3D Navigation for example) I get an error:
    PVRTTextureLoadFromPointer failed: glBindTexture() failed.
    Perhaps you can advise what can be the cause for this error (as I have assumed all examples should work). Thank you in advance.
    Also why do I get these warnings?
    me@me-dt-panda:~/3D_Navigation/Navigation3D/OGLES/Build/Linux_armv7/ReleaseX11$ sudo ./OGLESNavigation3D 
    [sudo] password for me: 
    Sorry, try again.
    [sudo] password for me: 
    gbmpvr: WSEGL_IsDisplayValid:77: hNativeDisplay=0x3aa0168
    PVR:(Warning): LoadWSModule: Window system module libpvrws_KMS.so did not validate native display [98, /generic_ws.c]
    wlpvr: WSEGL_IsDisplayValid:174: hNativeDisplay=0x3aa0168
    PVR:(Warning): LoadWSModule: Window system module libpvrws_WAYLAND.so did not validate native display [98, /generic_ws.c]
    PVR:(Warning): PVRSRVOpenDCDevice: Warning – 138 returned [80, /bridged_pvr_dc_glue.c]
    PVRShell: EGL 1.4 initialized
    PVRTTextureLoadFromPointer failed: glBindTexture() failed.
    Exit message has been set to: “ERROR: Could not open texture file skybox2.pvr”.
    InitView failed!
    PVR:(Warning): PVRDRMSetFD: DRM fd already set [57, /pvr_bridge_u.c]
    ERROR: Could not open texture file skybox2.pvr
    #36232

    Hi rasko,

    If you haven’t modified the demo then there should be no reason for that call to fail, except for the possibility that the device is running out of memory (I’d suggest trying other less intensive demos to verify this). It works on the Pandaboard we have in the office, so it’s definitely capable in some configuration.

    As for the other warnings, I’m afraid we really aren’t sure. These are going to be platform specific problems, and it’s probably best if you talk to TI or ask on the Pandaboard forums to see if this is the problem.

    Sorry I can’t be of more help!

    Regards,
    Tobias

    #36233

    rasko121
    Member

    Which demo do you recommend I try?

    Most Beginner examples are being run, while the Advanced examples don’t/
    #36234

    If that’s the case then it’s likely an out of memory error as I mentioned above, though it could be an issue with specific code paths on the platform. Again I’d suggest talking to TI/the Pandaboard forums, as there’s nothing obvious from our perspective that could solve this I’m afraid.

    Regards,
    Tobias

    #36235

    rasko121
    Member

    Hi Tobias,

    I haven’t managed to receive a reply from TI / Pandaboard teams on this subject for now.

    1. Cn you suggest a way to verify this is indeed a memory issue? As according to memstat I have enough memory (~1G)?

    2. You have testified the demo’s run run on your pandaboard. Can you please elaborate on it?
    which OS and release – the demo’s were tested on Pandaboard?
    which demo’s (which applications)?
    Were the (supplied) binaries executed or new binaries were built (upon which platform)?
    what PowerVR SDK version was tested on Pandaboard? As I have seen the documentation in SDK 3.0 is not so updated (POWERVR OpenGL US SDK User guide).

    If the demo’s should work on PandaBoard – I am really curious what’s the difference between the setups?

    Thanks,
    Assya.

    #36236

    Hi Assya,

    Sorry to hear that, I’m not sure what further support we can give you, but I’ll try to answer your questions below.

    1) If the error you get is reproducible, recompile the SDK, and put an output message into PVRTTextureLoadFromPointer at the point specified (there’s only one glBindTexture call in the function, should be easy enough to locate – in the file PVRTTextureAPI.cpp). If you check to see what the error enum returned is you should be able to locate the problem. You might want to put error messages before it as well, just in case.

    2) We’ve got the oldest Pandaboard – the 4430 version, running Linux.
    We’ve not run every single demo, but we have definitely run the demo you mentioned: Navigation3D, along with a selection of others.
    We’ve run them from the pre-built binaries in our SDK, and ones built locally on Ubuntu using an ARM toolchain.
    We ran the 2.10 versions and an early version of 3.0, though there were no changes to the Navigation demo for instance between these releases.

    I doubt we can be of much more help with specific setup details, as we’ve changed ours repeatedly, though I’ve been told that we’ve definitely used the stock setup from the Pandaboard site and had it working.

    I’d suggest double checking the glError output if you want to attempt to verify the cause, but otherwise it’s going to just be a case of continuing to poke the Pandaboard forums I’m afraid.

    Regards,
    Tobias

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