New mojo graphics module...

Monkey Targets Forums/Android/New mojo graphics module...

marksibly(Posted 2011) [#1]
Hi,

I've uploaded a newly tweaked version of android mojo - grab it from the product updates page in the 'experimental stuff' section.

This version should be much less sensitive to 'texture state' changes, meaning sorting rendering into 'per surface' batches isn't so important any more. The only things that force a full render 'flush' now are SetBlend and SetScissor.

Note! It might be a bit buggy - I haven't tested it with much yet.

I'm getting very good results here on my 2 phones (PowerVR & Adreno) - I just hope everyone else does too for a change! Yeah, right...

I've also uploaded a new version of my 'bouncyaliens' speed test. The key difference with this version is that it simulates a fixed number of texture state changes per render (by simply swapping between 2 images every Nth image drawn), which I think is a much better indicator of 'real world' performance than the old version. The numbers of state changes is hardcoded at 10, but you can easily set it to 20, 30 etc. If anyone has any ideas how this test app could be further improved to be even more 'real world', I'm all ears!


AdamRedwoods(Posted 2011) [#2]
Hi Mark, thanks for this!

I tried it, and I did see an improvement. I have around 100 or so sprites, and about 7-9 texture switches and am still over 20+ fps. Lots of action and still smooth. The texture switching seems smoother, no weird pauses when a new sprite is introduced.

One problem, and it may be my code, was that when I exited (KeyDown(ESCAPE) then Error "") the app hung and had to force close.

EDIT:
Tested this against v40 and I get about 1-2 fps BETTER than v40. Nice work.


marksibly(Posted 2011) [#3]
Hi,

> One problem, and it may be my code, was that when I exited (KeyDown(ESCAPE) then Error "") the app hung and had to force close.

Think that's my fault...will fix.


outsider(Posted 2011) [#4]
Hi, link for "New version of the bouncyaliens speed test" is broken.


therevills(Posted 2011) [#5]
Yep I get this when trying to download the bouncyaliens.zip:



the app hung and had to force close.



Add this to Die:

			} else {
				System.exit( 0 );
			}


So it looks like this:




@Mark: Can you add Samah's suggestion to add the stack trace:

http://www.monkeycoder.co.nz/Community/posts.php?topic=1135

android.util.Log.e("[Monkey]", "Error:", t);


therevills(Posted 2011) [#6]
Using the RenderTest here: http://www.monkeycoder.co.nz/Community/post.php?topic=1120&post=10120 and running just the colorize test:

Objs| v43 | Fix | New
----+-----+-----+-----
 10 |  58 |  58 |  59
100 |  44 |  50 |  54
200 |  30 |  36 |  37
300 |  24 |  26 |  28


Now testing Pirates...

    | FPS
----+---------
42b | 31-35
43  | 22-28
Fix | 36-50 (but keeps around 40+ alot)
New | 57-59


:D

Fix is from here: http://www.monkeycoder.co.nz/Community/posts.php?topic=1168

@Anawiki - quick test your game!!!! :)


dave.h(Posted 2011) [#7]
using the original bouncy aliens demo i get a massive increase in the number of aliens on screen.when running at 30 fps i used to get 175 onscreen now i get 450 before the frame rate drops.I am getting slightly wierd effects on some things.If i set the setupdate rate to 300 then my animations seem to run at different speeds not consistent with each other and i created a scrolling screen class where i could have as many images scrolling as i wanted but now it will only allow two of them to scroll before it force stops.For example i
had 3 different images of starfields each 640x480 scrolling up the screen at different speeds,but if i try to use all three now it force closes but didnt before.I will look into my code but it worked on the previous version.Still i think this is a big improvement.


anawiki(Posted 2011) [#8]
So it's better, which is good, but still slower than v42:

v42b - 32-34 FPS
v43 - 16-18 FPS
v43new - 27 FPS


jowli(Posted 2011) [#9]
Massive 30 FPS increase! Thanks.


DGuy(Posted 2011) [#10]
My current app:
v42b: ~28 fps
v43 : ~13 fps
v43x: ~24 fps



devolonter(Posted 2011) [#11]
Hi! My tests results (43x - mojo version from updates page):

v42b:
Objs| ufps   | rfps
----+--------+--------
100 | 60-61  | 58-59 | 
200 |  60    | 47-48 |
300 | 61-62  |  34   |
400 | 60-61  |  26   |
500 | 60-62  |  21   |
600 | 61-62  |  18   |
700 | 63-64  |  16   |
800 | 63-64  |  14   |
900 | 61-62  |  12   |
1000| 62-64  |  11   |

v43:
Objs| ufps   | rfps
----+--------+--------
100 |  61    | 43-48 | 
200 | 60-61  | 42-47 |
300 | 59-61  | 40-43 |
400 | 60-61  | 36-39 |
500 | 60-61  | 34-36 |
600 | 60-61  | 32-35 |
700 | 60-61  | 30-34 |
800 | 60-62  | 30-32 |
900 | 62-63  | 20-22 |
1000| 60-62  | 18-20 |

v43x:
Objs| ufps   | rfps
----+--------+--------
100 |  61    |  59   | 
200 | 60-61  |  59   |
300 | 60-61  |  59   |
400 | 60-61  |  59   |
500 | 60-61  |  59   |
600 | 60-61  |  59   |
700 | 60-61  |  59   |
800 | 60-61  | 57-58 |
900 | 60-61  | 53-54 |
1000| 60-61  | 47-50 |

P.S. For tests new 'bouncyaliens' speed test was used.


Samah(Posted 2011) [#12]
@marksibly I've uploaded a newly tweaked version of android mojo - grab it from the product updates page in the 'experimental stuff' section.

<3 you.