Genome2D/Starling Benchmarks Part1


[UPDATE 22.8.2013] Ok guys the reason for different and somewhat low benchmark numbers on iOS for both Genome2D and Starling were because I was using incorrect build. Now its remedied and all the benchmarks were rerun accross all devices for both Genome2D and Starling

Ok guys, I’ve finally had time benchmarking newest Starling v1.4 against latest Genome2Dhx version. So lets jump right to it since I am going off to vacation tomorrow it will be divided into two parts where sources come in second part after vacation since I need to polish them up.

All of the results here are averaged from 5 or more measurements.


Standard benchmark targeting 60FPS with the step of 50 also assets scaled at 100%. Using AS3 and latest swc of both frameworks.

I recreated standard Starling bechmark to be renderable by Genome2D as well to compare performances. I also changed background to use BlendMode NONE in both frameworks to avoid unnecessary fillrate issue on low end devices as well. I used the fastest way to render rotating objects, in Starling it should be using Images in Genome2D hx it is done by using custom class for transforms and then rendering with draw call. For those familiar with Genome2D nope you should not use GNodes for fastest rendering, for example particle systems are single node with smaller faster transform instances rendering each particle.

The web benchmark will automatically show you if you are using PPAPI and Debugger, all the measurements were done using release player.

Run browser benchmark: HERE


First up is Chrome where we actually have to benchmark two different Flash Players since there is the Adobe one obviously and then there is the Google PPAPI one.

Genome2D/NPAPI: 94750
Starling/NPAPI: 12850
Genome2D/PPAPI: 40200
Starling/PPAPI: 17350

As you can see there are major differences in performance between Starling and Genome2D, most of you already run this benchmark when I posted it week ago. So Genome2D is around 8 times faster than Starling in Adobe Flash Player in Chrome. Its really major difference.

As for Google’s PPAPI the difference is not that huge, but with all the PPAPI bugs I wouldn’t recommend anyone to use PPAPI except on Linux and its easy to force players to install Adobe’s player with JS. Interesting part is that Starling is actually faster in PPAPI than in NPAPI, also the main drop in performance for Genome2D is PPAPI specific pipeline for OpenGL calls which result in worse performance specifically when using Vertex Shader batching. You can get better results in Genome2D using Vertex Buffer batching (which can be easily enabled) when targeting PPAPI. I didn’t include this in these benchmarks since I wanted to use single pipeline bechmark for Starling/Genome2D through the whole process.


Genome2D: 130900
Starling: 18850

Next up is another browser benchmark and that is Firefox. As we can see Firefox is even faster than Chrome.


We will use slightly modified benchmark for mobile testing. As proposed by Daniel for starling as well here: Starling 1.4 benchmarks So we are targeting 30 FPS instead of 60 that we did on desktop. Also all the objects are scaled down to .25 to minimize fillrate impact on framework benchmarking. Daniel also suggested to enable mipmaps but in my tests it was clear that this does not have any impact on performance so we are not going to generate mipmaps, another thing is that step size is 10 for mobiles instead of 50 to increase the number of objects in slower pace.


First Android devices.

Samsung Galaxy Tab (first version)

Genome2D: 3100
Starling: 2110

Quite old tablet one of the first Android tablets if my memory serves me correctly. And the only mobile device where the difference between frameworks speeds is less than 200% maybe we are hitting fillrate wall even with scaled down assets.

Samsung S2

Genome2D: 17370
Starling: 5370

Samsung Galaxy S2 although a bit dated phone nowadays still with incredible performance, actually I would say it outperforms most of today’s mobiles with ease. Genome2D is more than three times faster here, it actually can render more objects at 30FPS on mobile than Starling can at 60FPS on my i7 (GTX660) desktop. ;)

Nexus 7

Genome2D: 15470
Starling: 4590

Nexus 7 tablet with latest Android 4.3, this is actually one of the mobile devices Daniel benchmarked in his latest benchmarks, the funny thing is that I am getting higher numbers for Starling than he did for some reason. Genome2D is still over three times faster here.


Using ad-hoc build.

iPad Mini

Genome2D: 12280
Starling: 3760

Genome2D is 4 times faster than Starling in this instance.

iPad 2

Genome2D: 12490
Starling: 3780

No suprise here since iPad 2 is same hardware as iPad Mini.

iPhone 5

Genome2D: 23070
Starling: 7820

Twice as fast as iPad Mini and iPad2 both frameworks scale almost the same.

iPod 4

Genome2D: 4440
Starling: 1470

