[orca-list] More on desktop shells, 2D vs 3D, and the future.



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



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]