Mir

[regression] Multi-finger gestures are often not detected as finished (Mir reports one finger still down after all are released)

Bug #1481570 reported by Daniel van Vugt
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Mir
Fix Released
Medium
Daniel van Vugt
mir (Ubuntu)
Fix Released
Undecided
Unassigned

Bug Description

Multi-finger gestures are often not detected as finished (Mir reports one finger still down after all are released)

Test case:
  1. Start mir_proving_server
  2. Start two touch clients: mir_demo_client_eglsquare, mir_demo_client_target
  3. Interact with the app that's on top
  4. Switch apps using a four-finger horizontal swipe.

Expected: App switch occurs immediately.
Observed: App switch is deferred indefinitely until after you touch the screen and release your finger again.

Bisected: The bug first started happening with:
------------------------------------------------------------
revno: 2591 [merge]
author: <email address hidden>, Robert Carr <email address hidden>
committer: Tarmac
branch nick: development-branch
timestamp: Thu 2015-05-21 04:17:33 +0000
message:
  Prefer using the event builders.

  Approved by Alberto Aguirre, Chris Halse Rogers, PS Jenkins bot.
------------------------------------------------------------

Related branches

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

See also bug 1480654.

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

Dropped to medium. It appears this regression is also partly due to faulty gesture logic introduced in:

------------------------------------------------------------
revno: 2564 [merge]
author: Robert Carr <email address hidden>
committer: Tarmac
branch nick: development-branch
timestamp: Mon 2015-05-11 20:13:20 +0000
message:
  Port playground window manager to event 2.0.

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

So this regression only affects mir_proving_server. Still, we need to fix it to have a stable testbed to work on bug 1480654.

Changed in mir:
importance: High → Medium
assignee: nobody → Daniel van Vugt (vanvugt)
summary: - [regression] Focus switch is deferred indefinitely (until you touch the
- screen again)
+ [regression] 4-finger focus switch is deferred indefinitely (until you
+ touch the screen again)
Changed in mir:
status: Triaged → In Progress
Revision history for this message
Daniel van Vugt (vanvugt) wrote : Re: [regression] 4-finger focus switch is deferred indefinitely (until you touch the screen again)

Even after fixing the regression of r2564 this bug persists. Some simple logging shows the remaining issue introduced in r2591:

Here I swipe 4 fingers and release them all:

4 touches, 0 released
4 touches, 1 released
3 touches, 0 released
3 touches, 0 released
3 touches, 1 released
2 touches, 0 released
2 touches, 1 released
1 touches, 0 released

See how Mir thinks one finger was never released. That's the bug.

summary: - [regression] 4-finger focus switch is deferred indefinitely (until you
- touch the screen again)
+ [regression] Multi-finger gestures are often not detected as finished
+ (Mir reports one finger still down after all are released)
tags: removed: focus
description: updated
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.16.0

Changed in mir:
status: In Progress → Fix Committed
Changed in mir:
milestone: 0.16.0 → 0.15.0
Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (4.2 KiB)

This bug was fixed in the package mir - 0.15.0+15.10.20150818-0ubuntu1

---------------
mir (0.15.0+15.10.20150818-0ubuntu1) wily; urgency=medium

  [ Daniel van Vugt ]
  * New upstream release 0.15.0 (https://launchpad.net/mir/+milestone/0.15.0)
    - ABI summary: Only servers and graphics drivers need rebuilding;
      . Mirclient ABI unchanged at 9
      . Mirserver ABI bumped to 33
      . Mircommon ABI unchanged at 5
      . Mirplatform ABI bumped to 9
    - Enhancements:
      . Add support for Mir-on-X11.
      . Latency reduction optimizations (around ~15ms reduction in total):
        Reduced input event resampling latency by 5ms. Reduced output latency
        (in system compositors) by around 10ms with the introduction of
        "predictive bypass". And we're not finished; future Mir releases
        should reduce latency further.
      . Introduced a python3-based Mir performance framework.
      . Lots of preparation for an architectural overhaul of buffer swapping,
        required in the least to support future optimizations like nested
        bypass.
      . Added a new cursor: crosshair
      . Added support for 15/16-bit client pixel formats ("high colour").
      . Added a new client function to make picking the right pixel format
        for a given EGLConfig super simple: mir_connection_get_egl_pixel_format
      . Added application-not-responding detection
      . Added client API for specifying input region shape.
      . Fixed the remaining threading flaws identified by ThreadSanitizer and
        turned it on permanently for all continuous integration in future.
      . Added support for relative pointer motion events (e.g. for gaming).
    - Bug fixes:
      . Fix focus issues breaking autopilot tests entering text (LP: #1468029)
      . Fix mir tests failure on armhf with GCC5 (LP: #1478213)
      . mir_buffer_stream_swap_buffers_sync can hang constraints (LP: #1479899)
      . Loading libmirclient.so twice leads to a segfault in libmirprotobuf.so
        (LP: #1391976)
      . Visible corruption in SDL apps (LP: #1460149)
      . MultiThreadedCompositor::destroy_compositing_threads hangs/deadlocks on
        shutdown or display reconfiguration (LP: #1471909)
      . ctest/"make test" reports 100% tests pass even when some fail.
        (LP: #1472911)
      . Mir server crashed - GLib-CRITICAL **: g_source_get_context: assertion
       'source->context != NULL || !SOURCE_DESTROYED (source)' failed
        (LP: #1473869)
      . USC crash on multimonitor unplug [std::exception::what: error during
        hwc prepare()] (LP: #1474891)
      . [regression] Input focus delay after switching app back into focus
        (LP: #1480654)
      . GLibMainLoopTest.propagates_exception_from_server_action fails with
        GCC 5 in armhf (LP: #1482274)
      . [enhancement] Mir lacks relative mouse support (LP: #1276322)
      . ShmBuffer ignores pixel_format (LP: #1424909)
      . Fullscreen bypassed clients stutter with double buffers when other
        clients are running (LP: #1447896)
      . [regression] Demo servers crash on start-up if MIR_ENABLE_TESTS=OFF
        (LP: #1439078)
      . [regression] The software curs...

Read more...

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