Pointer/cursor input lag in unity8 session

Bug #1591328 reported by Andrea Cimitan
30
This bug affects 6 people
Affects Status Importance Assigned to Milestone
Canonical System Image
Fix Committed
High
Unassigned
Mir
Fix Released
High
Daniel van Vugt
mir (Ubuntu)
Fix Released
High
Unassigned
qtmir (Ubuntu)
Invalid
Undecided
Unassigned
unity8 (Ubuntu)
Fix Released
High
Daniel van Vugt

Bug Description

Mouse pointer suffers of heavy input lag on my laptop, might also affect tablet

Related branches

Andrea Cimitan (cimi)
summary: - Pointer input lag in unity8 desktop session
+ Pointer input lag in unity8 session
Andrea Cimitan (cimi)
description: updated
Revision history for this message
Daniel van Vugt (vanvugt) wrote : Re: Pointer input lag in unity8 session

Lots of history here: https://trello.com/c/sDnxldwa

Revision history for this message
Launchpad Janitor (janitor) wrote :

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

Changed in qtmir (Ubuntu):
status: New → Confirmed
Changed in unity8 (Ubuntu):
status: New → Confirmed
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Actually everything in Unity8 lags the same due to our nested architecture. We're just prioritising improving the cursor responsiveness first.

tags: added: performance
summary: - Pointer input lag in unity8 session
+ Pointer/cursor input lag in unity8 session
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Here's a quick workaround (which also shows which Unity8 animations are buggy and not based on real time):

/etc/environment:
MIR_CLIENT_FORCE_SWAP_INTERVAL=0

That will remove most of the buffer lag.

Revision history for this message
Andrea Cimitan (cimi) wrote :

The workaround improves, but it on my laptop it is still miles slower than unity 7...

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

Well it's nice to hear you care about this stuff :)

Short term: anpok and unity8 guys are working on lag-free mouse cursor pass-through -> bug 1600220

Longer term: I will need to finish my frame notification work to finally kill all nesting and buffering lag.

tags: added: unity8-desktop
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Even shorter term, I think fixing bug 1607677 might resolve the feeling of lag for lots of people.

Certainly the libinput acceleration curve has been bugging me for most of a year. It feels awful.

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

Work in progress on two separate fronts:
  Short term: Pass through cursor position (bug 1600220)
  Long term: Nesting eventually won't affect lag (started with https://code.launchpad.net/~vanvugt/mir/physical-frame/+merge/306199)

Changed in mir:
status: New → In Progress
importance: Undecided → High
assignee: nobody → Daniel van Vugt (vanvugt)
milestone: none → 0.25.0
assignee: Daniel van Vugt (vanvugt) → Mir development team (mir-team)
assignee: Mir development team (mir-team) → nobody
Changed in mir (Ubuntu):
status: New → Triaged
importance: Undecided → High
Changed in canonical-devices-system-image:
status: New → In Progress
milestone: none → 14
importance: Undecided → High
Changed in mir:
assignee: nobody → Mir development team (mir-team)
Changed in mir:
milestone: 0.25.0 → 0.26.0
kevin gunn (kgunn72)
Changed in canonical-devices-system-image:
milestone: 14 → backlog
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

This bug will be fully resolved by the attached branches (needs all of them to land)

Changed in mir:
assignee: Mir development team (mir-team) → Daniel van Vugt (vanvugt)
Changed in qtmir (Ubuntu):
status: Confirmed → Invalid
Changed in unity8 (Ubuntu):
status: Confirmed → In Progress
importance: Undecided → High
assignee: nobody → Daniel van Vugt (vanvugt)
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package unity8 - 8.15+17.04.20170110.4-0ubuntu1

