Mir

[regression] Moving/resizing clients in a nested server is very jerky/stuttery

Bug #1372300 reported by Daniel van Vugt
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Mir
Fix Released
High
Daniel van Vugt
0.7
Fix Released
High
Daniel van Vugt
mir (Ubuntu)
Fix Released
High
Unassigned
mir (Ubuntu RTM)
Fix Released
High
Unassigned

Bug Description

[regression] Moving/resizing clients in a nested server is VERY jerky/stuttery.

Test case:
  1. sudo -s sh -c "bin/mir_demo_server_minimal -f /tmp/outer & sleep 2 ; bin/mir_demo_server_shell --host-socket /tmp/outer -f /tmp/inner"
  2. sudo bin/mir_demo_client_egltriangle -m /tmp/inner
  3. Move/resize it with Alt+left/middle_buttons

Expected: The client moves/resizes smoothly
Observed: Severe jerkiness

Related branches

tags: added: performance
Changed in mir:
assignee: nobody → Daniel van Vugt (vanvugt)
Changed in mir:
status: New → In Progress
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Bisected. The cause is:

------------------------------------------------------------
revno: 1875 [merge]
author: Daniel van Vugt <email address hidden>
committer: Tarmac
branch nick: development-branch
timestamp: Fri 2014-08-29 12:51:40 +0000
message:
  Enable "Project Butter" motion event resampling and prediction for a more
  responsive touch experience.
  .

  Approved by Kevin DuBois, PS Jenkins bot, Alan Griffiths.
------------------------------------------------------------

summary: - [regression] Moving/resizing clients in a nested server is VERY
+ [regression] Moving/resizing clients in a nested server is very
jerky/stuttery
tags: added: input
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :

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

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

Ugh. The fix for this bug has now caused bug 1373809. Remember to backport both fixes together :P

Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :

Fix committed into lp:mir/0.7 at revision None, scheduled for release in mir, milestone 0.7.4

Changed in mir (Ubuntu):
status: New → Triaged
importance: Undecided → High
Changed in mir:
status: Fix Committed → Fix Released
Changed in mir (Ubuntu RTM):
importance: Undecided → High
status: New → Triaged
Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (5.5 KiB)

This bug was fixed in the package mir - 0.8.0+14.10.20141010-0ubuntu1

