QtComp

Landed July 29 2014

This is now closed and remains only for historical purposes.

Testing QtCompositor

In order to enable key user experiences such as trusted session animation, treating dash as an app & treating app screen shots in spread handling; the shell will leverage the QtCompositor and QtScenegraph plugged into Mir. Given that this is a significant change we want to gain confidence through some additional testing time and effort.

Don't forget to help us determine how many people participated by simply listing your name and test environment here at QtCompTestersList

How do I know I'm running QtComp ?

Currently the easiest way to determine if you are running QtComp besides checking the packages is to open a few applications, right hand long swipe to place into "spread" mode. If you can quit an app by swiping up or down then you are running QtComp.

Known Limitations

The code is actively being worked, this section will continue to be updated as the state of the code improves.

In order to maintain a systematic approach & limit risk for delivery of Ubuntu phone RTM, we may introduce minor visual regression into tablet-sidestage experience.

  • When enabling QtComp on tablet the side stage is still functional, however opening a side stage application without opening a main stage application will result in the main stage area being black. In the current image the dash is seen in the main stage area (when no main stage app is open). For reference https://bugs.launchpad.net/unity8/+bug/1336953 There is a plan and work underway for a feature known as Dash-as-app that will address this visual regression, but is specifically being treated separately in order to isolate risk & understanding of landing QtComp.

  • It's worthy to note that there is also improvement, currently on tablet there is no right edge interaction (swapping or spread) but this is enabled and functioning with QtComp.

Results so far

Got a +1 from the design team in terms of tablet visual regression vs. improvements on right edge trade off. Found a handful of bugs which have been fixed or determined to be non-blocking/addressable through follow on work. https://bugs.launchpad.net/unity8/+bugs?field.tag=qtcomp

At the moment only one blocking bug involving surface locations used by AutoPilot testing is an issue, that does not show up in manual testing as its specific only to the AutoPilot framework. There is a fix under test.

Nexus 4

Functioning & performing well

Performance comparison with and without Qtcomp shows that the performance data is almost identical, with a possible slight advantage shown when utilizing Qtcomp. Can be found here

Unity8 Desktop Session

Functioning & performing well Note, unity8 desktop does take an unusual amount of time to completely boot.

Nexus 10

Functioning & performing well

Nexus 7

Functioning & performing well, arguably more stable

How To Test

We're using our CI Train build silo's as a way to keep up with the latest image and iterate over the proposed branches. note: we will continue to polish & fix bugs we find on the branches, so the packages may update.

Current silo is https://launchpad.net/~ci-train-ppa-service/+archive/landing-006

note: silo's sometimes get reallocated, so the package location may change, so double check its platform-api, qtmir, qtubuntu, and unity8 in this location.

Steps to install

  1. flash your device with the latest devel-proposed image or the image listed at the top of this wiki, assuming you're already setup, connect your host machine to device usb
    • host-computer$ adb reboot bootloader

      host-computer$ ubuntu-device-flash --channel=devel-proposed --bootstrap --developer-mode

OR if the PPA install fails, use the last-known-good image it was built against

  • host-computer$ ubuntu-device-flash --channel=devel-proposed --bootstrap --developer-mode --revision=145 

NOTE After flashing you'll probably want to give the untouch image a test drive before proceeding to adding the PPA.

  1. Don't forget to connect to the network & make writable

    • host-computer$ phablet-network 

      host-computer$ phablet-config writable-image 

      host-computer$ adb reboot 

  2. Add the PPA to your device
    • host-computer$ adb shell apt-add-repository -y ppa:ci-train-ppa-service/landing-006 

NOTE if you have packaging dependency issues, its likely due to packages being stuck in proposed (since the silo builds against proposed). So simply modify your /etc/apt/sources.list on your device to include deb http://ports.ubuntu.com/ubuntu-ports/ utopic-proposed main restricted universe

  • host-computer$ adb shell apt-get update 

  1. **Note** If you apt-get dist-upgrade to install, you will **NOT** pull in all the required packages. See below! Dist-upgrade also pulls in other unrelated packages. I recommend installing in isolation like so
    • host-computer$  phablet-shell 

      device-phablet$  sudo apt-get install qtubuntu-android qtmir-android indicators-client unity8 unity8-autopilot unity8-common unity8-private libubuntu-application-api2 libubuntu-platform-hardware-api2 ubuntu-application-api2-touch libsystemsettings1 ubuntu-system-settings ubuntu-system-settings-wizard 

password is 'phablet'

alternately, you may update like so (but note, you'll get other updates from archive, not in your image & unrelated to this silo)

  • device-phablet$  sudo apt-get dist-upgrade 

    device-phablet$  sudo apt-get install qtmir-android ubuntu-touch

Note: the dist-upgrade might remove the ubuntu-touch package. If the phone doesn't boot after those steps, make sure "ubuntu-touch" is installed.

  1. In the instance you are testing the Unity8-desktop-session, you would follow similar installation like so
    • desktop$ sudo apt-add-repository ppa:ci-train-ppa-service/landing-006 

follow the prompt, apt-get update, and then do:

  • desktop$ sudo apt-get dist-upgrade 

or

  • desktop$  sudo apt-get install qtmir-desktop qtubuntu-desktop indicators-client unity8 unity8-autopilot unity8-common ubuntu-touch unity8-private libubuntu-application-api2 libubuntu-platform-hardware-api2 ubuntu-application-api2-desktop libsystemsettings1 ubuntu-system-settings ubuntu-system-settings-wizard

Don't forget to use ppa-purge to remove and downgrade unwanted packages after testing. Note, failing to do so could pull in unknown packages in the future as silos are reused for other package landings. To install and use ppa-purge

  • desktop$ sudo apt-get install ppa-purge 

    desktop$ sudo ppa-purge ppa:ci-train-ppa-service/landing-006 

follow any prompts.

What to test

Just about anything. But primarily, this is a change on Ubuntu phone pertains to application switching, spread, interaction with the ubuntu-keyboard/OSK and general shell interaction. Its also relevant to test the display blanking, application rotation & application bottom bars. The Unity8 desktop session also needs testing.

We would expect all behaviors of the applications to remain the same as before introducing this change.

Symptoms that we don't expect but you might witness: freezing apps, inability to reveal/dismiss OSK, problems with right edge switching, or poor user experience of rotated applications.

Logging Bugs

If you find what you think is a bug potentially due to this change, please check the known bugs for this silo first. You can check here QtCompBugList. Please use the tag "qtcomp". Please note the applications you've launched, specific application visual issues or interactions. Also, please note the version of the packages you tested since we plan to be updating those as we fix bugs. You can do this by noting in the bug output from

  • device-phablet$  apt-cache policy unity8 qtmir-android qtubuntu-android 

Or in the case of Unity8 desktop session bugs

  • device-phablet$  apt-cache policy unity8 qtmir-desktop qtubuntu-desktop 

You can note the image number from

  • host-machine$  adb shell system-image-cli -i

Contact us

If you're not sure if something is a bug or need help for any reason on directions. Feel free to hit any of us up on IRC freenode #ubuntu-unity at kgunn, greyback, dandrader, mzanetti (if mir related #ubuntu-mir at kgunn, camako, alan_g). Or feel free to email the ubuntu-phone mailing list (ubuntu-phone@lists.launchpad.net).

Unity8/QtComp (last edited 2014-07-29 17:12:51 by kgunn72)