Who am I?

kate.alhola

Kate is maemo chief engineer in Forum Nokia,
She has long Linux/Open Source developer background.

Calendar

« March 2009 »
Mo Tu We Th Fr Sa Su
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31          

Developing accelerated graphics with Maemo 5 Fremantle

kate.alhola | 02 March, 2009 14:16

Beagleboard running maemo Qt opengl

Nokia just announced today alpha version of Maemo 5 ( Fremantle ) SDK. This is the first maemo SDK version with accelerated OpenGL-ES2 graphics support. There are both, kernel drivers and user mode OpenGL-ES2 libraries included.

You can use OpenGL-ES2 directly using C API without need to use GTK+ or Qt. In Qt you can embed OpenGL-ES2 code inside to QGLWidget and then you have all power of Qt and OpenGL-ES2 combined. The easiest way is to use animated graphics libraries like Qt GraphicsView or Clutter that hides all of the OpenGL stuff inside and you have common API regardless what OpenGL version you have.

It is important to know that all OpenGL variants are not similar nor compatible. In Desktop newer OpenGL variants are upward compatible with older variants. OpenGL 2 introduced programmable pipeline, programmable shaders but it still had also traditional OpenGL 1.x API. OpenGL ES 1.0 was made  to be compact, light weight optimized to Mobile devices. Many API's that had duplicated functionality or did not provide optimum performance were removed. For example direct API's glBegin/glVertex/glEnd were removed and parsing vertex arrays with glVertexAttribPointer is the only method. OpenGL-ES2 went even further, now using the programmable pipeline and then write approprite shader program implementing wanted function. On the other hand, you can now implement things that were impossible with OpenGL-ES 1.x. Same thing said in simpler way, simple things became more dificult with OpenGL-ES2.0 but it also has made  new complex things possible.

If you would like to learn more about OpenGL-ES, couple of good  book recommendation is  "Mobile 3D graphics with OpenGL-ES and M3G" and other "OpenGL ES 2.0 programming guide"

Good starting point to start experimenting OpenGL-ES2.0 programming is to download Imagination Technologes OpenGL-ES 2.0 SDK .  SDK is free of charge but requires registration. The SDK contains good set of examples from simple rotating triangle to complicated shader applications. The desktop Linux SDk has OpenGL-ES2.0 wrapper library that implements OpenGL-ES2.0 API over OpenGL-drivers. I have used this SDK in Ubuntu. Compiling basic examples from SDK to maemo arm binaries is straight forward and they will run for example under maemo in Beagleboard. I made just a wrapper debian package to install Imagination SDK OpenGL-ES2.0 emulation library under Frematle SDK x86 Scratchbox target. With this wrapper, you can compile and run same applications under Scratchbox x86 target. The SDK contains as source some other utility libraries needed for more complex examples but I have not yet tried to make maemo arm/x86 packages from them. Even if the SDK is free, I am not yet sure if I could redistribute ready debian packages or just instructions how to pack files from SDK by yourself.

If you would like to know how your application will run in final maemo based mobile products, running application in desktop PC with high performance GPU does not give any usefull information exept that if it do not perform well in desktop, it definetelly won't do it in OMAP3. Omap CPU does not have same floating point power than desktop CPU and also GPU is pover battery life optimized, not maximum performance one.

To run OpenGL-ES2 accelerated graphics in ARM hardware, you need to have TI OPAMP3 based hardware. Untill a Nokia maemo 5 based device is released, you can use the Beagleboard as a development platform. Beagleboard gives a good feeling what will be the aproximate performance in a real device but it is not an exact match. At least in my experience the Beagleboard is not as fast as a well performing OMAP3 device could be. You can find moore about Beagleboard from Maemo Beagleboard garage project and Juha Kallioinen's presentaion in Fosdem 2009 .

 

 


RSSComments

Finally

fitzek | 02/03/2009, 22:24

fitzek

Good article. Very useful. Hopefully there will be soon more devices with OpenGL ES 2.0!

gtk/hildon integration?

harbaum | 03/03/2009, 14:19

All the talk about opengl mentions the qt integration, but no word about gtk/hildon. The alpha sdk also doesn't seem to include the clutter-gtk bindings. Is a clutter/opengl/gtk/hildon integration planned? How are gtk/hildon apps supposed to take advantage of clutter/opengl?

OpenGL 2

shniager | 08/03/2009, 03:06

So, how much time to wait for OpenGL 2 API?

Re: Developing accelerated graphics with Maemo 5 Fremantle

Sir Pulse | 02/04/2009, 09:22

Good news, but what ideas do you have about testing application?

your wrapper

NeoStrider | 15/10/2009, 03:26

Hello Kate,
Im a maemo game developer since its annoucement, back in 2005 and Im very excited to get things going with GL ES. While I cant buy a beagleboard (it is in my plans), can you please send me your wrapper?

You must login to post comments. Login
 
Nokia Developer aims to help you create apps and publish them so you can connect with users around the world.

京ICP备05048969号  © Copyright Nokia 2013 All rights reserved