Mir uses incorrect resolution 1920x1080 on Nexdock (Slimport connection to Nexus 4) when the display is really 1366x768

Bug #1620961 reported by Daniel van Vugt
22
This bug affects 4 people
Affects Status Importance Assigned to Milestone
Mir
Won't Fix
Medium
Unassigned
mir-android-platform
New
Undecided
Unassigned

Bug Description

Mir uses incorrect resolution 1920x1080 on Nexdock (Slimport connection to Nexus 4) when the display is really 1366x768.

(reported by IRC)

Also, there is a hard-coded resolution of 1920x1080 in src/platforms/android/server/display_configuration.cpp which is suspicious.

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

From IRC:

Connected to server: <default>
Card 0 Max 3 simultaneous outputs
Output 1: Card 0, LVDS, connected, 768x1280+0+0, used, on, 61mm x 102mm (4.7"), normal
Output 2: Card 0, Displayport, connected, 1920x1080+768_0, used, on, 0mm x 0mm (0.0"), normal
Output 3: Card 0, Virtual, disconnected

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

I recall being told that SlimPort only supports outputting either 1080p or 480p on Android. KDub would know more.

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

If true that would be an Android restriction.

slimportconnect.com says:
What display resolutions does SlimPort support?
SlimPort supports display resolutions up to 4K Ultra-HD. This includes Video Electronics Standards Association (VESA®) digital monitor standards up to 4160 x 2160, Consumer Electronics Association (CEA)-861 display standards up to 3980 x 2160, and everything below. When a mobile device is connected to the display, the device will automatically output the optimum resolution of that display; it is a true plug-and-play solution.

I will try to test a low-res display myself today...

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

Sorry, scrap that. My low-res display doesn't have HDMI so I can't test it with the Slimport adapter.

Revision history for this message
Jason Daborn (mtx-lives) wrote :

Tried the same Nexus 4 and slimport cable to another display with a lower than 1920x1080 resolution using the same command as the copy from Irc. mirout -- --desktop_file_hint=unity8, have the same response on output 2 even though the screen is not capable,

J

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

We do query for this information in the mir side of things, so we're not doing any hardcoding in mir.
I'd guess that something in the slimport or its integration in the platform makes things look broken. With my slimport and nexus 4, my 1200p monitor gets downgraded to 1080p by the slimport.

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

Looking at the Mir code it seems like this could be Mir's fault.

In hwc_blanking_control.cpp we only select (display_config_for) the first or "active" display config. I don't think this approach will work when setting up a new external display. Simply falling back to the first config in the list could easily be wrong.

That said, the HWC headers don't seem to help us. They only appear to provide width, height, and frequency information for each config. So we've apparently got no chance of correctly identifying which is the correct native resolution for an external display connected to an Android device.

What we could do however is expose all the available display configs as separate modes to Mir and that will allow the user to change the display mode in future (when a GUI exists for it). That's probably what should have been done in the first place.

Changed in mir:
status: New → Triaged
importance: Undecided → Medium
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

I think the blame for this bug actually lies equally in three places:

1. Android HWC appears to not be able to tell you the preferred/native mode for a display.

2. Mir appears to not bother enumerating and listing all the available modes. Just chooses one.

3. Nexdock advertises a resolution higher than its physical resolution, which if used looks fuzzy.

Revision history for this message
Jason Daborn (mtx-lives) wrote :

Quick update, using a MHL adaptor with a Xperia Z Ultra (Android) the screen resolution looked correct using the NexDock. Also noticed the headphone on the NexDock was getting sound via the MHL/HDMI connectors, this was not happening with the Nexus 4 UT using SlimPort/HDMI. (Does SlimPort handle sound?)

J

Revision history for this message
Brian Douglass (bhdouglass) wrote :

I've run into this problem as well with my M10. It would be great if there was some sort of command to run or file to change to get this working properly, but it doesn't sound like that's possible yet. Thanks for all your hard work!

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

The Android platform was deleted from lp:mir at revision 4155.

Changed in mir:
status: Triaged → Won't Fix
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.