Canonical Comments On The Unity 2D Defenestration
Warner wrote a message on the Ubuntu development list on Friday entitled "Unity Going Forward" where he confirms yesterday's information that Ubuntu 12.10 is dropping the Unity 2D desktop and focusing upon using Unity with LLVMpipe in cases where there is no sufficient GPU/driver for handling the composited desktop. "Unity 2D has been removed as a default option in favor of Unity 3D across the board. This is a work in progress, so bear with us as we sort out the details in the transition."
This makes sense as now there is one unified Ubuntu desktop rather than two flavors of Unity, this leads to a better user experience as well as easing the development needs. However, as I wrote yesterday, this will cause problems for users of non-modern computers as well as some alternative platforms (e.g. ARM).
I've been extensively testing and using LLVMpipe with different workloads for years back when it was still a very young Gallium3D driver.
Even with the very latest Intel "Ivy Bridge" and AMD "Bulldozer" hardware, LLVMpipe isn't good for OpenGL gaming even with leveraging LLVM for optimizations. That's besides the point though for Canonical's concern with LLVMpipe for Unity, since for a composited desktop on modern hardware the performance with piping the OpenGL to the CPU is sufficient, as was illustrated by Fedora developers with using the GNOME Shell and LLVMpipe as their fall-back desktop with Fedora 17.
The real concern comes with Canonical continuing to (insanely) recommend the 32-bit version of Ubuntu over the 64-bit flavor, as the 64-bit version of LLVMpipe performs much better than 32-bit, plus there's a host of other reasons why Canonical should just begin recommending the 64-bit edition... Aside from the x86_64 preference to LLVMpipe, multi-core CPUs and those supporting modern instruction set extensions (i.e. SSE3/SSE4 and more recently AVX) are more attractive to this Gallium3D software renderer.
The GPU/driver requirements for Unity/Compiz are those supporting OpenGL 2.0, which comes down to the NVIDIA FX/5 series (NV30) and newer, Radeon 9000 (R300) series and newer, and the Intel i915.
If your CPU is older and your GPU/driver isn't supported, the Unity experience with LLVMpipe may be less than favorable in terms of greater CPU usage and potentially increased power consumption. For ARM hardware, LLVMpipe hasn't seen much in the way of specific optimizations.
Jason Warner says in today's mailing list message:
We know some subset of cards and hardware that could previously run Unity 2D will no longer be able to run Unity.At least they're realistic in acknowledging there may be some fall-out with Ubuntu 12.10 and that it may take until Ubuntu 13.04 for greater progress. (Though Canonical has yet to make any upstream investments in Mesa's LLVMpipe.)
For these cases, we are actively working on Unity running through LLVMpipe which is a work in progress. Unity through LLVMpipe is CPU bound which means systems with decently modern CPU architectures and non-GPU accelerated hardware should be able to run Unity. As I mentioned, this approach is a work in progress as we tweak the experience and effects to maximize the performance. We expect this to shake out over the rest of this cycle and bleed into 13.04 as well.
Jason ends his mailing list message with, "Still, with all the above, there will be systems that are simply too old to run Unity. In those cases it would be necessary to either stick with 12.04 LTS or run another desktop environment. We want this transition to go as smoothly as possible and are working on supporting as much hardware as we reasonably can. Hopefully we should have most of the wrinkles worked out by 12.10 release with just a little hangover for 13.04." Those wanting a lighter desktop to try should check out Xfce or LXDE.
As I shared earlier today, even with newer hardware if you opted to use Unity 2D, your OpenGL performance may regress for games and other GL workloads with now being forced to use the Compiz-based Unity.
The mailing list post in full can be read on ubuntu-devel.