I have gotten Android Performance Increased by a lot. Still needs work but here is how.

Kane Hart

Elmlor.com
Veteran
Joined
Jun 27, 2014
Messages
656
Reaction score
166
First Language
English
So this is a pretty big increase. This pretty much removed the gpu blacklist that seems to cause everyone to suffer even most well known devices it seems that you really need to disable it to make things go faster. Sadly this will increase your fps and make things quite smooth but the overall game is still quite slow here and there. But till some community performance fixes start showing up I think this is a good start.

Here is my phone before:



Here is my phone after:



Here is the Before and After APK's I do not take responsibility nor does this site if it blows up your device. Not that would happen. Also be warned since I followed the RPG Maker MV Build instructions it right now asks for full control of your PC. It's safe but be warned this is not normal and to watch out for apps that does this on the app store. 

Before Version(low fps):

http://stonelegion.com/kane/e15.apk

After Version(high fps):
http://stonelegion.com/kane/e16.apk

I decided to use the developers instructions rather then Intel XDK because I just could not figure out how to add flags to the compiler....

What you normally type in to build the APK:

make_apk.py --package=com.example.sample --manifest=manifest.json

 

What I have done:

make_apk.py --package=com.example.sample --manifest=manifest.json --xwalk-command-line="--ignore-gpu-blacklist"

 

 

What is ignore-gpu-blacklist?

In order to provide the best user experience, browsers may selectively enable or disable support for WebGL, or certain sub-features, in certain situations. This special treatment is typically used to work around stability or conformance problems. The rules in these blacklists and whitelists are currently browser-specific, although work is underway to share them between browsers. As the rules are too complicated to fit in a simple table, this page uses one section per browser to describe the rules as of this writing.

 

What Devices pretty much have gpu rendering disabled?

Insane amount of them in fact this is what they say:

WebGL is disabled on devices that do not support ARB_robustness or EXT_robustness with context reset notification.

 

 

 

Suggestions:

  • Community / Devs to look at tile optimization.
  • Lower resolutions should help
  • Smaller Maps at this time due to tile optimization issues will help

Overtime no matter what I'm sure this wonderful community will come up with optimizations that will greatly help the performance. Though sadly even though I get 60 FPS it fluctuates a lot even standing still. 30 FPS feels more like 5 fps at times. But overall this has improved the performance by 10 fold. 

 
 

nka203

Villager
Member
Joined
Oct 23, 2015
Messages
9
Reaction score
3
First Language
English
Nice! Confirmed fps increase on the oldest device I have - Galaxy S2, running at 20-30 fps, it was running 2-3 fps before when I compiled my build using dev instructions (not XDK). Thanks for the apk upload.

How much does decreasing resolution help with fps?

What res is your app?
 
Last edited by a moderator:

djDarkX

Retro & Remastered Music Guru
Veteran
Joined
Jan 17, 2013
Messages
2,700
Reaction score
1,901
First Language
Music
Primarily Uses
RMMV
About to test it on my Galaxy Tab 3 7in (with resolution optimized for my tablets screen).  I'll let you know the results.
 

Kane Hart

Elmlor.com
Veteran
Joined
Jun 27, 2014
Messages
656
Reaction score
166
First Language
English
About to test it on my Galaxy Tab 3 7in (with resolution optimized for my tablets screen).  I'll let you know the results.
Looking forward. It's like Christmas day getting a lot more performance. Like I said over the next few weeks and months it will be better and better maybe new optimizations from chromium or crosswalk but just the community working on optimizing the game core is going to be amazing. 
 

Faytless

recently unemployed Kung Fu Master
Veteran
Joined
Jan 27, 2013
Messages
244
Reaction score
164
First Language
English
Primarily Uses
N/A
Great job Kane!  We still need to make this process a little less intimidating for our newer users though.  I'm still working on getting -gpu black list to work in XDK -- but Am in the process of compiling a package for manually converting.

The stuttering that you exp though can't be fixed.  It's trying to load assets into memory as you're going along.  The most you can preload is sound if I am not mistaken.
 

djDarkX

