maemo.org - Talk

maemo.org - Talk (https://talk.maemo.org/index.php)
-   Games (https://talk.maemo.org/forumdisplay.php?f=12)
-   -   [Announce] Lincity-ng (city building simulator) on extras-devel (https://talk.maemo.org/showthread.php?t=83647)

Estel 2013-06-10 21:36

Re: [Announce] Lincity-ng (city building simulator) on extras-devel
 
Since Lincity GLES1 discussions, I was helping (just a little) to investigate HomeworldSDL performance issues. As a result, I'm no longer surprised, that GLES1 doesn't give us performance benefits - according to freemangordon, GLES1 is emulated entirely (or almost entirely) on our devices, meaning that it runs on CPU, this or another way.

For "real" hardware accel., we would need GLES2, which is whole different beast, and rewrite wouldn't be trivial, sadly :(

/Estel

javispedro 2013-06-11 10:57

Re: [Announce] Lincity-ng (city building simulator) on extras-devel
 
Quote:

Originally Posted by Estel (Post 1350973)
according to freemangordon, GLES1 is emulated entirely (or almost entirely) on our devices, meaning that it runs on CPU, this or another way.

WTF are you talking about? (second WTF of the day) OBVIOUSLY GLES1 runs on the GPU, otherwise it would be close to the fastest software renderer (for ARM) that I've ever seen.

There have been other devices (/me looks at Android chinese crap) where ES 1 calls were emulated _on top of ES 2_. This is not as bad as it sounds because ES 2 is actually quite flexible. But I've never heard of such crap as emulating on the CPU.

And certainly it's not the case for the imgtech driver, because on its first days it was a GL ES 1.1 only driver. GL 2 was added during the start of the SGX era. But among other things it means that the ES 1.1 library has access to some hardware features the ES 2 library doesn't even use (ie ES 1 library uses the codegen directly, there is no 'shader language' middle layer).

EDIT: Please note that I am quite sure that stuff like multMatrix() is run on the CPU; but geometry is certainly not.

Quote:

Originally Posted by Estel (Post 1350973)
For "real" hardware accel., we would need GLES2, which is whole different beast, and rewrite wouldn't be trivial, sadly :(

For a 2D game, a rewrite would be quite easy actually. You just need to write a single shader that does the alpha testing, rewrite the "bitblt" function into a call to drawArrays() and that's about it.

The problem is that, as usual, I'd bet it does not actually help performance.

You can then start doing other optimizations, such as keeping a global array of coordinates and call drawArrays() once per frame instead of once per bitblt, etc. etc. and then you might get something better than GL ES 1.1 performance, but even then, I'd bet that not by much.

Estel 2013-06-11 11:52

Re: [Announce] Lincity-ng (city building simulator) on extras-devel
 
Quote:

Originally Posted by javispedro (Post 1351097)
WTF are you talking about? (second WTF of the day)

And both are related to FMG, heh ;) I belive you by word, as sadly, I have no expertise on that matter. I point FMG to that post, maybe he will sheed some light where originate this conslusion about gles1 being emulated on software (in case of our device).

In any way, thanks for your detailed explanation.

/Estel

freemangordon 2013-06-23 18:26

Re: [Announce] Lincity-ng (city building simulator) on extras-devel
 
@Estel - by "emulated" I meant exactly what javispedro said - it runs on top of GLES2 with some stuff running on CPU. That means that GLES1 fixed pipeline is emulated using shaders (the only thing we have in GLES2). Or I;ve been out of my mind :) Can't comment on the performance.

@javispedro - despite WTFs, I am glad to see you back :)


EDIT: oh, GLES1 is using powervr library calls directly without shaders? Never knew it.


All times are GMT. The time now is 18:59.

vBulletin® Version 3.8.8