I have been developing a game for about 4 months now with monogame on desktop. And only recently i tried to debug on my phone again. Usually on my computer i get about 0,230 milliseconds per draw call with a 130$ graphics card. On my phone Samsung galaxy s5 mini, which has at least above average specs, i can not run at stable 60 fps at all. I get about 14-23 milliseconds on draw calls, averaging at 15, which is the absolute limit to 60fps, but with very often spikes. I am not drawing more than a background and a couple of particle engines with 20 tiny particles each, all 2D. Also I use the XNA content project to convert my .png’s to .xnb’s. Is this normal ? That is at least 50-120 times slower than my computer.
Is there something I am missing ? Because I am pretty sure that it can’t be that bad.
I’ve spent almost 2 days running checks back and forth. Watch the fps I get on this screenshot from my phone. This is all i am drawing ~30-40 sprites, in a spritesheet, which is a simple font. and i get ~10ms draw() time and 0.04ms update() time. The draw time is from 10-20ms!
In the screenshot i took i reset the “mill ellapsed max” every 8 seconds, so you can see it spiked to 15.66ms in less than 8seconds, and it is currently at 9.782ms per draw(). This can’t be right. What can i be doing wrong where it runs 150 times better on the pc and on android it is so slow ? My mind is blown. Also i only did Content.Load for 1 spritesheet 550x558 pixels, and the app takes 62MBs of ram at runtime ? How come ?
On my phone Samsung galaxy s5 mini, which has at least above average specs,
The project is nothing special. Simple spriteBatch.Draw calls in a single spriteBatch.Begin() - spriteBatch.End() from a 550x558 spritesheet that i have converted to an .xnb.