Ask / Submit
13

Is scrolling app launcher happening really at 60 FPS?

asked 2013-12-30 01:54:29 +0300

Artem gravatar image

Just out of curiosity. It might be my eyes, but I think I see "extended" icons when swiping up-down, i.e. you can see several paints of icons together. [With my eyes] it is especially easy to see when you quickly drag page up-down without releasing a finger (making icons sort of tremble around original position).

edit retag flag offensive close delete

Comments

wouldn't that just be a back-buffer issue? ie: the original backuped up screen briefly shows before the new one is redrawn over it?

AL13N ( 2013-12-30 02:02:13 +0300 )edit
3

Sadly scrolling is not not as smooth as it should be :-( Its a bit of a show-stopper...

Aigner ( 2013-12-30 04:11:40 +0300 )edit

I'm not sure what you mean by seeing several paints together. I think scrolling is quite smooth.

hana ( 2013-12-30 06:03:35 +0300 )edit

Just mentioning this, but I doubt the device, even on it's best day, is going to render 60 FPS while scrolling. It just seems pretty overkill.

Bulder ( 2013-12-30 10:54:01 +0300 )edit

All of you asking on 1.0.2.5?

Stskeeps ( 2013-12-30 11:31:59 +0300 )edit

3 Answers

Sort by » oldest newest most voted
12

answered 2013-12-30 14:25:16 +0300

Robin Burchell _ w00t gravatar image

The launcher section of the homescreen is a bit more difficult than the lockscreen & switcher because it's (in terms of structure) more complicated. Icon, text, icon, text, etc, etc. The optimal way to render this with OpenGL is to batch draw the icons, and then batch draw the text. Unfortunately, the scenegraph renderer in Qt 5.1 does not perform this kind of batching, and so performance there takes a (massive) hit.

I have hopes that Qt 5.2 (and future work) will improve this: we're working on upgrading to 5.2, hopefully 1H of 2014.

edit flag offensive delete publish link more

Comments

Good to hear, that there is some update planed :-)

Is it not possible to let OpenGL draw the launcher-content just once to a canvas and later just move/show that static canvas?

Aigner ( 2013-12-30 14:40:44 +0300 )edit
1

See http://blog.qt.digia.com/blog/2013/09/02/new-scene-graph-renderer/ for some more discussion about this problem.

Robin Burchell _ w00t ( 2013-12-30 17:11:14 +0300 )edit

why not just draw this offscreen in a buffer, for now?

AL13N ( 2013-12-30 20:32:53 +0300 )edit

You can achieve this in QML using Item::layer::enabled, but this naturally comes with an additional RAM cost. And unfortunately, due to the way our design has required us to have the launcher written at the moment, this would cost too much.

Robin Burchell _ w00t ( 2013-12-30 20:50:34 +0300 )edit

That explains it in the end... ;-) at least for the scrolling. (Odd static behavior my still be a different animal...)

Hope this amount of memory can be saved somewhere else ... how about black and white screen? just kidding.

But it would be great to have a way to set this option in developer mode...

Aigner ( 2013-12-30 22:56:51 +0300 )edit
3

answered 2013-12-30 11:04:55 +0300

veskuh gravatar image

If you have developer mode enabled, then you can enable "Framerate display" from developer mode settings. Go to homescreen and the bottom of the screen has bar that indicates the framerate with color (Light green is good 60FPS). For the apps, the bar at the top is their FPS.

edit flag offensive delete publish link more

Comments

though keep in mind that supposedly you can't turn it back off again

AL13N ( 2013-12-30 17:59:11 +0300 )edit

@AL13N Normally you can disable developer mode and you can certainly disable FPS display. Both works for me at 1.0.2.5 just fine.

veskuh ( 2013-12-30 18:17:59 +0300 )edit

@veskuh oic, i seem to recall having read that somewhere official in the past, though perhaps i've wrongly recollected that

AL13N ( 2013-12-30 18:31:43 +0300 )edit

@AL13N you probably remember the warning about enabling developer repositiories (don't do that) that is different thing. The first release had issue with that.

veskuh ( 2013-12-30 19:20:19 +0300 )edit
3

answered 2013-12-30 14:05:43 +0300

Aigner gravatar image

So the answer is "yes": framerate is dropping far below 60 during swipe action and scrolling according to "Framerate display".

Strange behavior on my Jolla: Lockscreen and Homescreen are doing just fine (green) but on the Iconscreen the frametrate drops after a few seconds (almost only red peaks). This is very strange, since the Iconsreeen is just showing a static Image... So is Sailfish dropping the framerate after a few seconds to save energy? If so, why isn't it doing the same thing on Lockscreen? Or is the framerate dropping because of some (needless) heavy calculation, while showing a static screen?

PS: Scrolling (or most kind of transitions) in Sailfish and native Apps on Jolla are NOT smooth al all. Sometime even Android apps on Jolla show better behavior. Most people don't mind or evens don't see this, but others like me are very sensible to frame-skips and micro-stops. Smooth scrolling does not need more than 40fps - but it needs continuity. Dragging a screen on my old Amiga computer was smooth 25 years ago....

edit flag offensive delete publish link more

Comments

imho this should be investigated by Jolla, if only just to spare battery some more

AL13N ( 2013-12-30 18:02:10 +0300 )edit

See my answer for information :)

Robin Burchell _ w00t ( 2013-12-30 19:07:54 +0300 )edit

Well - just blaming Qt and hoping for the next version is maybe not the solution. From your link w00t I understand, on a static screen, where no icons are flying around, the scene graph renderer should have to render exactly one image and stay silent after finishing. Also on the actual version.

But the framerate indicator shows different behavior on Lockscreen and Launcher, while both are static.

to put it simple: just show me a screenshot, while I am staring at the icons on Launcher! (and put a touch-grid over that sceenshot)

Is there a way to show cpu-load and framerate together?

Aigner ( 2013-12-30 19:23:12 +0300 )edit

Aigner, you aren't fully grasping the implications. The scenegraph will - in the future - do its best to both do proper batching and to avoid re-rendering subtrees in the scene unnecessarily. That solves the primary problem we have on the launcher today (bad batching meaning bad GPU use meaning constant stalling and framerate going down the toilet).

I'm not saying it's a magic bullet or panacea, I'm also aware of things we should improve elsewhere, e.g. on the QML side and so on, but the Qt upgrade is what I'm actively working on now and - I think - will give us the most benefit from input.

Robin Burchell _ w00t ( 2013-12-30 19:29:58 +0300 )edit

Thank you for the answer - I was trying to say the same with less accurate words. :-)

just some information - EFL claims to be quite good in solving this problem:

http://docs.enlightenment.org/auto/evas/

Aigner ( 2013-12-30 19:41:03 +0300 )edit
Login/Signup to Answer

Question tools

Follow
3 followers

Stats

Asked: 2013-12-30 01:54:29 +0300

Seen: 680 times

Last updated: Dec 30 '13