AIGLX, XGL, DRI, MesaGL... sort it out

AIGLX, XGL, DRI, MesaGL... sort it out


Seeing SuSE’s new desktop—the one using XGL and Compiz—one may be tempted to try and get it working on his own system... Good luck.

Personally, I use Mandriva’s GNU/Linux distribution. They decided to follow Red Hat/Fedora’s impulse by using Xorg 7.1, which has AIGLX (Accelerated Indirect GL X) built in.

Now, AIGLX and XGL use complementary methods to display a 3D desktop, and in fact have very similar requirements—and can run the same window managers.

However, while XGL can run on pretty any OpenGL 1.5 compatible hardware, AIGLX isn’t there yet: right now, only Intel and older ATI hardware (those with open-sourced 3D drivers) can make it run... Because they require the driver to follow the 1.0 ABI specification

Now, since I was always told that NVIDIA is the way to go for OpenGL hardware under GNU/Linux, I tried to find a way to make AIGLX and a 3D desktop on my favourite distribution... And I tried to find out anything I could about a free 3D driver for NVIDIA hardware.

Here’s what I found out:

The Utah-GLX project had a semi-working 3D accelerated driver, which has never been ported to Mesa/DRI. In fact, the last person to work on it was working on a BeOS driver... And has made some progress. However, his work hasn’t seen any echo—that I could find—in the GNU/Linux world.

Too bad.

I can understand that it takes some time to develop a driver from scratch. I can also understand that companies like NVIDIA and ATI, who have today’s most powerful 3D hardware, would not want to share those secrets with others. However!

Seeing that there already are some available code on both parts, that it merely requires someone’s time to reverse engineer those hardware pieces—it can arguably be easily covered with one or two people’s salaries—to discover those secrets, I don’t think that either ATI or NVIDIA would have much to lose by disclosing at least part of the specs required, but at least there would probably be MUCH more activities on the free software side.

Category: 

Comments

Anonymous visitor's picture
Submitted by Anonymous visitor (not verified) on

I was thinking about the following.
Reverse engineering is legal at least in some countries.
How about collecting money to finance a small group of competent people to analyze the Nvidia and ATI CS-drivers there and publish the specs gathered from that.
Then we finance a group that writes a driver from these specs.
I guess that we should be able to collect sufficient money for that given that most people have a card from one of these two companies build in (apart from business people who mostly have intel-chips).

Anonymous visitor's picture
Submitted by Anonymous visitor (not verified) on

"That NVIDIA was the way to go"..? A bizarre comment, considering Nvidia is the only hardware maker which IS NOT at all supported by free software. Older ATI cards and Intel cards are supported. Which one is best I don't know.

Anonymous visitor's picture
Submitted by Anonymous visitor (not verified) on

Nvidia OpenGL drivers are, right now, the most efficient OpenGL drivers for the most powerful GPUs under GNU/Linux (Ati drivers usually lag a LOOONG time after their hardware comes to market, and usually cause mor eproblems to run and install, and Intel hardware is just not powerful enough). Moreover, the free nv driver included with Xorg (starting form xfree86) was provided by... Nvidia.

It is true however that Nvidia keeps mum about their hardware specs, making developing a free 3D driver difficult (right now, the Utah-GLX driver badly supports Geforce2-level hardware; interesting hardware acceleration started with Geforce3, then Geforce 5).

Anonymous visitor's picture
Submitted by Anonymous visitor (not verified) on

What version of Mandriva are you running? The last stable release, 2006.0, included X.org 6.9, not 7.1, and doesn't have AIGLX or Xgl. Current Cooker has (and therefore 2007 will have, when it's released) both AIGLX and Xgl.

-Adam Williamson, Mandriva

Anonymous visitor's picture
Submitted by Anonymous visitor (not verified) on

Yup, I run Cooker. And I hope the AIGLX and XGL packages will be ported to x86-64, because right now Cooker doesn't have them. But this isn't a Mandriva mailing list.

Anonymous visitor's picture
Submitted by Anonymous visitor (not verified) on

http://nouveau.freedesktop.org/wiki/

It used to be located at sourceforge but they have moved to freedesktop.org. Seems like they haven't configured the wiki correctly yet...

Best regards

Peter K

Anonymous visitor's picture
Submitted by Anonymous visitor (not verified) on

The whole of X is a titantic screw up.

I have a Matrox G550 -- which used to be one of the best supported cards, sicne it was well-documented and had excellent free software drivers for both 2d and 3d.

But not anymore. If you made a choice to get a card with free software drivers, you've been royally screwed, since NVIDIA and ATI are the only ones who get any real attention from the X monkeys.

Since modular X and GTK2.6+, my Matrox has gotten so slow compared to Windows (I dual boot) that it is a humiliating experience showing it to anyone -- and no, it's not a configuration screw-up... it's just that the code has gotten slower.

Despite the Matrox G400+ being popular cards, with capable 3d support (my g550 can run Q3 at a good resultion with a decent framerate with high detail), AIGLX doesn't support it, and neither does XGL.

Anonymous visitor's picture
Submitted by Anonymous visitor (not verified) on

they say the matrox g550 works with aiglx after a driver update:

http://fedoraproject.org/wiki/RenderingProject/aiglx#head-aacf511f90cf03723059ec336a6023be33787f3e

Anonymous visitor's picture
Submitted by Anonymous visitor (not verified) on

...but about the fact that hardware and software supports are so fragmented that right now, making your GNU/Linux desktop run in 3D accelerated mode, you either need a ground up Xorg replacement (XGL) or to possess a very specific piece of hardware (recent Intel IGP or pre 9xx0 Ati card) to run the most recent Xorg's extension (AIGLX).

I know that you can run XGL in Ubuntu; you can do so under SuSE 10.1 too, and the i586 version of Mandriva's cooker; Fedora Core 6 should be able to do so too.

It doesn't help.

Anonymous visitor's picture
Submitted by Anonymous visitor (not verified) on

Why does there have to be two 3D technologies (GLX and AIGLX)? What a waste of resources.

Nvidia supposedly supports AIGLX over GLX, but their support is confined to words - there is no driver. What sort of support is that?

The open source 3D software DRI is dead in the water - no open source drivers for any hardware this side of the year 2000. So either get a time machine or you are stuck with proprietry drivers. An open source framework that depends on proprietry drivers is far from ideal. RMS cannot be pleased. Somewhat of a joke in fact (but only Nvidia and ATI are laughing).

Apparently Intel is opening up its current drivers and is about to release their graphics chip on a card. Not the fastest 3D but probably good enough for the desktop. This might be the best thing on the horizon. Lets hope they get the texture-from-bitmap support to enable AIGLX.

Anonymous visitor's picture
Submitted by Anonymous visitor (not verified) on

An open source framework that depends on proprietry drivers is far from ideal.

BIOSes are closed source, yet the OS depends on them. Should we therefor abandon Linux and the BSD's? GLX doesn't depend on closed source drivers. It relies on any driver that has proper OpenGL support. The fact that most of these drivers are closed source is an unrelated, if unfortunate matter.

Anonymous visitor's picture
Submitted by Anonymous visitor (not verified) on

As far as I know, this 'reverse engineering' refers to dirty reverse engineering: decompiling the driver to analyse it. Hardware reverse engineering isn't forbidden (it cannot be, since you are entitled to talk however you want with your hardware; it may just void the warranty), and is what is used right now to fuel the NouVeau project: intercept commands coming from a working driver, analyse them and reimplement them in a free driver - when there is a lack of documentation available (as is the case).

They're looking for a Quadro 1 card, by the way. Any volunteers? I only have an old TnT1 in stock right now... (I will keep my GF 6600, I need it thank you very much)

Anonymous visitor's picture
Submitted by Anonymous visitor (not verified) on

I guess that we should be able to collect sufficient money for that given that most people have a card from one of these two companies build in
Gary

Author information

Mitch Meyran's picture

Biography

Have you ever fixed a computer with a hammer, glue and a soldering iron? Why not? It's fun!