• Hey Guest! Ever feel like entering a Game Jam, but the time limit is always too much pressure? We get it... You lead a hectic life and dedicating 3 whole days to make a game just doesn't work for you! So, why not enter the GMC SLOW JAM? Take your time! Kick back and make your game over 4 months! Interested? Then just click here!
  • Hello [name]! Thanks for joining the GMC. Before making any posts in the Tech Support forum, can we suggest you read the forum rules? These are simple guidelines that we ask you to follow so that you can get the best help possible for your issue.

Android Performance issue on Android from v1.4.1675 to v1.4.1760

D

deni

Guest
Hello GMC,

I'm writing here regarding performance issues which I found on Android, and it is here .

I'm posting link to sample project where you can test this bug too, You will notice in leatest GMSs (v.1.4.1675 and above) that rotation of square is laggy, while in v.1.4.1567 (older one) is smooth. Link is: Sample video and apk

We run that sample project on Nexus 7 (2012) and Galaxi S4 Mini and there are big difference in performances and different GameMaker: Studio versions. Project is very simple, 1 rotating square. We tested this in GameMaker v.1.4.1567 (performaces are much better and stable, real fps stable at aprox. 900) and in GameMaker v.1.4.1760 and EA v.1.99.505 (performances are much worse, real fps aprox. 120-200, even lower). Also, we got same results on LG G2 device.

I'm going crazy over it, difference is from very playable game to unplayable game! I submitted a request on YoYos website but noone answers, is here anyone who would be so nice to test this too, give me some feedback or thoughts? Did anyone else even noticed this?

Thanks in advance!
deni

EDIT: I updated Dropbox with .gmx..

EDIT2: I updated Dropbox with Image of Debugger Profiler test results (Windows 8.1 and Nexus 7)..
 
Last edited by a moderator:
J

jackhigh24

Guest
well i just tested the 1757 one that you made and yes it runs slow on mine, but would be better to provide the gmz file as then i can compile it on my setup as it could be how you setup yours, i will compile and test in 1657 and EA 505
 

Tornado

Member
Hi!

I tested this on my "Google Nexus 10", "Samsung Galaxy S5" and "Samsung Galaxy S4 mini".
It is like you said, the one built with Game Maker Studio 1.4.1567 has smooth animation and the debug bar on the top is pretty stable.

The one built with Game Maker Studio 1.4.1757 doesn't rotate smoothly and the debug bar is jumping too wildly. Not good!

How come you haven't got any response from yoyo support?

Take care!
Tornado
 
D

deni

Guest
Hi, thanks for feedback guys! I dont know why there is no response from yoyo support, I'm kinda disapointed - first, this crazy issue and then their ignorance.. I hope they will answer asap..

P.S. jackhigh24, I updated Dropbox folder with .gmx, pls check it out..
 
J

jackhigh24

Guest
ok getting 600 from the 1657 build, and around 300 from the 505 build so im getting a little bit better than you but still quite low, on the 505 build its very visual as you can see it jumpy like rotation, after dinner i will look at your code and see if that's the issue.


EDIT
@deni ok iv done some test it seems to be to do with the script called scr_show_fps(), i took all the code out and put it in the draw event and got a much high fps on the one that ran at around 300 is now running at 900, will test some more but looks like a problem using scripts.

EDIT 2
just testing on windows using debugger and you can see the same increases, but i also noticed that if i deleted the 2 scripts you had and used there code in the same places you had called those scripts i got a little more speed, so not only is accessing them slowing it down, just having the scripts there even though there calls are commented out still slows it a little, also note i kept the app surface off as you had already set that off, so this is bad results for any OS not just android.
 
Last edited by a moderator:
I came by this topic because I have the same performance issues with my own android app after updating gamemaker.
After updating from 1522 to 1760, the exact same project suddenly shows a massive framedrop on android. Instead of a steady framerate around 300fps on 1522, I now get a very unstable framerate between 10-200fps on 1760.

So, I downloaded your apks and did the test.
I'm using a Galaxy S4mini, these are the results:

v1567: steady 1400fps
v1675: unstable 200-400fps

Apparently something was changed somewhere between these gamemaker versions which causes a massive perfomance decrease on Android. This is a very serious issue indeed!

Did you get any response from YOYO yet?

BTW did you try creating an application from an almost blank project, for example, with just one sprite or text drawn? I have the feeling it has nothing to do with your square rotating, I think it's the android application in general.
 
