More on desktop shells, 2D vs 3D, and the future.

Luke Yelavich themuso at ubuntu.com
Wed May 9 22:56:26 UTC 2012


Hi all,
I've seen much discussion recently about the various desktop shells that are available on Linux, particularly those that are accessible, or will be accessible in the future. I think its worth outlining what shells we have, their accessibility status, and their graphical hardware requirements.

Unity:
Till now, there have been 2 flavours of Unity, a 2D flavour built on QT, and a 3D flavour, using a custom developed graphical widget toolkit sitting on compiz. As per my previous mail, Unity 2D development is being discontinued. Unity 2D has more forgiving graphics hardware requirements. It doesn't perform any 3D rendering of onscreen elements by default, and can therefore work on graphics hardware that is several years old, and can work on video hardware that doesn't have a 3D driver present on the system, i.e proprietary NVIDIA and AMD/ATI video drivers.

Unity 3D performs a lot of 3D graphics rendering. The launcher, the dash, and the top panel are all rendered in real time using 3D enabled graphics hardware. For unity 3D to work, you need to have 3D drivers present, either open source drivers for Intel/AMD and for some NVIDIA hardware, Nouveau. Unity 3D will work on all NVIDIA hardware if you install the proprietary NVIDIA drivers.

Unity 2D accessibility is almost 100% complete, however again as per my previous mail, Unity 2D development is being discontinued. unity 3D accessibility works partially, althogh I believe some of that is broken at the moment. I will be workin to improve Unity 3D accessibility by the next LTS release of Ubuntu.

Unity 2D development is not only being stopped to reallocate resources. There are technical reasons why Unity 3D will be the focus from here on out. See the end of this email for my explanation.

GNOME shell:
Very similar to Unity 3D in terms of hardware requirements and rendering. It renders UI elements in 3D using 3D capable graphics hardware, and needs the same drivers to be present to work. There is no non-3D version of GNOME shell.

As of GNOME shell 3.4, GNOME shell is quite usable with Orca. Some areas, particularly the top panel still need work, but users are able to launch and search for applications.

GNOME classic, aka GNOME fallback:
Classic GNOME is used in GNOME distributions as a fallback for those who do not have a hardware and software combination that allows 3D graphics rendering to work. Classic GNOME has a very similar look and feel to GNOME 2. This environment is still just as accessible as GNOME 2 was.

I believe that GNOME classic/GNOME fallback is also going away in the longer term. My technical explanation at the end of this email outlines why.

KDE:
KDE uses the QT widget toolkit. I believe that KDE does use 3D rendering by default, although this may be incorrect. It also may be possible to disable 3D graphics rendering, although again I am not 100% sure.

Whilst QT accessibility is improving, more work is needed to improve KDE's accessibility, as KDE has many custom elements that need to be enabled for accessibility. We will have accessible KDe applications before we have the whole desktop accessible, which is still good enough, given our other desktop shell choices.

XFCE:
XFCE is a light weight desktop environment, that does not use 3D graphics rendering by default, although this may be incorrect, and may change in the future. XFCE has a similar look and feel to Classic GNOME/GNOME 2.

XFCE is already somewhat accessible with Orca, as it uses GTK2, however much work is needed to improve keyboard navigation and better present custom widgets to Orca.

3D desktop rendering is the future, whether we like it or not. This is being done because today's graphics hardware can do quite powerful and complex rendering, and taking advantage of this for the desktop means less work is put onto the CPU to show the desktop, and it is much more pleasant visually to see a window gradually fade/slide onto the screen, rather than watch a flickery display update as the desktop is used. Windows and Mac OS X have rendered their desktops using 3D for many years now, and all mobile devices based on Android and IOS use 3D rendering for interface display.

So why are Unity 2D and possibly GNOME fallback/Classic going away? The short answer is that thanks to new developments, it will be possible to use the CPu to render the same 3D effects and UI elements. Yes, this will put more work onto the CPU, but the thinking is that this will be satisfactory for the user to then go ahead and update/install the required drivers for their hardware, thereby offloading the 3D rendering work to the hardware, as originally desired by the desktop shell developers. These desktops will not be requiring very new graphics hardware just yet. In fact Unity 3D can be run on graphics hardware that is 7 to 8 years old, maybe even earlier, depending on the amount of video memory present on the hardware in question. For a practicle example, I have successfully run Unity 3D on a Radeon 9000 mobile GPU with 64MB of video memory, which is from 2003-2004, give or take. it wasn't fast, but it worked and everything appeared to be rendered without issue. I also think certain Radeon 7500 chips can also render Unity 3D, but am not 100% sure.

We can't keep supporting really old hardware forever, and compliant hardware from the last 6 years is quite easily available now at cheap prices if you are willing to buy second hand hardware, hense the move to 3D, and the desire to make our desktop shells more efficient in their hardware use.

I hope this helps clear a few things up for people who are wondering. Any questions, feel free to ask, and if you have any corrections, please feel free to reply and correct me.

Luke



More information about the Ubuntu-accessibility mailing list