Fail to execute PowerVR Examples

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
<span =“Apple-tab-span” style=“white-space:pre”> libGLES_CM.so => /home/me/OGLES_Linux_x86_32_Lib/libGLES_CM.so (0x00345000)
<span =“Apple-tab-span” style=“white-space:pre”> libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00507000)
<span =“Apple-tab-span” style=“white-space:pre”> libm.so.6 => /lib/tls/i686/cmov/libm.so.6 (0x00c0d000)
<span =“Apple-tab-span” style=“white-space:pre”> 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)
<span =“Apple-tab-span” style=“white-space:pre”> /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.

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.


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:
http://omappedia.org/wiki/Ubuntu_PPA

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:
http://e2e.ti.com/support/omap/f/849/p/223320/788319.aspx#788319
http://processors.wiki.ti.com/index.php/SGXDbg

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/Graphics_SDK_Quick_installation_and_user_guide#Download_Information_for_TI_SGX_Graphics_SDK
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.



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.


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 
https://groups.google.com/forum/#!topic/pandaboard/7DLabw7amBg

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.

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

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


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



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



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



Which demo do you recommend I try?

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

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

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.

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