D

deni

Guest
Hi guys,

once again, thank You for Your time, tests and feedback!

@jackhigh24 I guess one of problems could be scripts on Android (accessing them) but real problem lays somewhere else because this is very simple project using few objects and lines of code and results are really bad.

@Pineapple Lake Yap, serious issue indeed and I really don't know why YoYo ignores my request on their Support page, it's been 7 days since I sent them request and still no answer (activity changes but no answers). Yap, we tried with several sample projects and results are same - much better on old GMS than on new one..

What should we do now, this issue could stop development of my game and ruin everything.. Could You also report this bug? How to get YoYo to solve this problem? Or even give us some feedback?

If many of us complaint about this BIG problem, maybe YoYo would solve it and realise it more seriously, do You agree?
 
@deni I'm sure Yoyo will pick it up, I think everyone experiencing this problem should submit a request, and maybe there is someone with direct mantis access? Of course, this won't be solved until the next EA or Beta, so it could take a while.

I'm interested, if you run both of them in debug mode with the profiler on, which process is taking up more cpu in the 1757 version?

In the mean time there's no real other option for android compiling, because of the libpng issue. So it's either a fixed libpng slow apk, or a non-fixed libpng fast apk :(
 
I hope so, but for now I got no answer for them, nothing.. There is time for Humble Bundle, but no time for bugs obviously..

Tests results are in the attachment, pay attention to "time" in debugger..
EDIT: Image with results on Dropbox: https://www.dropbox.com/s/lvmtyfr3x7tnlub/debugger_results.jpg?dl=0
I think by 657 you mean 1567 ;)

So what we see is that on windows it takes EA505 about 1,25 times longer to execute the code than 1.4.1567. While on android it takes EA505 about FIVE to TEN times longer!

Can you also show the 'Engine' part of the profiler?
 
J

jackhigh24

Guest
does seem pretty bad to me, hope they get a fix for it soon, il check mantis in the morning and file one if no one has already.
 
D

deni

Guest
@Pineapple Lake We tested in 1.4.1657 and that is the last version where this problem doesn't occur. I added 'Engine' part of the profiler to Dropbox too, it's in .pdf file.
@jackhigh24 I don't have mantis, please fill one up if You have it, we need to make them solve this asap..

Thanks for help guys!!!!

P.S. I got answer from YoYo that my request is passed to YoYos QA Team and that I should be patient in waiting for an answer.. :)
 
Wow...it's even clearer in the .pdf file. On 1657 "Do a step" takes about 3.5% of total time. On EA505 it takes 19%!!!! While it's the exact same code!! Thanks for all these statistics @deni !
Hopefully they'll pick this up and find an easy fix for it
@jackhigh24 did you find anything on mantis?
 

SnoutUp

Member
Okay, now this is not funny at all. Is it possible to get that libpng vulnerability fix "injected" manually in to 1.4.1757 version somehow? Maybe it's as easy as overwriting a file (please, be as easy as overwriting a file)?
 
J

jackhigh24

Guest
@Pineapple Lake no there is nothing related on mantis, as the OP has got a reply for now, then i will wait to submit it to mantis, yoyo should pop it on there them selves.
@SnoutUp sorry no, it's not possible to inject it direct to the older version.
hopefully this will get some priority as its quite a killer for it to run so slow, there are a few things running very bad with EA505 and the 1760 beta android builds.
 
Last edited by a moderator:

rwkay

GameMaker Staff
GameMaker Dev.
I am unaware of a performance regression - if you have a sample that shows the problem then I am happy to have a look - do you have zendesk ticket with the report (and a sample project)

Russell
 
J

jackhigh24

Guest
@rwkay he has and example project in the link in post #1 and also he provided screen shots of debugger showing how bad the regression is in post #9.
 
R

Richard

Guest
@deni What's your ticket number? Nothing is showing under this email address.

For everyone here btw, @deni is the only person to have reported this, shouting on the forums about it is not going to get it noticed. Not a dig but if it is truly hurting you I'd expect more reports.

Edit: If there are more reports let me know (and I'm sorry :) )
 
D

deni

Guest
Hi guys, I see YoYo is aware now of this problem, hope they will find easy fix and not sweat a lot because of it.. :)

@rwkay thx for replay! As jack said, link with sample project and videos and tests results is in the #1 post.. If You need anything else, just say.. ;)

