android: overlays no longer are activated

Bug #1657755 reported by Kevin DuBois
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Fix Released
Daniel van Vugt
mir (Ubuntu)
Fix Released

Bug Description

android is using the fallback path with lp:mir ever since activating framedropping-by-default in rev3592 (activating the frame timing). Android disables overlays to avoid fencing issues (hangs) that can happen during framedropping (more info in LP: #1369763)

This can be seen by running
mir_demo_server_minimal --compositor-report log
mir_demo_client_egltriangle -f

The overlay % drops from 100 to 0 after rev3592.

Related branches

Changed in mir:
importance: Undecided → High
Revision history for this message
Kevin DuBois (kdub) wrote :

Seems we could:
1) change BufferVault/BufferStream to properly avoid #1369763. This would involve reserving buffers on the client side.
2) communicate both the desired queueing length and the clients swapinterval, and give the clients swapinterval down to the android platform via Renderable
3) reintroduce 1369763
4) revert rev3592

1) is the real solution. 2) is a workaround without side effects, and 3/4 are workarounds with downsides.

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

Yeah we knew this would happen:

We really want to partially revert that branch r3759 and fix bug 1369763 properly.

Changed in mir:
milestone: 0.26.0 → 1.0.0
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

If we reintroduce bug 1369763 (which is conveniently still open) then that potentially creates higher latency in some rare cases where the server doesn't get sufficient CPU/GPU time to keep up with the client.

If we do nothing then overlays are disabled but we also have a stronger guarantee of lower latency (with higher GPU usage).

I'm open to either but have been thinking for weeks that we should just partially revert r3759, reintroducing bug 1369763. Then we can live with it a little while and should prioritize fixing it. See also bug 1653625 which sounds like a recurrence of bug 1373696.

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

Dropped severity to medium. We expected and predicted this bug a few months ago. And if we don't resolve it then user experience is still improved (lower latency at a cost of lower battery life).

So it's not a major or unexpected problem. But we shall still try to fix it and the related bugs eventually.

Changed in mir:
status: New → In Progress
assignee: nobody → Daniel van Vugt (vanvugt)
assignee: Daniel van Vugt (vanvugt) → nobody
importance: High → Medium
assignee: nobody → Daniel van Vugt (vanvugt)
Revision history for this message
Mir CI Bot (mir-ci-bot) wrote :

Fix committed into lp:mir at revision 3976, 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 mir (Ubuntu):
status: New → Invalid
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
      . 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
    - 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
        (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


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