Hey everyone,
I wanted to give you an update from the developer team in case you aren't following the development of Ubuntu Touch very closely. To get to it quickly, it seems like we won't be able to deliver an update to Mir 1.0 or higher in Ubuntu Touch OTA-8.
There's a bit to unpack for this one. The best technical explanation can be gained from others on the team, but you're going to get me for this one.
The big problems
Apps rarely display
The most glaring issue is that apps are rarely able to display anything on the screen. They start correctly and can almost always be interacted with, but only a black box is displayed. Resizing windows in desktop mode leads to many fun effects.
To paraphrase, it seems like there is a race condition in Mir getting a display surface (a box which the app uses to draw stuff) from Android before it has to pass it to the app.
This problem is mainly exhibited on devices with Qualcomm chipsets.
Poor performance
Some actions are extremely slow. When apps display correctly, they have a very low framerate. Pulling out the dock and the app launcher is painful. There really is no excuse for this, newer versions of Mir are much more efficient than our current 0.24.
Interestingly, the performance of the indicators is almost perfect. They feel way better to use than they do under Mir 0.24. In fact, the lowered input latency of Mir >0.26 is noticeable when scrolling around the indicators. This shows us that the failures are within Unity8 itself -- Mir is functioning perfectly.
We should have known
These challenges aren't entirely unexpected. The Android->Hybris->Mir->QtMir->Unity8->QtUbuntu pipeline can't be expected to be perfectly stable when several parts of that stack change all at once. We were over-optimistic when estimating how long it'd take to solve the problems upgrading Mir and Unity8 at the same time would bring.
What's next?
I'll change gears and focus on delivering some more fixes to OTA-8 before wrapping up. Marius will continue working on Mir and other intense low-level issues.
This cycle has included a lot of behind-the-scenes fixes as we've been fixing up automated tests on many components (especially the Ubuntu UI Toolkit -- Thank you Rodney!), allowing us to bring on new code. I've been merging in some rather old PRs (sorry for the wait, everyone who opened those) and I hope to continue to clear the queue for this release.
Tomorrow we'll merge the changes from our xenial_-_edge_-_mir
branch into xenial_-_edge
. This will cause any Qualcomm devices on the edge
channel to experience the problems I listed above (and could cause general instability on other devices). It will be difficult to update Qualcomm devices without having developer mode enabled (which I hope you have anyway, you're on the edge channel). If you are using the edge
channel and are not tolerant to these issues (I question how you got on edge
in the first place ), please move to
rc
or stable
using the options in System Settings.
If you're not sure whether you're using the edge
channel or not, you probably are not. The current release channel is listed in "System Settings -> Updates -> Update settings, 'Channels'"