[regression] Mir 0.26.0 - spinner loading animation, minimize, maximize too fast

Bug #1661072 reported by dinamic on 2017-02-01
10
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Canonical System Image
Medium
Daniel van Vugt
Mir
Fix Released
Medium
Daniel van Vugt
0.26
Fix Released
Medium
Daniel van Vugt
mir (Ubuntu)
Medium
Daniel van Vugt
miral (Ubuntu)
Undecided
Unassigned
unity8 (Ubuntu)
Undecided
Unassigned

Bug Description

mir 0.26 landed in overlay and now the loading animation is too fast and also i think all the animations are too fast (minimize, maximize etc) o_O
aren't the animation fps independent? should be time based right?

Related branches

dinamic (dinamic6661) on 2017-02-01
summary: - mir 0.26 - spinner loading animation too fast
+ mir 0.26 - spinner loading animation, minimize, maximize too fast

yeah, i would find it odd if this were mir0.26
possibly something changed at the Qt level, easingcurves & duration of animations
as a check, any chance you could downgrade to mir0.25 and see if you feel the same way?

Daniel van Vugt (vanvugt) wrote :

Indeed things are slightly weird in Unity8 with Mir 0.26.

Certainly the lag problem is gone(!), but some animations run too fast and the whole shell is rendering around 20-30Hz despite the fact that clients like egltriangle report that they get 60Hz.

It feels like Qt apps in a nested shell have accidentally found a way to bypass vsync. Might be my fault, or it may be some change that has occurred in Unity8.

Changed in mir (Ubuntu):
assignee: nobody → Daniel van Vugt (vanvugt)
tags: added: unity8-desktop
Daniel van Vugt (vanvugt) wrote :

Running a Mir demo server on VT1 has no such trouble. Everything is silky smooth there. Hmm, something unique about the way Unity8 is interacting with Mir...

Changed in mir:
assignee: nobody → Daniel van Vugt (vanvugt)
Daniel van Vugt (vanvugt) wrote :

Although animations should always be bound to real time. If your animation changes speed with different vsync rate then the animation logic that needs fixing. That said, it's useful right now for pointing to bugs elsewhere in the system...

Daniel van Vugt (vanvugt) wrote :

See also bug 1661128

Changed in mir:
milestone: none → 0.26.1
Daniel van Vugt (vanvugt) wrote :

It appears Unity8 is unthrottled, as in swap interval 0. So when I drag a window around rapidly it matches the USB mouse event rate rather than the display's refresh rate. MIR_CLIENT_PERF_REPORT shows:

[2017-02-02 10:29:02.531811] perf: : 131.00 FPS, render time 7.61ms, buffer lag 22.92ms (4 buffers)
[2017-02-02 10:29:03.547757] perf: : 119.21 FPS, render time 8.36ms, buffer lag 25.21ms (4 buffers)
[2017-02-02 10:29:04.551850] perf: : 95.61 FPS, render time 10.42ms, buffer lag 31.74ms (4 buffers)
[2017-02-02 10:29:05.564508] perf: : 96.83 FPS, render time 10.30ms, buffer lag 30.72ms (4 buffers)
[2017-02-02 10:29:06.579804] perf: : 94.58 FPS, render time 10.54ms, buffer lag 31.32ms (4 buffers)
[2017-02-02 10:29:07.583854] perf: : 95.61 FPS, render time 10.42ms, buffer lag 32.15ms (4 buffers)
[2017-02-02 10:29:08.584909] perf: : 131.86 FPS, render time 7.55ms, buffer lag 22.92ms (4 buffers)
[2017-02-02 10:29:09.589854] perf: : 107.56 FPS, render time 9.26ms, buffer lag 27.92ms (4 buffers)
[2017-02-02 10:29:10.603679] perf: : 120.43 FPS, render time 8.28ms, buffer lag 24.52ms (4 buffers)
[2017-02-02 10:29:11.619541] perf: : 117.24 FPS, render time 8.50ms, buffer lag 25.68ms (4 buffers)
[2017-02-02 10:29:12.628505] perf: : 120.03 FPS, render time 8.31ms, buffer lag 25.00ms (4 buffers)
[2017-02-02 10:29:13.635706] perf: : 93.34 FPS, render time 10.67ms, buffer lag 31.79ms (4 buffers)
[2017-02-02 10:29:14.643575] perf: : 122.14 FPS, render time 8.16ms, buffer lag 24.94ms (4 buffers)
[2017-02-02 10:29:15.643621] perf: : 93.00 FPS, render time 10.72ms, buffer lag 32.28ms (4 buffers)
[2017-02-02 10:29:16.647720] perf: : 108.56 FPS, render time 9.18ms, buffer lag 27.95ms (4 buffers)
[2017-02-02 10:29:17.648820] perf: : 92.90 FPS, render time 10.73ms, buffer lag 32.17ms (4 buffers)

Daniel van Vugt (vanvugt) wrote :

No problem specifically with Qt... System Settings is still silky-smooth under Mir demo servers:

  mirrun system-settings

So the issue seems to be localised to the Unity8 server/compositor.