EDIT: @Richard Here is ticket number: Request #110833

EDIT2: Yap, You posted it while I was writing my post..

P.S. deni is my personal account for this forum, I reported ticket under my bussines email address..
 
Last edited by a moderator:
R

Richard

Guest
@deni, You miss my post? What's the ticket number?

Edit: Awesome, found it, will get someone to look in to it. Thank you
 

SnoutUp

Member
@deni What's your ticket number? Nothing is showing under this email address.

For everyone here btw, @deni is the only person to have reported this, shouting on the forums about it is not going to get it noticed. Not a dig but if it is truly hurting you I'd expect more reports.
But it should be noticed. I understand, that it's more convenient for staff to ignore this forum, but, unfortunately, can't slap "community" next to "technical support" and hope that everyone will stop "shouting" about serious issues and start filing bug reports. Some people don't understand how that system works, but know how to use forums. At least slap a huge red banner with links to help desk asking to report serious issues there instead of "Community Support Only" sticky, which is likely to be invisible to anyone already fixated on "support" part.
 
D

deni

Guest
@deni, You miss my post? What's the ticket number?

Edit: Awesome, found it, will get someone to look in to it. Thank you
@Richard Thank You!

But it should be noticed. I understand, that it's more convenient for staff to ignore this forum, but, unfortunately, can't slap "community" next to "technical support" and hope that everyone will stop "shouting" about serious issues and start filing bug reports. Some people don't understand how that system works, but know how to use forums. At least slap a huge red banner with links to help desk asking to report serious issues there instead of "Community Support Only" sticky, which is likely to be invisible to anyone already fixated on "support" part.
I know devs don't follow forum, that is why I posted ticket before "shouting" here on the forum.. ;)
 
R

Richard

