Unity switch to Compiz

Registered by David Barth on 2010-10-25

Session to discuss the switch to compiz and how the platform integration needs to be adapted

Blueprint information

David Barth
Neil J. Patel
Unity Team
Series goal:
Accepted for natty
Milestone target:
Started by
David Barth on 2010-11-03
Completed by
David Barth on 2011-04-27

Related branches



Work items (natty-alpha-1):
[jassmith] reimplement base launcher view: DONE
[jaytaoko] reimplement base launcher view: DONE
[njpatel] provide compiz-unity plugin structure: DONE
[jassmith] add mainloop integration to compiz 0.9.4: DONE
[smspillaz] add mainloop integration to compiz 0.9.4: DONE
[njpatel] reimplement base panel view: DONE
[njpatel] implement panel-service: DONE
[didrocks] package compiz 0.9.x stack and upload to natty: DONE
[smspillaz] give a way to transition older settings from compiz 0.8 to 0.9: DONE
[smspillaz] give a way to handle two kinds of settings, one for the 2D session and one for the unity one: DONE
[smspillaz] tweak compiz buildsystem to split auxillary file generation into cmake extensions: DONE
[smspillaz] fix really annoying bugs in compiz 0.9: DONE
[didrocks] handle transition from old settings -> 2D session settings: DONE
[didrocks] handle transition from old settings -> unity session settings (with minor tweak like removing conflicting plugin and settings): DONE
[didrocks] package nux: DONE
[didrocks] write MIR for nux: DONE
[didrocks] package new unity compiz: DONE
[didrocks] handle transition from old to new unity: DONE
[didrocks] handle the two versions settings regarding the session: DONE
[didrocks] kick the tricky gnome-panel issue regarding gnome-session: DONE

Work items (natty-alpha-2):
[canonical-ux] define improved borders & shadows: POSTPONED
[didrocks] enhance apport hook to get few work on triaging: DONE
[didrocks] migrate the settings migration tool to gsettings: DONE
[didrocks] migrate the settings migration tool to gsettings: DONE
[smspillaz] implement improved borders & shadows (phase 1): DONE

Work items (natty-alpha-3):
[canonical-ux] provide mockups/assets for improved borders & shadows: DONE
[alexlauni] assess performance impact of nautilus desktop view: POSTPONED
[smspillaz] finish delivery of improved gtk-window-decorator: DONE
[smspillaz] merge glib branch upstream and release compiz 0.9.4: DONE
[smspillaz] implement improved borders & shadows (phase 2): DONE
[smspillaz] polish dialog and MT functionality: POSTPONED

Work items (ubuntu-11.04-beta-1):
[didrocks] strip alt+F2 from gnome-panel (if needed) and integrate into unity (or external binary): DONE
[smspillaz] get some plugins to be linked statically: POSTPONED

Work items (ubuntu-11.04-beta-2):
[smspillaz] get a way to define some plugin to be mandatory under conditions (like depending on profile): POSTPONED
[smspillaz] design unit tests / integration tests system for compiz: TODO
[smspillaz] analyse startup perf charts from alexlauni, tweak startup to be faster: POSTPONED

Note from the session

Unity switch to compiz

Introduction / Q & A

Why are we switching to Compiz?
 * compiz is very performant, due to direct use of GL
 * issues with mutters plugin-system, which is not as solid as compiz'
 * also conflicts between changes required by GS and the ones required by Unity

What's changing?
 * only the front-end change, the backend will stay the same and represent the majority of Unity's codebase
 * planned one plugin for each major unity view (launcher, panel, places)
 * can use existing plugins from

 hardware blacklist of compiz
* why some harware doesnt work?
* possible erroneous additions to the blacklist

Will a switch to compiz increase hardware compatibility
* extra testing to make sure that the hardware that actually works
* has atleast the same hardware compatibility as mutter, might be better

Drivers / HW requirement: is the switch to compiz going to improve HW support for Unity?
 * No, Unity has it's own set of requirements on top of what Compiz or Mutter require
 * That said, Compiz is significantly better supported that Mutter (according to RAOF's experience)
 * A new session coming up

Startup performance impact?
 * contracted smspillaz
 ** will be looking at startuptime, and integrating plugins into the core
  * 2 slowdowns
  ** DL open, and xml
 * ProtoBuf support? was not completed, may be interesting to explore; but we think that dlopen is the main performance issue at this stage

Performance patch for timing data
* needs to be rewritten(?)

Performace counter in compiz dont work with

== Integration with the Platform ==

What about the people that need to enable propreitary drivers?
* will recieve a 2d fallback session until jockey pops up
*refer to the session on tuesday for notes on the ux on switching between 2d fallback and 3d
*nouveau driver
** not on by default, will live in universe.
*expected to run, but not too much effort will be expended on testing

Users who do have compiz will get the new version
Default config of compiz
*if people have a config for compiz, but then want to install unity
Migration from UNE to Unity needs to be taken care of specifically

We need to make sure normal compiz without unity still works fine in the GNOME session
The normal compiz ("Classic Experience") is not only a fallback solution but a first class choice, this is mainly a problem to be addressed by the
platform... rather then compiz upstream (would be nice if compiz makes it easy to do that though)

Also check the plugins configuration to have unity "conflict" with plugins which would conflict in terms of experience or plain usability.

== Dev. Plan ==

Compiz 0.9.2 released last week
Upstream's dev. plan for the 0.9.x series:
 * MPX Support
 * Animation Framework
 * Performance Improvements
 * Bugfixing
 * also see wiki.compiz.org/Development/Propositions


Alpha 1 - Dec. 2 (so freeze on the 30th of November) - getting compiz 0.9.4 + Unity working together

-- didrocks 113010
change the gnome-panel task as do not appear in the ubuntu desktop session for alpha1. Add new detection module plan and workitems for A2

-- didrocks 112502:
Alt + F2 work will start next week, after alpha3 and will require a FFe


Work Items