We have moved to a new Sailfish OS Forum. Please start new discussions there.
17

Speed up unlock animation

asked 2016-08-02 19:33:02 +0200

Federico gravatar image

When I wake up my Jolla from screen-off mode (either by double-tapping the screen or by pressing the power button), there is a fade-in animation that takes a noticeable amount of time (like 0.5-1 seconds). Is there a way to speed it up?

edit retag flag offensive close delete

Comments

Yea this really annoys me since the update to 2.0.2.48 Aurajoki.

Jolla indeed accelerated the actual unlock/ waking up speed BUT therefor the actual 'swiping to homescreen' takes much longer now.

Alex ( 2016-08-02 20:05:23 +0200 )edit

double press the power button, see the post currently above, it unlocks and bypasses the animation apparently, that's something new I've learned today!

davekelly ( 2016-08-02 20:24:53 +0200 )edit

There are patches to speed up transitions

coderus ( 2016-08-03 09:30:30 +0200 )edit

1 Answer

Sort by » oldest newest most voted
8

answered 2016-08-08 14:32:27 +0200

spiiroin gravatar image

There is also built-in-but-in-no-way-official way to skip the lockscreen animations - install mce-tools and execute:

mcetool --set-lockscreen-animation=disabled
edit flag offensive delete publish link more

Comments

Thanks @spiiroin for this workaround. But the delay is still there, no speed-up to be experienced. Could you think of a way to skip the delay as well?

lakutalo ( 2016-09-08 12:53:24 +0200 )edit
3

@lakutalo: From lower level p.o.v. the total delay accumulates roughly from

  1. kernel side wakeup from late suspend -> early suspend & input event processing (power key, ...)
  2. waking up the display (early suspend -> normal operation etc)
  3. waking up the ui (first draw = have content -> kernel actually turns on the backlight)
  4. display backlight brightness ramp up (to manual / automatic level)
  5. display=on state reached

Which add up to something like 600 ms where (1)=40ms (2)=400ms (3)=60ms (4)=90ms

In practice there is little that can be done about (1, 2 & 3).

The duration of (4) is a setting adjustable via

mcetool --set-brightness-fade-unblank=<msecs>

Using zero value disables backlight brightness fade altogether (can cause some brightness pumping if ambient light sensor wake up takes long enough). Should not really affect the overall time, but could maybe make things look / feel a bit snappier?

The ui side graphics fade in + possible animations happen in parallel starting from around (3) - the latter being what the locscreen-animation setting targets (instead of the time etc falling from top of screen, they should be in static position already when display wakes up), but I do not know where the fade in timing is defined / whether it can be tuned.

Also note: If code pages related to above need to be paged in (some background processing taking lots of memory while device is otherwise idle with display off), that will add further delays to the process.

spiiroin ( 2016-09-09 09:44:12 +0200 )edit
1

Thank you very much, indeed, for this precise and valuable in-depth information, @spiiroin!

lakutalo ( 2016-09-09 11:39:05 +0200 )edit

@spiiroin Can't (2) and (3) be performed in parallel?

Federico ( 2016-09-09 12:35:30 +0200 )edit

@Federico: No. While there is a lot else that is done in parallel (starting sensors, etc), all of the above (1-4) needs to be done serially. For example attempting (accelerated?) drawing while display is in semi powered up state leads to reboot required -kind of troubles at least on jolla1 kernel driver side. Thus the function of (3) is to act as a stop gap / synchronization point where mce tells compositor (=lipstick) that it is now ok to draw and compositor tells mce that it is ok to continue with whatever else it needs to do. And the above mentioned 60 ms is for full mce->lipstick->mce roundtrip, there might/should be things happening on screen already earlier than that. [As a side note: Those rapid green/red panic led blinkers that used to be too common happen when mce does not get replies from compositor and is therefore unable to finish the ongoing display power up/down.]

Similarly the order of events in display blanking is roughly:

  1. declare display=off state
  2. fade display backlight to black
  3. tell ui to stop drawing and wait for acknowledgement
  4. power off display (normal op -> early suspend)

And bit later, depending on settings, policies, device state, etc: Lock screen activation, inactivity state signaling, entering late suspend and so forth.

spiiroin ( 2016-09-09 16:43:27 +0200 )edit
Login/Signup to Answer

Question tools

Follow
4 followers

Stats

Asked: 2016-08-02 19:33:02 +0200

Seen: 670 times

Last updated: Aug 08 '16