A glimpse into 3D desktops...

A glimpse into 3D desktops...


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.

Comments required.

_The matrix in this article has been superceded by the one in _this article.

A “what is” guide to 3D desktops

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).

The problems:

Cards that can’t handle outputting video to a texture will have to use software rendering—it’s slower than video output to a VGA framebuffer, and any form of 3D acceleration in applications has gone bye-bye.

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—and 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.

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 as of yet, not even NVIDIA’s—proponent of the project.

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

The Support

Manu model Xorg 7 Manufacturer’s XGL AIGLX
Intel i810 to i965 2D, Full 3D ...is free Yes, good video Yes
NVIDIA GeForce3/4 2D only 2D/3D, closed Yes, slow video No
NVIDIA GeForceFX/6/7 2D only 2D/3D, closed Yes, fast video No
ATI 9500 to X1850 2D/3D* 2D, partial 3D, closed Yes, fast video Yes*
ATI 7500 to 9200 2D, Full 3D obsolete Yes, slow video Yes

Chips Manufacturers Comparison

(*)Card models from 9500 to X600 use the R3xx chip family. 3D support is being implemented, and some may thus be able to use AIGLX—some users report having run AIGLX on a 9600 (R350) under Ubuntu. R4xx is under heavy development. If the free driver supports 3D, then AIGLX support is practically guaranteed.

Conclusion

Help wanted—I’ve personally tested a GeForce 4200, a GeForce 5200 and a GeForce 6600. I need some input from Intel/Sis/ATI owners to make this article as complete as possible.

Bibliography

A Gentoo howto.

Release Notes for Xorg 7.1.

ATI driver status.

Fedora notes on AIGLX.

Category: 

Comments

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

That was really some informative blog, mitch. Honestly, I was once ignorant about these 3D desktops. Now that you have filled my mind with information. I can say that blogs do make sense!

http://www.rbsbrookland.com

Mitch Meyran's picture

Having run a minimal install of Mandriva cooker on my brother's PC equipped with a Radeon 9500, I can say that:
- using latest fglrx driver, XGL works more or less - but it still crashes and can bring the kernel down with it.
- using Mesa, drm and dri, AIGLX works not too badly: 3D acceleration works very nicely on most windows, and video acceleration still works (however, overlays don't 'twist' with the windows). 3D support however is still incomplete (can't run glxgears!) and several 'hangs' happen (no crashes,but suddenly windows won't move for a little while).
Nothing a few months of work won't solve.

On the Nvidia side, the nouveau project is on a good roll: a working drm module has been done, and xv and xaa support added to the nv driver. Memory space initialization is on its way, but 3D wise, nothing works - they urgently need as much data about Nvidia hardware as they can get. http://nouveau.freedesktop.org

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

I put XGL/Compiz on an old computer with this card and I must say it runs flawless. I haven't tested it with Gentoo yet, but it was working great with Ubuntu Dapper.

Good luck everyone :)

Mitch Meyran's picture

I have one of those too; it is flawless for basic desktop support, however video is choppy, and acceleration of full-screen apps isn't optimal.
---
A computer is like air conditioning: it becomes useless when you open windows.

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

Tested using the oh-so-great Gentoo-based Kororaa Xgl Live CD 0.1 which can be found at the following address. Was a lot easier than ruining my perfectly good configuration plus I could test out multiple computers within an hour, usually without any extraneous configuration.

http://linuxtracker.org/torrents-details.php?id=1604

Mitch Meyran's picture

Could you please specify if you're using proprietary or free drivers, and give me results of a test with the free driver with AIGLX? Thanks!
---
A computer is like air conditioning: it becomes useless when you open windows.

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

DRI don't exist for those, so AIGLX don't work.

Only 300 series from SIS has DRI support, but I didn't tested it. Althought it is open source driver, so should work with AIGLX.

Mitch Meyran's picture

source: http://www.winischhofer.net/sisdri.shtml (Sis driver maintainer's page: Thomas Winischhofer).

The SiS 300 series (300, 540, 630, 730) has accelerated 3D support - and probably AIGLX, too. SiS 315/550/650/651/740/661/741/760/330 hve no DRI - meaning no 3D support. At all.

A computer is like air conditioning: it becomes useless when you open windows.

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

