views:

70

answers:

1

I thought this should be easy, but... geesh! A vendor gave me a fairly simple demo program meant to showcase some trivial icon animations. The target platform is an embedded system (MX51) with accelerated OpenGL ES 2.0/OpenVG and EGL support.

Unfortunately, the demo also has an annoying dependency on a few Qt utility classes (e.g., QImage). If not for this dependency, I would compile/run the thing on the target. But I don't relish the thought of cross-compiling Qt just to run this little demo---even if there were enough room for it on the embedded board.

I hoped I might be able to run the app on a standard(ish) Ubuntu 10.04 VM, and started following these directions to make it happen. And I actually managed---like, 10 hours later---to compile everything and get a runnable binary of the demo program. However, when I run it, I see the following error:

eglCreateWindowSurface: egl error "EGL_BAD_CONFIG" (0x3005)

Sigh. Not what I wanted to see after all that effort. This seems way more difficult than it should be.

Is the embedded GL landscape really such a ghetto that I have to run even trivial programs on the target using some vendor-supplied BSP? Judging from the lack of responses to this guy's question, I'm thinking the answer might be yes. But I don't even care about acceleration (yet). I just want to run the stupidest of OpenGL ES 2/OpenVG programs on a desktop PC and get an idea of how it looks. (It doesn't matter to me whether the PC is running Linux or Windows.) How do people do this sort of thing?

A: 

There are several OpenGL ES 2.0 emulators, such as:

For ARM Mali GPUs

For PowerVR GPUs

Also very recently, AMD has posted drivers that expose OpenGL ES 2.0 on desktop.

More recently, OpenGL 4.1 exposes the GL_ARB_ES2_compatibility extension, which makes OpenGL 4.1 drivers GL ES 2.0 compatible.

For OpenVG, you can use AmanithVG GLE.

Matias Valdenegro
Thanks for the pointers. After reading your helpful response, I downloaded nVidia's OpenGL ES 2.0 emulator (http://bit.ly/bnpfRY) and installed it on my notebook, which contains a GeForce 9500M. I was momentarily puzzled by the lack of a libEGL.dll in the installed files, but discovered that nVidia simply lumps all the egl* functions into libGLES20.dll. (Some other emulators I played with had these in a separate library.)
evadeflow
OMG, I'm spitting mad now that I've RTFM on nVidia's emulator. It says this about their OpenVG implementation: OpenVG 1.0: VG/*: Support for vector graphics. See the Khronos documentation for details. Link only. APIs not implemented.Really? Really?! Grrr. I suppose I'll have to get a dev machine with an AMD GPU...
evadeflow