Mir

Android: rotated display config not applied when an external monitor is hot-plugged

Bug #1471858 reported by Gerry Boland
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Mir
Fix Released
Medium
Kevin DuBois
0.13
Won't Fix
Medium
Kevin DuBois
0.14
Won't Fix
Medium
Unassigned
mir (Ubuntu)
Fix Released
Undecided
Unassigned

Bug Description

Hardware: Android (Nexus 7), using slimport cable to drive external monitor.
Using Mir 0.13

The intention is to configure USC to clone the contents of the internal display to the external display (id=1), but with those contents rotated 90 degrees.

Check out revision 220 of lp:~unity-team/unity-system-compositor/toggle-cursor2/

I am implementing a DisplayConfigurationPolicy like this:
http://pastebin.ubuntu.com/11830210/
I've got some print statements in there too.

On testing this, there are 2 cases:

1. Slimport cable connected at server startup
Here, the external monitor comes up rotated correctly. I see the debug statements print.

2. Slimport cable *not* connected at server startup
First off, I do not see my debug statement print at server start.
Secondly, when I do plug in the slimport cable, while I see my debug prints, the external monitor does not get rotated.

You can explicitly tell USC to rotate the external display with dbus (install qdbus-qt5 first):
 qdbus --system com.canonical.Unity.Screen / com.canonical.Unity.Screen.overrideOrientation 1 90
so rotation does work.

Related branches

Gerry Boland (gerboland)
Changed in mir:
assignee: nobody → Kevin DuBois (kdub)
Kevin DuBois (kdub)
Changed in mir:
status: New → In Progress
Revision history for this message
Kevin DuBois (kdub) wrote :

probably related, at least in as much as the printfs go: https://bugs.launchpad.net/mir/+bug/1463873

Revision history for this message
Kevin DuBois (kdub) wrote :

the other problem is that Android isn't applying the config on creation, will make sure that's the whole story before mp-ing a fix

Revision history for this message
Gerry Boland (gerboland) wrote :

It should be noted I'm working against this mir branch: https://code.launchpad.net/~andreas-pokorny/mir/override-orientation/+merge/263638

Changed in mir:
milestone: none → 0.15.0
tags: added: android multimonitor
summary: - Android: unable to set a correct initial display configuration
+ Android: rotated display config not applied when an external monitor is
+ hot-plugged
Changed in mir:
importance: Undecided → Medium
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.15.0

Changed in mir:
status: In Progress → Fix Committed
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.