How To Improve Opengl Es Performance?


>As some of you already suggested: I also changed, that glBindBuffer, glVertexPointer and glTexturePointer
>are only called before drawing ALL blocks and not before drawing every block.

So... you still bind a texture for each block? Make all of them use the same one.

By the way, a simple optimization for simple wrapper libraries is to keep track of the currently bound texture... and then you only bind it if it isn't already bound.
 
Are you shutting down OpenGL properly? I remember having the same exact problem, at some point it stopped happening, I just don't remember what exactly I changed to resolve it.

I shut down OpenGL thusly:

Code:
	eglMakeCurrent(display, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);
	eglTerminate(display);

The only other thing I can think of is closing the /dev/mem file:

Code:
close(memfd);
 
aho said:
>As some of you already suggested: I also changed, that glBindBuffer, glVertexPointer and glTexturePointer
>are only called before drawing ALL blocks and not before drawing every block.

So... you still bind a texture for each block? Make all of them use the same one.

By the way, a simple optimization for simple wrapper libraries is to keep track of the currently bound texture... and then you only bind it if it isn't already bound.
Thanks, I will implement this. But as I said: Disabling texturing didn't solve my performance issue so I think the bottleneck is somewhere else.


satacoy said:
Are you shutting down OpenGL properly? I remember having the same exact problem, at some point it stopped happening, I just don't remember what exactly I changed to resolve it.

I shut down OpenGL thusly:

Code:
	eglMakeCurrent(display, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);
	eglTerminate(display);

The only other thing I can think of is closing the /dev/mem file:

Code:
close(memfd);
Thank you, I really forgot to do that, now it works fine.

I've uploaded a second beta version: http://watteimdocht.de/jan-nik/jntetri_wiz_beta2.zip
 
Last edited by a moderator:
>Disabling texturing didn't solve my performance issue so I think the bottleneck is somewhere else.

Did you also stop binding textures? OpenGL will still do all the work even if texturing is disabled, since... y'know... you might decide to enable texturing later on and that texture needs to be ready then.
 
aho said:
>Disabling texturing didn't solve my performance issue so I think the bottleneck is somewhere else.

Did you also stop binding textures? OpenGL will still do all the work even if texturing is disabled, since... y'know... you might decide to enable texturing later on and that texture needs to be ready then.
Yeah, I also comment binding textures out.

I need to implement some kind of benchmarking so that I can check if it really helped. Currently I'm just watching FPS after building blocks to the top.
 
Last edited by a moderator:
what texture format are u using? rgb888 or rgb565? the latter afaik matches the wiz's format better and thus no conversion must be made and so should be faster...
 
crow_riot said:
what texture format are u using? rgb888 or rgb565? the latter afaik matches the wiz's format better and thus no conversion must be made and so should be faster...
I'm using rgb888, but as I said earlier, disabling texturing didn't solve the performance problem, so I don't think changing the texture format will.

Why is the Wiz only using 16 bit anyway?
 
Last edited by a moderator:
>Why is the Wiz only using 16 bit anyway?

Most relatively cheap display types only offer 6bit per channel (instead of 8). At small sizes the usual cheats are sorta moot. There isn't much to gain there in terms of picture quality and 16bit is a tad faster and requires less memory to boot.
 
It would be cool to have an OpenGL ES 1.1 benchmark program for the Wiz.

With a quick search I found http://www.glbenchmark.com/tools.jsp?benchmark=glpro11. Unfortunately it's not open source.
 
Back
Top