Retro & Remastered Music Guru
Veteran
Joined
Jan 17, 2013
Messages
2,700
Reaction score
1,901
First Language
Music
Primarily Uses
RMMV
Nothing.  I saw no performance enhancement.  It might have to do with the resolution.  I'll test it again later, but thanks for the info for future testing.
 

KisaiTenshi

Veteran
Veteran
Joined
Oct 24, 2015
Messages
310
Reaction score
124
So this is a pretty big increase. This pretty much removed the gpu blacklist that seems to cause everyone to suffer even most well known devices it seems that you really need to disable it to make things go faster. Sadly this will increase your fps and make things quite smooth but the overall game is still quite slow here and there. But till some community performance fixes start showing up I think this is a good start.

...

 

What Devices pretty much have gpu rendering disabled?

Insane amount of them in fact this is what they say:

WebGL is disabled on devices that do not support ARB_robustness or EXT_robustness with context reset notification.

 
That is because the vast majority of Android devices are low quality devices. The first device to support WebGL was the Sony Xperia which was released at the end of 2011. On iOS devices it's been enabled on ALL devices since iOS 8. On Android only the Sony Xperia and Some Samsung Galaxy branded devices support it through the Android browser. Some other devices may support it through Chrome (and hence Cordova/Node-webkit), but don't hold your breath of one day getting support. 

If the device has a Mali GPU, then there is no WebGL support. Pretty much WebGL is bleeding edge on Android, so don't expect most devices to work. If https://get.webgl.org/ works, then WebGL works. Otherwise you're stuck with the Canvas renderer.

As for what the "ignore GPU blacklist" does in this context is that it's telling the browser to use the GPU to accelerate the 2D Canvas/Browser, but it doesn't enable WebGL unless the necessary OpenGL ES Extension is available.
 

djDarkX

Retro & Remastered Music Guru
Veteran
Joined
Jan 17, 2013
Messages
2,700
Reaction score
1,901
First Language
Music
Primarily Uses
RMMV
Thanks for the info.  Yeah, WebGL works through the Android browser, but no Web Audio API support on it, so that's out. lol

Well, I won't be releasing any Android games until I have a test device where it can work well, but to be honest, I think the only real way for this to work very well would be to just make a game using a programming language to run natively on Android without relying on HTML5 in a Chrome and WebGL.  It has great promise, but I guess performance will never really reach "good" levels consistently until it actually exports native Android program code with the advent of OBB downloading for bigger projects.

Still, maybe this will help others anyway.  Good luck, guys.
 

Kane Hart

Elmlor.com
Veteran
Joined
Jun 27, 2014
Messages
656
Reaction score
166
First Language
English
 

That is because the vast majority of Android devices are low quality devices. The first device to support WebGL was the Sony Xperia which was released at the end of 2011. On iOS devices it's been enabled on ALL devices since iOS 8. On Android only the Sony Xperia and Some Samsung Galaxy branded devices support it through the Android browser. Some other devices may support it through Chrome (and hence Cordova/Node-webkit), but don't hold your breath of one day getting support. 

If the device has a Mali GPU, then there is no WebGL support. Pretty much WebGL is bleeding edge on Android, so don't expect most devices to work. If https://get.webgl.org/ works, then WebGL works. Otherwise you're stuck with the Canvas renderer.

As for what the "ignore GPU blacklist" does in this context is that it's telling the browser to use the GPU to accelerate the 2D Canvas/Browser, but it doesn't enable WebGL unless the necessary OpenGL ES Extension is available.
Thanks for this info. Yeah I have not been able to get WebGL Working at all yet. I really hope I can figure out how to get the OpenGL ES Extension working later on I assume it would be possible for a Nexus 4 for example gpu wise but not sure.

It does seem the majority of people with older devices with take advantage of the blacklist. It's not efficient it's still canvas but they will be able to do a bit more then at their 5 fps some get now. But clearly not a solution or a proper solution. 

Hopefully some of these steps will encourage others though to expand and come up with better solutions if any exist and at least performance enhancements overall with the core of MV.
 

nka203

