Observation - frame rates

Started by Gammalerik, April 26, 2014, 11:48:47

0 Members and 1 Guest are viewing this topic.

Gammalerik

An observation regarding framerates. Sorry if this has been discussed before but I could not find it.

A short while ago I retired my trusty old Samsung S2 that has a quite poor resolution of 480x800. My new phone is a much stronger HTC One with a full HD screen. The HTC One runs circles around the S2 without breaking a sweat. Usually...

The thing is that I only use rasterized maps since they are far superior detailed compared to vector based concerning topographics. And after having upgraded from a 480x800 screen to a 1080x1920 screen, I now have to scale the maps 150-200% to be able to read them. This kills the framerate badly. I will estimate that the framerate is around 10ish when scrolling. I understand that scaling is a nescessary evil on rasterized maps however.
-All in all, my Galaxy S2 kills the much beefier HTC One in terms of Locus performance.

-Could some major redesign of the graphics engine save the day? ( CPU-->GPU )
-Tweaking of SQLite?

I think that this will be a big issue as more and more people make the transit to full HD. I see this issue partly on my Nexus 7 too (ver 2013 - 720p)
  •  

Menion

There is not much to say. Whole problem is using CPU for rendeing.

Some quick tests I did confirm, that GPU move framerate to huge numbers no matter if you have scaled maps or not.

Unforunately it's a task on quite a long time, anyway I'm aware, as you wrote, that it will be bigger and bigger problem ...
- Official help (ideas, questions, problems): help.locusmap.eu
- Advanced topics, sharing of knowledges: you're here!
- LM 4 Beta download, LM 4 Release download
  •  

Gammalerik

#2
Just had a little brainstorm... How about a setting for downscaling the screen itself (lowering the resolution) instead of upscaling all the map tiles?
That would surely save countless CPU-cycles, battery etc?
Problem is the GUI will also be downscaled and look horrid plus misaligned unless it was re-done for this mode.
Just brainstorming... I don't know if downscaling is even possible on android  ???
  •  

Menion

Hmm, I do not know if something like this is even possible. Even if so, this should looks really bad :)

Major problem here is simple - rendering with CPU works quite fine till moment, you start to change 'size of pixels'. When map tile is 256x256px and you draw it as 256x256 (100%), all works quite fast. When you anyway change this to some other percents, CPU has quite a problems with compute of correct pixels and whole Locus became really slow.

Unfortunately I really do not have any simple solution for now, but you may be sure it is something I'm aware of and I count with work on this issue in the end of this year or start of next. I know it needs to be done (GPU rendering) at all cost.
- Official help (ideas, questions, problems): help.locusmap.eu
- Advanced topics, sharing of knowledges: you're here!
- LM 4 Beta download, LM 4 Release download
  •  

Gammalerik

Quote from: menion on April 27, 2014, 10:25:31

***
, but you may be sure it is something I'm aware of and I count with work on this issue in the end of this year or start of next. I know it needs to be done (GPU rendering) at all cost.

  :)
  •  

Christian

Have you tried
Settings (for your device) -> Developer settings -> force GPU rendering ?

Additionally i recommend using vector maps and the suitable theme...
  •  

Menion

this settings won't probably has any effect, because I force Locus to use software rendering.

Hardware rendering in this way, should work only in case, you do not want to draw any lines (line to GPS, tracks, navigation, etc.). Otherwise it draw nonsences. So I globally disabled it.
- Official help (ideas, questions, problems): help.locusmap.eu
- Advanced topics, sharing of knowledges: you're here!
- LM 4 Beta download, LM 4 Release download
  •  

Christian

  •  

stebu

How about a setting that allows only "easy" zoom levels?
With old Erik's weary eyes probably only 200, 400 and 800% are needed. I think these zooms can be rendered a lot faster than e.g. 350%.
  •  

Gammalerik

Quote from: stebu on April 27, 2014, 19:52:07
How about a setting that allows only "easy" zoom levels?
With old Erik's weary eyes probably only 200, 400 and 800% are needed. I think these zooms can be rendered a lot faster than e.g. 350%.

There do not appear to be any easy zoom levels. Not the "doubles" either. Tried and tested.

Also, there is not as much weary eyes as the maps are just tiny on 1080x1920 screens. Check out the screenshot and step away a couple of meters or three from the monitor so it resembles a 4,7 inch display in size. Then try to read the house number and street names :)


  •  

stebu

Quote from: Gammalerik on April 27, 2014, 22:14:45
Quote from: stebu on April 27, 2014, 19:52:07
How about a setting that allows only "easy" zoom levels?
With old Erik's weary eyes probably only 200, 400 and 800% are needed. I think these zooms can be rendered a lot faster than e.g. 350%.

There do not appear to be any easy zoom levels. Not the "doubles" either. Tried and tested.

Also, there is not as much weary eyes as the maps are just tiny on 1080x1920 screens. Check out the screenshot and step away a couple of meters or three from the monitor so it resembles a 4,7 inch display in size. Then try to read the house number and street names :)
I know the problem, too. Very often I use the zoom lock to increase "unreadable" names. But no performance problems on my Xcover 2 (800x480, 4 inch)

I think there are shortcuts to implement 2^n zoom levels instead of having one algorithm that can handle any zoom level.
  •