Guys! Some good news.
Last days I was in contact with Paul F. (Intel) from Intel XDK's forum. I recieved the opportunity to test their new build system (CLI 5.4.1 + CW16) which will come out soon. I've made many tests and here are the results of what is comming from Intel.
testing device: Samsung Galaxy S4 (Quad-core 1.9 GHz, 2GB RAM)
It's not the newest and not the oldest smartphone. Good for testing.
testing app: Zombie Annihilation
It's my game which I plan to release soon. The game is really demanding (mean the resources) as for a mobile game. Most of the time there are hundreads of objects on the screen which are overlapping each other. There is a lot of collissions. So both CPU and GPU are taken to the limit and therefore It's pretty easy to see any performance change with this app.
Tests
Current IntelXDK build system setup is Cordova CLI 5.1.1 and Crosswalk 15.
I have tested the app with various new build system setups:
- Cordova CLI 5.1.1 and Crosswalk 15 with --ignore-gpu-blacklist enabled and --show-fps-counter enabled
- Cordova CLI 5.1.1 and Crosswalk 15 with --ignore-gpu-blacklist enabled and --show-fps-counter disabled
- Cordova CLI 5.1.1 and Crosswalk 15 with --ignore-gpu-blacklist disabled and --show-fps-counter disabled
- Cordova CLI 5.4.1 and Crosswalk 15 with --ignore-gpu-blacklist enabled and --show-fps-counter enabled
- Cordova CLI 5.4.1 and Crosswalk 15 with --ignore-gpu-blacklist enabled and --show-fps-counter disabled
- Cordova CLI 5.4.1 and Crosswalk 15 with --ignore-gpu-blacklist disabled and --show-fps-counter disabled
- Cordova CLI 5.4.1 and Crosswalk 16 with --ignore-gpu-blacklist enabled and --show-fps-counter enabled
- Cordova CLI 5.4.1 and Crosswalk 16 with --ignore-gpu-blacklist enabled and --show-fps-counter disabled
- Cordova CLI 5.4.1 and Crosswalk 16 with --ignore-gpu-blacklist disabled and --show-fps-counter disabled
Actually --show-fps-counter option doesn't really matter at the end because it is used only for testing, but I wanted to highlight this because there was a huge surprise related to that.
Tests results
Option --ignore-gpu-blacklist was enabled by default in CLI 4.1.1. It is recommended to always enable it for each build with CLI 5.1.1, since CLI 5.1.1 is not setting it by default. Check HERE for more details.
During my tests I didn't notice any difference for the same setup with this option enabled or disabeled. But I saw somewere on the forum that people were recieving a big FPS boost after settign it on. It depends on the GPU you have on board. So after all it should be enabled, but did not impact tests on SGS4.
CLI 5.1.1, CW15
FPS: 10-20 with --show-fps-counter enabled
FPS: 40-55 with --show-fps-counter disabled
CLI 5.4.1, CW15
FPS: 10-20 with --show-fps-counter enabled
FPS: 43-58 with --show-fps-counter disabled
CLI 5.4.1, CW16
FPS: 45-57 with --show-fps-counter enabled
FPS: 51-62 with --show-fps-counter disabled (not really sure why FPS meter shows counter as over 60 sometimes, but it does)
The FPS values I presented have quite big range, but it's because my app have more and less complex (for CPU) moments during gameplay. If 300 enemies are just moving then it's a "light" moment for CPU, but once they start to overlap a lot and machinegun bullets and rockets join the action then there is also a lot of collisions to count and CPU is taken to the limit.
Sometimes FPS with all builds dropped even to around 30, but usually only for a second or less, so I didn't count that to the average.
Wrap up
New CLI (5.4.1) already give some performance boost, but new Crosswalk seems to be a kind of revolution. If I'm not mistaking this will be the first Crosswalk update which actually improves performance. Before, the performance was worse with each new CW release. Crosswalk 16 will clearly give a boost for Android development with C2 and Intel XDK. It looks like the CW16 performance is even better than Canvas+ (but obviously still adds about 20MB to the APK).
However Intel's new build system with CLI 5.4.1 and CW16 is not officially released yet. They're still working on it. As I've mentioned at the beginning it's gonna come out soon. I'm hoping for (maximum) mid March, this is the approx. time I can hold with my game release.
New build system will also have the minSdkVersion bug fixed.
I will keep on testing tomorrow on higher levels of the game (even more CPU demanding). Will keep you updated if I notice something worth to be added.