I may sound ingorant but I really wonder if there is anything similar to XGL/AXGL for Windows.

Mitch Meyran's picture

...is called Aero Glass, will be included with 'heavy' versions of Vista, and will cost (as upgrade for the Premium version) at least 150 EUR. It will moreover REQUIRE Nvidia GeforeceFX, Ati Radeon 9500 and Intel 975G level hardware to... start. Add to this 2 Gb of RAM and a 2GHz CPU to run without looking like a slideshow (personal test on beta 2). If someone can report what's up with the RC1, I don't want to waste a DVD and 20 Gb of HD space to test it.

AIGLX/XGL run very well on machines 4 times less powerful: I know for a fact that XGL runs frighteningly fast on a 1.6 GHz Sempron with 512 Mb of RAM and a GeforceFX 5200 off a liveCD. When AIGLX runs, it performs even better than XGL.
---
A computer is like air conditioning: it becomes useless when you open windows.

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

Your wrote RedHat and Nvidia championed AIGLX but your list states that Nvidia cards do not support AIGLX. Why is that?

Mitch Meyran's picture

Nice question, and the answer is easy. Nvidia didn't like Xgl for good reasons: simply put, it's not very elegant and although it can be used in an incredibly large array of applications, its design leads to compromised speed and prevents 3D rendering over a network connection. AIGLX being integrated with the server (the part of X that draws the images following the client's input: client being an application here), it is (hopefully) able to do 3D rendering even on a distant computer (equipped with a 3D card).
Nvidia declared itself in favour of such an extention, which was essentially developed by the Fedora project and adopted by Xorg. However, several technical snags appeared:
- Geforce4 and lower, while still supported, require a different driver development than FX and up do: those older cards providing only fixed shader functions, tricks have to be used to support them. This led to the creation of 2 different drivers at Nvidia's, the latter 7x for Geforce4 and lower, and 8x for FX and higher (having tried the 8x with a GF4, I'm not sure it was sensible, but still...) mainly due to the following point:
- The Xorg ABI has changed with version 7.1, requiring some extensive driver review, so Nvidia developers had their plates full.
- completely unused until now and of little value because of that, the GL_EXT_texture_from_pixmap function is absent from their driver. The function's name seems to describe that a card supporting this extention may be able to grab a construct out of its frame buffer and directly exploit it as a texture. Stability- and security-wise it would be tricky to implement, and since Nvidia doesn't provide beta version of their Linux drivers...

The reason why most free 3D drivers already support this extention is because MesaGL already had it included; since Mesa use 3D acceleration when it can and falls back to software rendering when it can't, developers already had a reference rendering that they just needed to accelerate for their own card. Nvidia either use a too old version of Mesa, or just hadn't considered this extention (it's not part of core OpenGL 1.5 functions) until now.
---
A computer is like air conditioning: it becomes useless when you open windows.

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

very good

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

i don't know abt computers.. I'm asking very stupid question..
i hav 32Mb onboard graphicss/AMD 64 3000+ .. bt no AGP..
so xgl Live will not work then??

Mitch Meyran's picture

...then this article is irrelevant: Windows can't run XGL or AIGLX, plain and simple.

Learn what is a Linux-based system first.

After that, if you're using onboard graphics, knowing the amount of memory helps none: you need to know the graphics chip's brand and model. If it's Intel, you win; if it's Sis, you have little chance; if it's Ati or Nvidia (which I doubt considering the amount of RAM), then it's possible; check the updated article's chart.

---
A computer is like air conditioning: it becomes useless when you open windows.

jonnyb13's picture
Submitted by jonnyb13 on

I never really understood these things till now. Although I admit, I know not a lot, but this enlightened me a little bit more than I have. All I know is that the newer the card, the better. I always use ATI Radeon though. What is the best to use anyway? Overall performance?

D-cat's picture
Submitted by D-cat (not verified) on

In my limited experimenting, I've found GL to be limited to one concurent client. This basically means that if you're using XGL on the desktop, you will not be able to use hardware accelerated GL for applications (like games). XGL (beryl, compiz) must be turned off and the xserver restarted before any 3D games will be playable. Unfortunately, XGL on/off setting affects all users, so there will be no creating desktop profiles.

I was very impressed with XGL and the beryl manager. However, sine I like my games too, this is a non-start for me.

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!