Changed in mir:
milestone: 0.26.1 → 1.0.0
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in mir (Ubuntu):
status: New → Confirmed
Changed in miral (Ubuntu):
status: New → Confirmed
Changed in unity8 (Ubuntu):
status: New → Confirmed
Changed in mir:
status: New → Confirmed
Changed in canonical-devices-system-image:
status: New → Confirmed
Daniel van Vugt (vanvugt) wrote :

I think I understand this now. See bug 1661128. Two bugs, one cause.

Changed in mir:
status: Confirmed → In Progress
Changed in miral (Ubuntu):
status: Confirmed → Invalid
Changed in unity8 (Ubuntu):
status: Confirmed → Invalid
Changed in canonical-devices-system-image:
importance: Undecided → Medium
Changed in mir:
importance: Undecided → Medium
Changed in mir (Ubuntu):
importance: Undecided → Medium
tags: added: regression
Ted Gould (ted) wrote :

Also noticing that with Mir 0.26 I'm seeing large CPU usage by XMir applications. Firefox on the start page (no animations or anything) is seeing U8 using 50% CPU and Xmir 20% CPU. It could be these are the same issue?

Machine is an i7, xenial-overlay up-to-date.

Daniel van Vugt (vanvugt) wrote :

Yes high CPU is expected from this bug, since the normal vsync throttling is just falling through. So the nested server and any of its clients that use async swaps (which means server-side vsync used by Xmir) will also render unthrottled hogging the CPU.

Although we've still got a lot to optimize after this bug is fixed...
https://bugs.launchpad.net/ubuntu/+source/unity8/+bugs?field.tag=performance

Changed in mir:
status: In Progress → Fix Committed
Daniel van Vugt (vanvugt) wrote :

Fix committed to lp:mir/0.26 at revision 4004, scheduled for release in Mir 0.26.1

Changed in mir (Ubuntu):
status: Confirmed → Triaged
Changed in canonical-devices-system-image:
status: Confirmed → Triaged
assignee: nobody → Daniel van Vugt (vanvugt)
status: Triaged → Fix Committed
summary: - mir 0.26 - spinner loading animation, minimize, maximize too fast
+ Mir 0.26.0 - spinner loading animation, minimize, maximize too fast
summary: - Mir 0.26.0 - spinner loading animation, minimize, maximize too fast
+ [regression] Mir 0.26.0 - spinner loading animation, minimize, maximize
+ too fast
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package mir - 0.26.1+17.04.20170209.1-0ubuntu1

---------------
mir (0.26.1+17.04.20170209.1-0ubuntu1) zesty; urgency=medium

  * New upstream release 0.26.1 (https://launchpad.net/mir/+milestone/0.26.1)
    - ABI summary:
      . mirclient ABI unchanged at 9
      . mirserver ABI unchanged at 43
      . mircommon ABI unchanged at 7
      . mirplatform ABI bumped to 15
      . mirprotobuf ABI unchanged at 3
      . mirplatformgraphics ABI bumped to 12
      . mirclientplatform ABI unchanged at 5
      . mirinputplatform ABI unchanged at 6
      . mircore ABI unchanged at 1
    - Enhancements:
      . Support for MirBuffer API that allows for better management of
        hardware/software buffers.
      . Support for MirPresentationChain API that allows better control
        over {de}queueing of individual buffers {from}to the server.
      . Interim support for MirRenderSurface API that provides a unit of
        renderable for lower level content such as MirBufferStreams and
        MirPresentationChains, etc.. MirRenderSurface API is marked
        deprecated as it (and the relevant entry points) will be renamed to
        MirSurface before general availability. It will initially be used for
        revamping support for EGL drivers.
      . Synchronous version of mir_prompt_session_new_fds_for_prompt_providers()
        API (mir_prompt_session_new_fds_for_prompt_providers_sync()) added for
        convenience.
      . Better name for MirPersistentId-->MirWindowId. MirPersistentId has now
        been deprecated.
    - Bugs fixed:
      . [regression] Unity8 stutters constantly (like half frame rate).
        (LP: #1661128)
      . mir 0.26 - spinner loading animation, minimize, maximize too fast.
        (LP: #1661072)
      . [regression] Nested server segfaults or rapidly logs exceptions when a
        fullscreen client starts [in mir_presentation_chain_set_dropping_mode
        ... std::exception::what: Operation not permitted] (LP: #1661508)
      . mir_window_request_persistent_id_sync seg faults when called twice.
        (LP: #1661704)
      . [regression] Windowed clients of nested servers are all black.
        (LP: #1661521)
      . Mir graphics platform ABI broke in series 0.26 but sonames never
        changed (LP: #1662455)
      . Fixes for 0.26 changelog.
      . [regression] mirscreencast hangs during screencast creation. (LP: #1662997)
      . libmirclient-dev missing build dependency on libmircore-dev. (LP: #1662942)
      . mir_window_spec_set_cursor_name() doesn't trigger
        mir::scene::SurfaceObserver::cursor_image_set_to. (LP: #1663197)
      . [regression] Software clients of nested servers are all black in Mir 0.25.0
        and later. (LP: #1663062)

 -- Cemil Azizoglu <email address hidden> Thu, 09 Feb 2017 21:46:32 +0000

Changed in mir (Ubuntu):
status: Triaged → Fix Released
Changed in canonical-devices-system-image:
status: Fix Committed → Fix Released
Changed in mir:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers