Beryl and Compiz, AIGLX and Xgl

cube-with-matrix
E@zyVG has written down some experiences with openSUSE and was wondering if AIGLX or Xgl should be used for the accelerated desktop. Here is what I answered:

About AIGLX and Xgl:
Xgl is a technical experiment to show that you can implement a X server fully in OpenGL. In long terms there should finally emerge the new architecture Xegl.
However, Xgl is implemented in a rough way: it brakes with current X standards and is not compatible with applications which need these standards (no, I unfortunately do not have an example).
Also, it completely works on top of OpenGL – so you need a graphic card with a decent OpenGL driver.
AIGLX has been developed inside of the X project in the way that it kept compatibility with the standards. It extends the abilities of X to render stuff also with OpenGL direct – that makes it possible to have on-time effects on the desktop (given that you have a composition manager like Compiz). Again, you need some decent OpenGL drivers which also provide specific support for AIGLX – the current fglrx (proprietary ATI) does not provide such support, but the free ATI driver does!
So, which one to use?
If you depend on fglrx (the Open Source ati drivers do not perform as good as the fglrx atm), use Xgl – no question there.
If you do not, you are free to choose (yes, the current nvidia drivers do support “AIGLX”; actually they come with their own direct rendering and replace AIGLX, but that doesn’t matter here). And from a pure users point of view it doesn’t really matter because in the end the functionality of Compiz/Beryl is the same, independent from the underlying structure.
Personally I prefer AIGLX because it is part of the official X server and therefore automatically available on all modern distributions while Xgl needs extra packages. From my point of view AIGLX is the future if you think in short time lines. In the long run Xgl or better said Xegl is most likely the future. But we are not there yet.

I like to add that there is also an attempt to combine both attempts of Xgl and AIGLX: Glucose. However, I never heard anything about it again. To understand what Glucose is read the comment from Mikos made about the article How Xgl, X.Org, Mesa and Compiz work:

As I understand it, in Xgl (or Xegl) _everthing_ on the desktop is accelerated through OpenGL, even toolkits which uses X11/XRender (well, something only if your card supports glx_ext_texture_from_pixmap extension). As I understand it, in AIGLX (or if you use new NVidia beta drivers) only Compiz is accelerated through OpenGL, but X11/XRender is still X11/XRender and it doesn’t go through OpenGL. But there is one solution which brings full OpenGL acceleration to standard X.Org server with AIGLX: Glucose (new OpenGL based acceleration architecture for X.Org by Zack Rusin, if I remember you have also written about it).
Or you must use toolkits which supports OpenGL as rendering backend – for example Qt 4 and his Arthur paint system.

I think not only Qt4 supports this OpenGL rendering backend, but also Cairo.

And as a real suggestion: just try which works better in case of wobble-movies or starting games. Survival of the fittest.

2 thoughts on “Beryl and Compiz, AIGLX and Xgl”

  1. It is a complex topic after all, and you need some background knowledge about what X is and what the X server/client architecture is…
    But I admit, if I would know it better I would be able to explain it better:/

Comments are closed.