Mitch Meyran [end_users]
9/13/2006

A “what is” guide to 3D desktops - put in a bowl, mix, add chips for topping

fsmsh.com/1757 [3d-desktop] [aiglx] [xgl] [nvidia] [ati] [sis] [matrox]

I’ve been talking about them, complaining about what you CAN’T do, about the troubles with 3D cards... Personally I’m getting a bit lost with all this. So, I’ve decided to compile all the information I could find out about those pesky 3D desktops.

Since last week, comments, accounts from other websites, personal experiments, further readings and general nosiness allowed me to update my article. Still, further comments are welcome.

A “what is” guide to 3D desktops—updated

XGL

Essentially developed by Novell for SuSE and the first “elegant” 3D desktop, it came out with Compiz, a window manager that can replace Gnome’s (and now KDE’s and others) window manager. Allowing desktop rotations, window transparencies and deformations, it is nice-looking, fluid and can run on hardware more than five years old.

In short, if your existing X configuration supports somewhat advanced 3D acceleration and DRI, you can run XGL: it will start your normal X, ask it to draw a single, full-screen OpenGL window in which a simple new X server runs...

The advantage:

It will run (fast) on almost any 4 year-old video hardware, provided it has accelerated 3D (free or otherwise).

It will run on older cards, but don’t expect astonishing performances.

The problems:

Cards that can’t handle outputting video (meaning colour spaces different than xRGB) to a texture will have to use software rendering; it’s slower than video output to a VGA framebuffer, and 3D acceleration for applications require the card to handle several GL contexts.

AIGLX

Championed by Red Hat and NVIDIA (amongst others) this method intends to add 3D acceleration to composite (ie. which can declare any element rendered separately and asks the hardware to assemble it all on screen) X; this was accepted by the Xorg and freedesktop projects, so version 7.1 of Xorg has seen a nice AIGLX extension added. This solves the two main problems XGL encountered: 3D acceleration is still made available to applications, and video output can still make use of existing X extentions like xv.

AIGLX first came with a modified version of Metacity, Gnome’s default window manager. Changes to Metacity are being merged upstream, and its plugins are being homogeneized with Compiz’s.

However, AIGLX requires full compliance with the X ABI version 1.0, the support of GL_EXT_texture_from_pixmap, and DRI support; things that most proprietary drivers don’t support fully as of yet, not even NVIDIA, proponent of the project: DRI doesn’t work with their “legacy” driver (71.84), and GL_EXT_texture_from_pixmap isn’t supported (71.84 and 87.74).

One good comment about both ATI’s and NVIDIA’s drivers though, those were quite quickly updated to support the new X 1.0 ABI.

Meaning that right now, only owners of Intel, some Sis and older ATI hardware (pre-X1xxx) can make use of AIGLX, since those have free, AIGLX-supporting drivers.

The Support

Manu model Xorg 7 Manufacturer’s XGL AIGLX
Intel i810 to i965 2D,3D See Xorg’s Useless Yes
NVIDIA Riva/TnT/Geforce1/2/MX 2D 2D,3D, closed Yes# No
NVIDIA GeForce3/4/FX/6/7 2D 2D,3D, closed Yes## No
ATI Rage128 to Radeon 9200 2D,3D was there one? No No*
ATI Radeon 7000 to Radeon 9200 2D,3D obsolete Useless Yes**
ATI Radeon 9500 to X1850 Experimental 2D,3D Yes Experimental**
Sis 300,540,630,730 2D,3D outdated Useless Yes
Sis 315/550/650/651/740/661/741/760/330 2D none No No

Chips Manufacturers Comparison

(#)These cards require legacy NVIDIA driver (71.84). “MX” relates to both GF2MX and GF4MX, since both are Geforce2-level.

(##)3D applications are accelerated on a Geforce 6 (not tried on others), video is fast from the FX onward.

(*)Card models named Rage (128, Mobility, II, pro etc.) were either Mach64 2D chips with added functionalities (those don’t have a working DRI/DRM and are called with the “ati” driver) or “real” 3D chips (their DRI/DRM module is r128). 3D works with r128, but missing visuals make Compiz unable to load.

(**)Early Radeon (7x00 to 9200) are fully supported by Xorg’s “radeon” driver.

(***)Card models from 9500 to X600 use the R3xx chip family. 3D support is being implemented, and AIGLX is working on R3XX cores (tested 9500, got reports on 9600). R4xx is under heavy development. If the free driver supports 3D, then AIGLX support is practically guaranteed.

“Useless” refers to the fact that there are no working proprietary 3D driver, and that the driver integrated with Xorg is good enough to run AIGLX—which works better than XGL anyway. So while XGL would work, it is of no use except if you use an older version of Xorg or Xfree86.

Cards I could try

NVIDIA

NVIDIA has no worthwhile free driver, so you basically need to use their closed one. Luckily, they have quite nice support.

The NouVeau project has made some progress on a free driver though: right now, they’re adding EXA and DRI/DRM support to the nv driver... They’re doing an extraordinary job with very little data to base themselves on, so if you could help them...

But let’s now see what I discovered:

Conclusion, recent NVIDIA drivers run XGL on basically all cards, but good performance requires recent hardware.

ATI

I don’t have as great a range of ATI hardware as I have NVIDIA; still, here is some information.

I have nothing more recent at my disposal, so owners of X6xx to X1xxx cards, if you could please give me a status report on those cards, with both the free and closed source driver, on both AIGLX and XGL...

Sis

Only a 750 available to test; there is no 3D support and no DRM module for those cards, so no 3D desktop on it at all. Too bad.

Intel

No hardware to test; a report of AIGLX working slowly on a i810 reached me, and the Fedora website reports good working 830 to 9XX, so it stands to reason to think that AIGLX works well on pretty much all Intel IGPs anyway.

Conclusion

If I get more information, I will update this chart more. I’m currently writing a more complete guide—that I’ll publish in PDF format here—with more in-depth details.

It would be nice to get detailed comments on the hardware you test and report: distribution, proprietary/free driver, chip revision, amount of video RAM, X version, etc.

Personally, I use the latest Mandriva 2007 RC (with Cooker updates) on a spare hard drive that I move from one computer to the other. It uses recent CVS extracts of Mesa, meaning that it supports the widest range available of free 3D drivers. More recent would be Gentoo, but I don’t feel like learning a new distribution for those tests.

Bibliography

Last weeks entry—A glimpse into 3D desktops....

A Gentoo howto.

Release Notes for Xorg 7.1.

ATI driver status.

Fedora notes on AIGLX.

The NouVeau project.


License

Verbatim copying and distribution of this entire article are permitted worldwide, without royalty, in any medium, provided this notice is preserved.