I was expecting lesser difference here since its really old device and was expecting fillrate bottleneck even with scaled assets. Genome2D is still around three times faster.

So thats all folks for now due to time restrictions, after vacation I will post sources and maybe some additional information.

Cheers and any feedback is welcome.

Genome2D experiments Spriter/StencilShadows


Hi there guys, some of you guys that are not inside our small awesome community may be curious if there is something going on with Genome2D. Everything is going on smoothly and I am working on it almost daily there is just no time to blog. So today I decided to share two of my work in progress Genome2D experiments.

First is a support for Spriter format, some of you already know Spriter ( its an upcoming awesome tool for 2D animation, for those that are not familiar with it you should definitely check it out.

It already supports interpolation/tweening in the movement and bones support is coming next just waiting for the upcoming beta build of Spriter.

Another experiment I’ve been working on are stencil shadows. This involves additional shaders, low level draws, materials and components so its quite a major addition and I bet all of you will enjoy it. Here is a demo which is a clone of my old FlashPlayer 9 version of Genome2D demo.

Also the new Genome2D forum is up and we should all move there. I will not move the current forum db there as it would be tedious and most of the information isn’t that valuable anymore anyway. I am looking for our most experienced Genome2D users to start the new forum up :P

Thats all folks as usual due to time constraints, I am going to Venice and next week I am in Prague for the Geewa hackaton once back I will dive again into the Genome2D. Cheers.

Robie arkanoid Genome2D/Nape game.


Hi there guys don’t worry I still work relentlessly on Genome2D but as some of you know this time before Christmas is always the most hectic one. We’ve been working on an arkanoid game called Robie at our company Viral which has been successfully released today on Facebook finally :) The road is far from over but I am glad I can share our first official version. It is using latest Genome2D and Luca’s awesome Nape 2.0 with CCD which I’ve been betatesting for some time.





So enjoy guys and let me know what you think. Once Christmas are finally here I will have time to wrap up the Genome2D 0.9.3 official release.

Genome2D game Gem


Hi there guys,

some of you know I mentioned we had a little hackaton in our company so here is the final product. Actually one of three as we teamed up as little groups. This one was created by me as a programmer and one graphician all in four days. Its pretty simple and easy game, actually takes a lot from other similar games so nothing revolutionary, yet another small addictive Genome2D game. Enjoy, and for those of you that use iOS just be patient ;)

Google play link

Genome2D postprocessing


Postprocessing is finally here, it combines already implemented features in Genome2D and turns them into something even more powerful. Any node can have a postprocess attached what it does is render this node and all its children through special rendering pipeline that involves multiple passes through render to texture where each pass may have one or more filters attached. This way we can achieve effects that are not achievable by filters only, for example blur which involves multiple passes not to mention we need to go outside of sprite texture boundaries to render blur correctly. There are even more complex composite postprocesses like HDR or Bloom that involve multiple other postprocesses.

Any filters may be used in postprocessing, there were multiple filters added where some are specifically designed to work with postprocesses and should not be used as standalone filters although if you want to use them nothing is stoping you except the limitations that you are rendering it within the sprite texture only.

This is one of the biggest updates there were as postprocessing and filters introduced over 20 new classes so I decided to bump up the version to 0.9.3. Yep I know there never was an official 0.9.2 release but this has more to do with my way of SVN versioning so I am letting you know there will be no official release of 0.9.2 version and we will jump from 0.9.1 to 0.9.3 once everything is finished. You can always grab the 0.9.2 or even the new 0.9.3 nightlies that are coming if you want to test and play with it but let me warn you that it is quite complicated to get started without any documentation.

Postprocessing will also work with the existing pipeline so masking, cameras and other stuff should work seamlesly. The only limitation is that you can’t have hierarchical postprocessing, so you can’t have a children with postprocess one and their parent with postprocess two that would affect them. This has to do with render to texture limitations so its not doable and no framework will have it. I did discover a workaround but it adds so much overhead that I decided to not implement it, but never say never ;)

I was thinking what to post as an example and at the end I decided to post a scene from my upcoming Genome2D showcase demo, it actually uses the new particles systems with tweenable forcefield as well. Enjoy, and as usual it uses one of my own photos:

If anyone has an idea for a cool postprocess I am up for it, the demo shows just a few examples as you can combine pretty much anything :)

There is one more feature before the new Genome2D version release, the already mentioned texture packers. After that I will clean up the code and start working on the standalone examples. I can’t give you an exact time as there will be a lot of work outside of Genome2D for me this upcoming month so keep your fingers crossed and as usual any feedback is welcome. I am glad to see more people active on the forums as well.

Go to Top