Mir

Nested servers (Unity8) periodically stutter (half frame rate) with Mir 0.26.1

Bug #1666372 reported by Daniel van Vugt
10
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Canonical System Image
Fix Released
High
Stephen M. Webb
Mir
Fix Released
High
Daniel van Vugt
0.26
Fix Released
High
Daniel van Vugt
mir (Ubuntu)
Fix Released
High
Unassigned

Bug Description

Nested servers periodically stutter (half frame rate) with Mir 0.26.1

On an old laptop, it's about half the time stuttering and half the time smooth.

On a fast desktop, it only stutters occasionally like when a large blur is active.

It seems the problem is Mir's predictive bypass optimization conflicting with the new client-side vsync optimization. Both are correct and desirable when used alone, but when used together they conflict, presumably because the former requires perfect vsync phase and the latter lacks correct vsync phase (which is still an exercise for later).

A workaround to get more reliably smooth frame rates is to create a file:
  /etc/lightdm/lightdm.conf.d/foo.conf
with contents:

[Seat:*]
unity-compositor-command=/usr/sbin/unity-system-compositor --composite-delay=0

Revision history for this message
Daniel van Vugt (vanvugt) wrote :

This could also explain why MIR_CLIENT_PERF_REPORT=log occasionally says Untiy8 is taking 10-17ms to render every frame. But the rest of the time it requires less than 1ms.

Changed in mir:
milestone: none → 1.0.0
assignee: nobody → Daniel van Vugt (vanvugt)
Changed in canonical-devices-system-image:
assignee: nobody → Daniel van Vugt (vanvugt)
importance: Undecided → High
status: New → Triaged
Changed in mir:
status: New → Triaged
tags: removed: regression
Changed in mir:
status: Triaged → In Progress
Revision history for this message
Mir CI Bot (mir-ci-bot) wrote :

Fix committed into lp:mir at revision None, scheduled for release in mir, milestone 1.0.0

Changed in mir:
status: In Progress → Fix Committed
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

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

Changed in mir (Ubuntu):
importance: Undecided → High
status: New → Triaged
Changed in canonical-devices-system-image:
status: Triaged → Fix Committed
assignee: Daniel van Vugt (vanvugt) → Stephen M. Webb (bregma)
milestone: none → u8c-1
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package mir - 0.26.2+17.04.20170322.1-0ubuntu1

---------------
mir (0.26.2+17.04.20170322.1-0ubuntu1) zesty; urgency=medium

  [ Daniel van Vugt ]
  * New upstream release 0.26.2 (https://launchpad.net/mir/+milestone/0.26.2)
    - Bugs fixed:
      . EDID does not change when hotplugging a monitor (LP: #1660017)
      . [regression] mirout crashes when connecting to unity8 or any nested
        server: [libprotobuf FATAL /usr/include/google/protobuf/repeated_field.
        h:1408] CHECK failed: (index) < (current_size_) (LP: #1661163)
      . Mir server crashed with SIGSEGV in
        mir::compositor::TemporaryBuffer::size() called from
        mir::gl::tessellate_renderable_into_rectangle() (LP: #1664760)
      . Nested servers (Unity8) periodically stutter (half frame rate) with
        Mir 0.26.1 (LP: #1666372)
      . Don't dereference the end iterator in ms::ApplicationSession::
        surface_after() (LP: #1667645)
      . [regression] OSK input shaping no longer works correctly (LP: #1669444)
      . Setting MirWindowSpec parameters always causes window's input_region
        to be reset (LP: #1670876)
      . Subpixel order not included in Mir display information (LP: #1393578)
      . Presentation chains should support various swap interval modes
        (LP: #1673533)
      . Need an extension for GBM buffers to replace
        mir_buffer_get_buffer_package() (LP: #1673534)
      . Seg fault on detect_fd_leaks (LP: #1661498)

 -- Cemil Azizoglu <email address hidden> Wed, 22 Mar 2017 04:54:19 +0000

Changed in mir (Ubuntu):
status: Triaged → Fix Released
Stephen M. Webb (bregma)
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  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.