PDA

View Full Version : Chart engine teardown, optimise for android opengl es 2.0



matheszabi
11-17-2013, 08:50 AM
Hi,

I am new to OpenGL development and thats why probably I will not used the correct names of the components, because I don't know it.

Here is what I want, the "task":
Make a battery efficient 2D chart rendering engine for Android. It is very-very important to be battery saver.


This chart engine should support full screen and not full screen mode. Phone portrait will have some other UI elements and a dedicated components, where is enabled the OpenGL ES 2.0. At Landscape need to turn on ( from code ) to full screen and show only the chart.

Now, I don't know who will use less power: the CPU or the GPU. Only I know the GPU is faster and if used at desktop games it will start the fan for cooling and a CPU rendering is 4-5x slower.

New events will come in each seconds, but only the last bar on the chart is affected in most of the time: his heigh and color. From time to time need a full redraw of the screen: translate al bars to left and start a new one, but that only once in a minute, 5 minute -depends on user settings.

A friend of mine told for me to not get into optimisation, because not worth and draw the full screen instead. Is that true? - when I want to save the battery?!

GPU and CPU power consumption:
If the GPU will drain 100 mA for 0.1 seconds that is the same as the CPU would drain 10mA for 1 seconds. Even if the CPU rendering is 10x slower, they consume the same amount of power. How is in the reality? They use the same amounts, will save the power if I will use OpenGL ES 2.0 instead of a plain 2D Canvas?

2D Canvas engine or OpenGL ES2: where to implement? SDK or NDK?
- I think the SDK code need to compile runtime, so maybe need more power from processor, plus NDK allows to use the whole memory of my phone. In my case is 1.5 GB was last time when I have checked, and SDK is limited to 256 Mb.

If the answer is a 2D engine, than problem solved, no need to read for more :)

I have started with OpenGL implementation with this:
setRenderMode(GLSurfaceView.RENDERMODE_WHEN_DIRTY) at least will not draw the screen fast as possible even when there are nothing new to show.

All renderer methods is calling JNI and will execute C code.

"Post denied. New posts are limited by number of URLs it may contain and checked if it doesn't contain forbidden words."
Oh can't post images yet, need to post some trashes now...rules..

- - - Updated - - -

great "Post denied. New posts are limited by number of URLs it may contain and checked if it doesn't contain forbidden words." 1

- - - Updated - - -

"Post denied. New posts are limited by number of URLs it may contain and checked if it doesn't contain forbidden words." 2

- - - Updated - - -

"Post denied. New posts are limited by number of URLs it may contain and checked if it doesn't contain forbidden words." 3

- - - Updated - - -

I want to post 6 images , how to ask what I want?!
imgur.com/SU6fWAe
Post denied. New posts are limited by number of URLs it may contain and checked if it doesn't contain forbidden words.

- - - Updated - - -

is this considered as second post?

matheszabi
11-17-2013, 08:54 AM
Can EGLImageTargetTexture2DOES specify mip level to target?
Started by xynopsis, 11-30-2012 04:41 PM
Replies: 0
Views: 1,921
xynopsis
11-30-2012, 04:41 PM Go to last post
Depth Texture alternative
Started by bram, 10-10-2012 09:34 PM
Replies: 0
Views: 1,921
bram
10-10-2012, 09:34 PM Go to last post
Implementation of EGL API
Started by hesham, 10-02-2012 08:31 PM
Replies: 0
Views: 1,684
hesham
10-02-2012, 08:31 PM Go to last post
OpenGL ES 2.0 Driver development on windows
Started by mht, 09-17-2012 08:04 PM
Replies: 0
Views: 1,917
mht
09-17-2012, 08:04 PM Go to last post

Why are closing moderators the question without answers?!

kturkowski
11-19-2013, 05:53 PM
(1) GPU usually uses less power than CPU because it has specialized graphics instructions.
(2) GPU likes to draw to the whole window, because it uses double-buffering, and the other buffer may not be initialized the way that you want. This is exacerbated with tiled renderers, which produce stuttered images where you haven't drawn.

matheszabi
11-23-2013, 08:42 AM
thank you very much