---------------
unity8 (8.15+17.04.20170110.4-0ubuntu1) zesty; urgency=medium

  [ Albert Astals Cid ]
  * Give focus to one of the buttons of the dialog
  * tst_WindowResizeArea: Use default values for mouseFlick speed and
    iterations (LP: #1651580)
  * Require Qt 5.6 & misc fixes

  [ Daniel van Vugt ]
  * Deprecate usage of Mir's input resampling, instead opting for: (LP:
    #1497105, #1591328)

  [ Josh Arenson ]
  * Allow the scopes list to automatically scroll when a scope is being
    dragged past the bounds of the screen. (LP: #1575319)

  [ Lukáš Tinkl ]
  * Fix touch window controls being unreachable when the overlay is
    being displayed (LP: #1648167)
  * Fixup paths for window state storage in snappy environment
  * Add Unity.Platform mock for our tests (LP: #1655336)

  [ Michael Zanetti ]
  * PreviewRatingInput: Use displayText instead of text to
    enable/disable the Send button (LP: #1595910)
  * Add a D-Bus interface to control some debug facilities on the fly
  * some launcher workarounds for the snapping

  [ Michał Sawicz ]
  * Nuke leftover Platform in IndicatorsManager

  [ Nick Dedekind ]
  * Added registry for application menus

  [ Michael Terry, Nick Dedekind ]
  * Run the qmluitests.sh autopkg test against the installed package.

  [ Michał Sawicz, Nick Dedekind ]
  * Application menus

  [ Rodney Dawes ]
  * Remove the payments widget and dependency on libpay as no longer
    needed.

 -- Michał Sawicz <email address hidden> Tue, 10 Jan 2017 14:48:42 +0000

Changed in unity8 (Ubuntu):
status: In Progress → Fix Released
Changed in mir:
milestone: 0.26.0 → 1.0.0
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Per comment #10, this isn't fixed until all of the branches land. The Unity8 branch by itself doesn't really qualify as a fix that should get announced for this bug.

Changed in unity8 (Ubuntu):
status: Fix Released → Triaged
status: Triaged → Fix Released
Revision history for this message
Mir CI Bot (mir-ci-bot) wrote :

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

Changed in mir:
status: In Progress → Fix Committed
Changed in mir:
milestone: 1.0.0 → 0.26.0
Changed in canonical-devices-system-image:
status: In Progress → Fix Committed
Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (7.2 KiB)

This bug was fixed in the package mir - 0.26.0+17.04.20170126.3-0ubuntu1

---------------
mir (0.26.0+17.04.20170126.3-0ubuntu1) zesty; urgency=medium

  [ Daniel van Vugt ]
  * New upstream release 0.26.0 (https://launchpad.net/mir/+milestone/0.26.0)
    - ABI summary:
      . mirclient ABI unchanged at 9
      . mirserver ABI bumped to 43
      . mircommon ABI unchanged at 7
      . mirplatform ABI unchanged at 14
      . mirprotobuf ABI unchanged at 3
      . mirplatformgraphics ABI unchanged at 11
      . mirclientplatform ABI unchanged at 5
      . mirinputplatform ABI unchanged at 6
      . mircore ABI unchanged at 1
    - Enhancements:
      . New/improved toolkit APIs: MirInputConfig and related functions,
        MirWindow and related functions, DisplayConfig and related functions,
        MirScreencastSpec and related functions,
      . Support for configuring input configuration
      . Introduce toolkit extension mechanism for platform specific APIs.
      . Toolkit extensions for: mesa_drm_auth, set_gbm_device and
        window_coordinate_translation
      . Screencasting to a specific MirBuffer.
      . Add DisplayConfigurationController::base_configuration() so downstreams
        can get the base configuration. (Weirdly they can already set it.).
      . x11 platform: allow adjustable scale parameter.
      . Added EDID support: client API, server logging and in mirout.
      . mirout: Add newer attributes only available in the new display
        config API: scaling factor, subpixel arrangement and form factor.
      . mirout: Log the orientation and logical size of each output too.
      . Replace the mir::Server-overridable Reports with Observers.
      . Add xkbcommon to mirclient.pc Requires.private.
      . Deprecate legacy toolkit APIs that will be removed in Mir 1.0
      . Introduced 'client-side vsync', which dramatically reduces latency
        from the client to the screen (particularly for nested servers like
        Unity8).
    - Bugs fixed:
      . [performance] Restore support for better-than-triple buffering by
        default. (LP: #1240909)
      . Frame rate is artificially low on Diamondville Intel Atom systems due
        to aggressive power management (LP: #1388490)
      . [testsfail] failure in CI in
        AndroidInputReceiverSetup.slow_raw_input_doesnt_cause_frameskipping
        (LP: #1394369)
      . [trusted prompt sessions] Can't open two prompt sessions at the same
        time (LP: #1494197)
      . Changing scale, formFactor or DPI in display configuration causes
        renderer teardown/recreate unnecessarily (LP: #1556142)
      . [testsfail] ApplicationNotRespondingDetection.failure_to_pong_is_
        noticed (LP: #1570327)
      . CI failure in TestClientInput.receives_one_touch_event_per_frame
        (LP: #1570698)
      . Mir-on-X mouse input is jerky/stuttery compared to Mir-on-KMS
        (LP: #1576600)
      . [regression] Two fingers in mir_proving_server now resizes/moves app
        windows (two finger apps unusable) (LP: #1586311)
      . Pointer/cursor input lag in unity8 session (LP: #1591328)
      . PointerConfinement.test_we_update_our_confined_region_on_a_resize
      ...

Read more...

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