---------------
mir (0.8.0+14.10.20141010-0ubuntu1) utopic; urgency=medium

  [ Daniel van Vugt ]
  * New upstream release 0.8.0 (https://launchpad.net/mir/+milestone/0.8.0)
    - Enhancements:
      . Less sensitivity to ABI breaks - many headers unused by external
        projects are now hidden and not installed by -dev packaes. If you
        require any headers that are missing, just ask.
      . Touchspots: --enable-touchspots to servers; visually shows touch
        locations (warning: This affects performance LP: #1373692).
      . Client performance reporting: Any Mir client can now get accurate
        performance information (frame rate, render time, buffer lag etc)
        logged to stdout. Just set env MIR_CLIENT_PERF_REPORT=log
      . Further improved touch responsiveness, with less lag and smoother
        scrolling (so long as you don't enable touchspots).
      . Slightly faster builds using precompiled headers.
      . Turn hardware overlays on by default. When in use, this halves the
        CPU usage of a Mir server. Already enabled in unity-system-compositor.
      . More scripting to detect ABI breaks.
      . Improved src/ tree consistency (renamed "src/shared" to "src/common").
      . Improved fatal signal design: Changed from SIGTERM to SIGHUP delivered
        to clients on unexpected server disconnection.
      . Improved library/package design to allow concurrent installations
        of different Mir versions without conflicts.
      . Fd reception code is now common to client and server.
    - ABI summary: Servers need rebuilding, but clients do not;
      . Mirclient ABI unchanged at 8
      . Mircommon ABI bumped to 2
      . Mirplatform ABI bumped to 3
      . Mirserver ABI bumped to 26
    - API changes between Mir 0.7 and 0.8:
      . Lots of headers removed from the public SDK! We have only hidden
        headers not known to be used by any known projects. Please let us
        know if anything is missing - https://bugs.launchpad.net/mir/+filebug
      . graphics::Platform - interface changed significantly.
      . Lots of server API changes to support touchspots.
      . File descriptors now passed as type Fd instead of int32_t.
    - Bug fixes:
      . [regression] Mir deb packages with versioned names cannot be installed
        simultaneously any more (LP: #1293944)
      . A frozen client can hang the whole server (LP: #1350207)
      . QtMir FTBFS: fatal error: mir/input/input_channel.h: No such file or
        directory (LP: #1365934)
      . [regression] platform-api fails to build against Mir 0.8 (LP: #1368354)
      . Mir FTBFS with gcc 4.9.1-14 (utopic update):
        auto_unblock_thread.h:44:46: error: no matching function for call to
        ‘std::thread::thread(<brace-enclosed initializer list>)’ (LP: #1369389)
      . [regression] Compositing is jerky and stutters during touch events
        (LP: #1372850)
      . unit test fails: AndroidInputReceiverSetup.slow_raw_input_doesnt_cause_
        frameskipping (LP: #1373826)
      . intermittent hang in TestClientInput (LP: #1338612)
      . TestClientInput.scene_obscure_mo...

Read more...

Changed in mir (Ubuntu):
status: Triaged → Fix Released
Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (5.4 KiB)

This bug was fixed in the package mir - 0.8.0+14.10.20141005-0ubuntu1

---------------
mir (0.8.0+14.10.20141005-0ubuntu1) 14.09; urgency=medium

  [ Daniel van Vugt ]
  * New upstream release 0.8.0 (https://launchpad.net/mir/+milestone/0.8.0)
    - Enhancements:
      . Less sensitivity to ABI breaks - many headers unused by external
        projects are now hidden and not installed by -dev packaes. If you
        require any headers that are missing, just ask.
      . Touchspots: --enable-touchspots to servers; visually shows touch
        locations (warning: This affects performance LP: #1373692).
      . Client performance reporting: Any Mir client can now get accurate
        performance information (frame rate, render time, buffer lag etc)
        logged to stdout. Just set env MIR_CLIENT_PERF_REPORT=log
      . Further improved touch responsiveness, with less lag and smoother
        scrolling (so long as you don't enable touchspots).
      . Slightly faster builds using precompiled headers.
      . Turn hardware overlays on by default. When in use, this halves the
        CPU usage of a Mir server. Already enabled in unity-system-compositor.
      . More scripting to detect ABI breaks.
      . Improved src/ tree consistency (renamed "src/shared" to "src/common").
      . Improved fatal signal design: Changed from SIGTERM to SIGHUP delivered
        to clients on unexpected server disconnection.
      . Improved library/package design to allow concurrent installations
        of different Mir versions without conflicts.
      . Fd reception code is now common to client and server.
    - ABI summary: Servers need rebuilding, but clients do not;
      . Mirclient ABI unchanged at 8
      . Mircommon ABI bumped to 2
      . Mirplatform ABI bumped to 3
      . Mirserver ABI bumped to 26
    - API changes between Mir 0.7 and 0.8:
      . Lots of headers removed from the public SDK! We have only hidden
        headers not known to be used by any known projects. Please let us
        know if anything is missing - https://bugs.launchpad.net/mir/+filebug
      . graphics::Platform - interface changed significantly.
      . Lots of server API changes to support touchspots.
      . File descriptors now passed as type Fd instead of int32_t.
    - Bug fixes:
      . [regression] Mir deb packages with versioned names cannot be installed
        simultaneously any more (LP: #1293944)
      . A frozen client can hang the whole server (LP: #1350207)
      . QtMir FTBFS: fatal error: mir/input/input_channel.h: No such file or
        directory (LP: #1365934)
      . [regression] platform-api fails to build against Mir 0.8 (LP: #1368354)
      . Mir FTBFS with gcc 4.9.1-14 (utopic update):
        auto_unblock_thread.h:44:46: error: no matching function for call to
        ‘std::thread::thread(<brace-enclosed initializer list>)’ (LP: #1369389)
      . [regression] Compositing is jerky and stutters during touch events
        (LP: #1372850)
      . unit test fails: AndroidInputReceiverSetup.slow_raw_input_doesnt_cause_
        frameskipping (LP: #1373826)
      . intermittent hang in TestClientInput (LP: #1338612)
      . TestClientInput.scene_obscure_mot...

Read more...

Changed in mir (Ubuntu RTM):
status: Triaged → 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.