Originally posted by: Brazen
Originally posted by: drag
As always, a thorough post by dag

. Any word on which is "better", AIGLX or XGL(X)?
AIGLX because it works with my video card.
It realy depends. Both are aiming to do the exact same thing and they share code and both contribute to XGL (the core opengl framework for X.org's X server which is why it gets confusing to call xglx xgl depending on the context of the discussion).
AIGLX will work with latest drivers from DRI. Good open source drivers are aviable ATI r200 cards, ATI r300 and r400 cards (with some caveats), and Intel embedded graphics.
For the ATI there are problems with 'hypermemory' cards, with x200 embedded cards (due to shared memory sceme they can't figure out how to work) and there are mysterious lock-ups with some 9800 cards. Otherwise any ATI card that IS NOT a X1000 or higher numbered cards should work with open source drivers.
For Intel you probably want a i915g or i945g chipset. Those are the GMA 900 video chip and GMA 950 chip respectively. These provide the performance nessicary to run a OpenGL desktop comfortably and are well supported. For 965 series Intel chipsets there is a new GMA X3000 chip that are designed to be comparable to low/mid range discrete video cards, obviously in response to the (much higher then Linux's XGL stuff) graphical requirements of Vista.
If you have those you may have to use CVS drivers from Mesa/Libdrm/kernel drm drivers for good stability, but otherwise those things should run AIGLX out-of-the-box on X.org 7.1 stuff.
To find out if you have AIGLX enabled just go:
cat /var/log/Xorg.0.log|grep -i aiglx
When I upgraded my X.org install for Debian Unstable to my suprise aiglx was 'just working'. Now gettting Compiz to work is entirely different problem...
If you have a video card that requires propriatory drivers then you probably want to take a look at XGL(x) since that sets up a X Server that doesn't require any driver changes.
As for performance or features I don't know which is better. I am thinking that Compiz may work out better with XGL, but I don't know that for sure. Probably when Nvidia and ATI release their next set of propriatory drivers they will support AIGLX's changes (if they haven't already, I am not sure the current status)
--------
As the things involve both AIGLX and XGLX will end up being replaced by a fully OpenGL X Server. Currently both require legacy X Server with the old XAA/EXA 2D driver model so it makes things more complex then they need to be. They are more of a development or transitional X stuff between legacy xfree xserver and future fully-opengl driven x servers. There purpose is to attract developers, provide a interm opengl interface for compition with Vista and OS X and as their development progresses they contribute code and solutions back into X.org proper.
For a real fully independant OpenGL X Server, howerver, it requires extra extensions to OpenGL unfortunately...
OpenGL is designed as a application API, not a Windowing API. There are features that OpenGL lacks such the ability to manage displays and display resolutions. However a company called Kronos developed OpenGL-ES. OpenGL-ES is a stripped down OpenGL implimentation designed to provide a opengl environment for embedded systems.. as part of OpenGL-ES they had to figure out how to extend it to managing displays, these extensions can work with a full OpenGL implimentation. Currently these changes or extensions are called OpenGL-EGL. So even though it came from am stripped down thing for embedded devices it will work fine with a fully functional OpenGL implimentation like what Linux distros can provide with Mesa and dri drivers.
Recently OpenGL ARB (a consortium of 3DLabs, Apple, ATI, Dell, IBM, Intel, Nvidia, SGI, and Sun Microsystems) has turned over control of the OpenGL specifications to Kronos, so things are looking up for those extensions to make it into OpenGL proper. One of the critisms of OpenGL is their slow adoption of new features unlike DirectX/Direct3d, one of the hopes of giving Kronos control is that they can move faster then the ARB does.
There is currently a stand alone 'true' fully opengl X server right now called Xegl which takes advantage of these extension called Xegl that has been in development for a while now. The idea being that Xegl will eventually replace the current X.org (xfree) X server.
That goes into the reason why XGLX is called XGLX and not just XGL. This is because X.org already has a DDX called XGL. DDX is hardware-dependant portion of the X Server. (DDX stands roughly for Device Dependant X) There are xfree style DDX (which is the traditional 2d-only X stuff we all currently use), there is a Darwin DDX for OS X. There is a DDX for Windows and Xnest is also a DDX. The XGL DDX is used in XGLX an Xegl and I think AIGLX. (this contrasts to hardware independant DIX (Device Independant X) which is common to all X.org-originated X servers)