Guest
@SnoutUp It is nothing to do with convenience of ignoring a forum (which as shown here we don't do all the time), it is simply that we have dedicated channels set out for you to report these issues. The forums are for "Community Tech Support", as in "Non-bugs".
I don't know how many times we have to state that filing bugs here (or on Twitter ;) ) is not the same as filing it with us. This has been the process for years now. It is even posted as a sticky post. It is even posted on every release thread [1], [2] as well.
 
T

TalkyLemon

Guest
Okay - sorry it's taken us a while to catch up with this, but we have made some time to do some investigation for you.

1. First thing I've found: it's not usually valid to compare the profiler output in our debugger between two GM versions from a long way apart. In this case we've changed the way the debug loop works internally between those builds. The profiler is still valid to use to optimize your code though (you can see what portion of a frame is spent doing something and what is relatively slow).

2. Second thing: our actual VM (the loop that runs your GML code when you aren't using YYC) is about 3x faster on Android than it used to be. We have done lots of optimization on that since this old version, but it's nice to know. This means that the actual scripts you write should be running faster.

3. So, if your code is running faster, why is your game dropping frames when it didn't previously? This looks like it's because of a change we made to improve battery life on Android.

When a frame is finished we have to wait until it's the right time to start running your code for the next frame. We used to just sit in a loop and wait for time to pass (a 'busy loop' or 'spin wait' if you fancy googling). Working like this is bad for battery life so we changed this to do a call to usleep (an Android system call which can reduce the power used by the cpu etc).

Using usleep in itself is not a bad thing, but if we sleep for too long then it's possible to drop frames, and it looks like this is what's happening. It should be easy enough for us to find a balance between the two approaches (we'll sleep for a bit and then busy wait) to try and get the best of both worlds. I can't promise you this will magically fix /everything/ you see (I don't have your project) but it does appear to be what's happening in your sample, so hopefully that's it.

I don't yet have an ETA for this fix but I'll try and keep you informed, it shouldn't be a large change for us to make.

TL; DR - we're trying out a couple of new synchronization methods that should keep battery use lower and improve performance.

Pete.
 

SnoutUp

Member
@SnoutUp It is nothing to do with convenience of ignoring a forum (which as shown here we don't do all the time), it is simply that we have dedicated channels set out for you to report these issues. The forums are for "Community Tech Support", as in "Non-bugs".
I don't know how many times we have to state that filing bugs here (or on Twitter ;) ) is not the same as filing it with us. This has been the process for years now. It is even posted as a sticky post. It is even posted on every release thread [1], [2] as well.
That's kind of a proof that process is flawed and all parties involved are (more or less) hurt by it. You get less bug reports, we get less fixes and feel "unsupported". "Community tech support" is a really confusing title, sticky post doesn't work (most ignore them), noting about the process in the release threads doesn't work (few read them). New people come to the forums, see "tech support", write about their bug and hope for a response from staff. Can't change that behavior.
 

rwkay

GameMaker Staff
GameMaker Dev.
Support is provided through http://help.yoyogames.com we provide the community forums so you can meet, talk and help each other - but ALL official YYG support is done through http://help.yoyogames.com.

Sometimes we swing by to see what is being discussed here (out of interest) but if you want to report anything or have an issue you MUST report it to http://help.yoyogames.com otherwise nothing will get fixed - all tracking and planning is done using the bug database and the only way to get issues into there is through http://help.yoyogames.com

Russell
 
D

deni

Guest
Rules are rules, if someone doesn't read them, he shouldn't complain about it.. I have read them and I did report a ticket (14 days ago) before posting here on forum.. Please, stop this debate regarding reporting bugs and problems, it's simple, if You want GMS users help, ask here on forum, if You want YoYo stuff help, fill a ticket at help.yoyogames.com.. ;)

@TalkyLemon We tried YYC too, but results aren't good aswell.. As we saw it, YYC speeds up processor and scripts and calculations, but problem is Graphical nature, GPU as You said it too.. Problem is here, good luck with solving it! Can't wait to test it ;) and if You need any other info, feel free to ask here..
 
J

jackhigh24

Guest
@TalkyLemon id like to add to this for you as well, when the OP first posted i tested his simple example and noticed that if i took his code out of the scripts and put it in the objects it gave a decent increase in real fps as displayed in the project, so not just the debugger, so not sure why it would run in usleep mode when calling from a script compared to running the code direct in the object, and like i said its the fps as displayed in the project i have gone off, when compiled in yyc on 1567 it ran at around 1300 to 1600 fps but with EA505 compiled in yyc runs at 200 to 300 fps.

@Richard i was going to pop it on mantis but was waiting for the OP to get a reply, as i knew he had submitted a ticket, if he had not got one, then i would of put it on, but as you know about it now then there's not much point in me doing so now, unless you want me to put one on mantis, then let me know and i will.
 

SnoutUp

Member
There are obvious flaws in tech support workflow and if you choose not to see them, that doesn't make them disappear. Especially, when you hold a clear example of an important ticket lost for 2 weeks and related thread missed for a week. At least you got a chance to shine self-induced superiority over me, when I wanted for staff (not you) to look for a way to improve communication & clarity to the new developers, which would be not a hard thing to achieve. Good job there.

Rules are rules, if someone doesn't read them, he shouldn't complain about it.. I have read them and I did report a ticket (14 days ago) before posting here on forum.. Please, stop this debate regarding reporting bugs and problems, it's simple, if You want GMS users help, ask here on forum, if You want YoYo stuff help, fill a ticket at help.yoyogames.com.. ;)
 
R

Richard

Guest
I think we can all agree that communication on both parts was at flaw here. That being said, the issue is now being addressed and shall be sorted soon (hopefully).

If you ever need something looked in to that is urgent then please tag me in or message me directly. I simply do not have time to read all forum posts. I would like to say though that I will always ask for a ticket number.
 

rwkay

GameMaker Staff
GameMaker Dev.
@jackhigh24 there over a year worth of changes between the 2 versions and the YYC version probably has gotten a bit slower in that time frame, it has gotten more correct and closer to the VM version as well (which accounts for most of the slow down) I think most of our users would value correctness over speed in this case.

We have been speeding up the runner in most places over the last year and in general the VM has been improved in leaps and bounds (one of the reasons we were surprised to see a complaint on performance).

The issue revolves around how we synchronise the game to the desired frame rate (room speed) on Android which was introduced when we improved the battery usage of a GameMaker game.

Russell
 
Last edited:
D

deni

Guest
Hi guys, YoYo devs contacted us and they have a solution for this problem, in a week or so it will be released in Beta. They will first push this Beta to Stable because of libpng fix and after that this fix will be pushed into Beta and performances will be much better..

I just wanted to say big thank You to all members (YoYo and regular once) for their effort and feedback!
 
S

Sam (Deleted User)

Guest
I've noticed using "Interpolate colors between pixels" and "24 color depth" will render most projects as unplayable, as far as performance is concerned. I'm glad this is in the process of being fixed.
 
Top