MeeGo OpenGL ES 2: Performance and quality

MeeGo OpenGL ES 2: Performance and quality

Here I am sharing my experience with openGL ES 2 on MeeGo 1.2 (hardware with CPU: ATOM N450/N455): 1. It is slow. The same machine can render much higher triangles on Windows (with DX8/DX9). 2. Vertex count matters a lot. It is not triangle count but vertex count that matters most. I guess this is due to hardware pixel shader and software vertex shader. The vertex shader processing is very slow. 3. Performance degrades a lot when mesh is stored in RAM instead of OpenGL Buffer Object. The openGL ES example available stores geometry in RAM which is not a fast way. Quality: 1. The triangles are not perspective correct. That means when you see big near polygons the texture gets distorted. The distortion is high when the the polygons gets half clipped. Please note that this happens only when a perspective matrix is applied (which is not the case of spinning cube example). OpenGL ES 2 even do not have any switch for perspective correction, because it assumes everything should be perspective correct. This is problem is of vertex processing and not the hardware (because same hardware does perspective correction on Windows). This problem forces us to tesselate the geometry but then vertex count increases and performance degrades. It will be difficult to develop/port 3D games to MeeGo in this situation. If the MeeGo openGL developers are listening please give it a high priority.
5 post / 0 nuovi
Ultimo contenuto
Per informazioni complete sulle ottimizzazioni del compilatore, consultare l'Avviso sull'ottimizzazione

Hi Pinigames:

Thanks for your comments.

On the platform that you are using, vertex shading is actually done by CPU on MeeGo. DX8/DX9 is on Windows and drivers are different than MeeGo and hence the performance difference that you are seeing.

In general, Atom Nxxx is our dated CPU. It is using older technology (e.g. RAM is mostly DDR2 only).
But there is good news. Our newer CPU platforms, Atom Zxxx that was announced earlier this year, is available on the market:

If you get hold of one of these units, you can go to and download images with "Oaktrail" in the names, you will be able to see very good performance improvement over Nxxx CPUs that you are using. If you choose this route, You may want to check with the device manufacturer about Linux driver support. Built-in peripherals will need linux driver to work properly on MeeGo.


Thanks for the information.

I think the way to go for games is to make renders and work in 2D. Since there are many powerful algorithms in Qt already developed for that use.

Sebastian E.

The GPU (GMA 945/950 and GMA 3150) does a good job with Fixed Function rendering (OpenGL 1.5, or written to OpenGL ES 1.1 spec). On Windows you don't even get access to OpenGL shaders, as for the Linux side they are emulated on CPU by Tungsten's Driver (though old pre-GLSL ARB shaders are supposed to work). I've had no issues driving a 720p screen at nearly 60fps, albiet minimal scene complexity; Just stay away from textures larger than 1024x1024. But yeah, anything shader heavy, I wouldn't bet on unless (until?) the Atom gets paired with an HD 3000 (Sandy Bridge), or a PowerVR SGX (i.e. the GMA 500).

My post was not intended to discourage anyone.
In fact I want to encourage 3d games development for MeeGo.
I just wanted to raise my voice so that this issue is resolved in next version of MeeGo.

This issue is entirly a software issue, and not related to any hardware.
We cannot develop netbook games considering future hardware.
When we develop games for netbook (Windows) we do not want to develop seperate low poly assets for MeeGo, considering same target hardware.

Frame rate issue can be solved by keeping geometry detail low, but perspective correction is a big problem.
Some workaround for perspective correction problem:
1. Skybox suffers a lot (looks horrible) using conventional unit box drawing.
This can be solved by rendering single fullscreen quad and using cubemap texture.
2. Rendering flat ground/sea by single big polygon with tiled texture won't work.
The solution is to draw a tessellated pie shape (section of concentric rings) in visible frustum.
3. keep camera far from geometry.

Lascia un commento

Eseguire l'accesso per aggiungere un commento. Non siete membri? Iscriviti oggi