Villager
Member
Joined
Oct 23, 2015
Messages
9
Reaction score
3
First Language
English
Thanks for the info.  Yeah, WebGL works through the Android browser, but no Web Audio API support on it, so that's out. lol

Well, I won't be releasing any Android games until I have a test device where it can work well, but to be honest, I think the only real way for this to work very well would be to just make a game using a programming language to run natively on Android without relying on HTML5 in a Chrome and WebGL.  It has great promise, but I guess performance will never really reach "good" levels consistently until it actually exports native Android program code with the advent of OBB downloading for bigger projects.

Still, maybe this will help others anyway.  Good luck, guys.
I painfully have to agree with you. I was really hoping for a native export out of MV and didn't realize it would all be done through web wrappers like crosswalk or cordova. Even just by adding weather or animation effects the FPS drops to zero - the performance/compatibility just isn't there for most phones. When compared to Unity game apps I've built that run at 60+fps even on ancient devices like HTC 4G and Galaxy S2 (2011), publishing a mobile game with MV just doesn't seem ideal at the current stage. But I'm hopeful that a solution will be found soon.
 

marcelox

Painfully Clueless
Veteran
Joined
Oct 25, 2015
Messages
86
Reaction score
15
First Language
English
Just run a event script:

Graphics.showFps ()
Thanks for showing me how to add this, however I've been trying for over 2 hours to find a way to make the script turn off once activated so I can turn it on and off as needed while testing the game. Any ideas? Thanks

Here's what I have in the common events

If : Show FPS is OFF

   Script: Graphics.showFPS ()

   Control Switch #:0003 Show FPS = ON

Else

   Script: Graphics.showFPS ()      <-----------------------I need to know if this has a way to turn OFF or disable

   Control Switch #:0003 Show FPS = OFF

End

I tried Graphics.showFPS (0) <---did nothing        then I tried Graphics.showFPS (OFF) and that gave an in-game error
 
Last edited by a moderator:

KisaiTenshi

Veteran
Veteran
Joined
Oct 24, 2015
Messages
310
Reaction score
124
Thanks for showing me how to add this, however I've been trying for over 2 hours to find a way to make the script turn off once activated so I can turn it on and off as needed while testing the game. Any ideas? Thanks

Here's what I have in the common events

If : Show FPS is OFF

   Script: Graphics.showFPS ()

   Control Switch #:0003 Show FPS = ON

Else

   Script: Graphics.showFPS ()      <-----------------------I need to know if this has a way to turn OFF or disable

   Control Switch #:0003 Show FPS = OFF

End

I tried Graphics.showFPS (0) <---did nothing        then I tried Graphics.showFPS (OFF) and that gave an in-game error
That's because Graphics.showFPS is the thing that actually draws the FPS.

If you want to turn it off you need to trigger

Code:
Graphics._switchFPSMeter()
 

marcelox

Painfully Clueless
Veteran
Joined
Oct 25, 2015
Messages
86
Reaction score
15
First Language
English
That's because Graphics.showFPS is the thing that actually draws the FPS.

If you want to turn it off you need to trigger

Graphics._switchFPSMeter()If I could kiss you, I would. Thank you sooo much.
 

Users Who Are Viewing This Thread (Users: 0, Guests: 1)

Latest Threads

Latest Posts

Latest Profile Posts

so hopefully tomorrow i get to go home from the hospital i've been here for 5 days already and it's driving me mad. I miss my family like crazy but at least I get to use my own toiletries and my own clothes. My mom is coming to visit soon i can't wait to see her cause i miss her the most. :kaojoy:
Couple hours of work. Might use in my game as a secret find or something. Not sure. Fancy though no? :D
Holy stink, where have I been? Well, I started my temporary job this week. So less time to spend on game design... :(
Cartoonier cloud cover that better fits the art style, as well as (slightly) improved blending/fading... fading clouds when there are larger patterns is still somewhat abrupt for some reason.
Do you Find Tilesetting or Looking for Tilesets/Plugins more fun? Personally I like making my tileset for my Game (Cretaceous Park TM) xD

Forum statistics

Threads
105,868
Messages
1,017,074
Members
137,578
Latest member
JamesLightning
Top