Sunday, April 16, 2006

XGL and Compiz: Where we're at

If you've been following the latest developments in the Linux world, you'll undoubtably have heard of XGL and Compiz. If you haven't, XGL is a new X server written by David Reveman (at Novell) that uses OpenGL to accelerate all sorts of graphics rendering. Compiz is a window manager that features "compositing", allowing for things like window shadows, but also cool 2D/3D effects that use OpenGL. In non-technical terms, XGL uses your graphics card to make things snappier, and Compiz uses your graphics card to create very slick graphics for your desktop.
The key idea here is that it all uses your graphics card, which means it's not very taxing on your CPU (and in some cases can be faster than a non-accelerated X server.)

Why is this all such a big deal?
See for yourself.
(There's a bunch of XGL/Compiz videos out there, but this video is a good outline of the major features/bling.)

You want XGL/Compiz now, you say? There are several routes to go:

Alternatively, you could install AIGLX and Compiz on Fedora Core 5, but that only supports some odd Radeon cards and some Intel video chipsets. (read: no Nvidia)
(Editor's note: I'm using Dapper with the latest XGL/Compiz from the QuinnStorm repositories, with an Nvidia card.)

Playing a video across two desktops


Another shot of rotating the cube

The scale plugin in action (like Apple's "expose")

Anyway you choose to go, the one thing that'll probably hit you is how active and involved the Linux community is with these two pieces of software. As soon as XGL was released, HOWTOs started popping up all over the web and forums were flooded with posts relating to XGL and Compiz. After a while, repositories were set up and much more polish was added, as well as many bugfixes. To me, this was one of the Open Source community's finest moments. It wasn't the developers doing all this documentation and finding workarounds for bugs - it was the incredibly welcoming community that made XGL/Compiz easy to install and usable. Thanks guys!

The final big hurdle for XGL lay with the hardware manufacturers. While XGL already uses your videocard's horsepower, there are many ways that it can be made to take better advantage of that horsepower. Unfortunately, this requires videocard manufacturers (eg. Nvidia, ATI) to release drivers that support the necessary "GLX extension(s)". However, once this happens (it's looking like 1 or 2 driver releases away for Nvidia, unkown for ATI), XGL will be even faster. I'm not 100% certain, but I assume it's safe to say that this would drastically improve OpenGL game performance under XGL as well. (OpenGL application performance is one of the few areas of difficulty with XGL right now.)

Over the next few months, I think we can expect community contributions to continue to be steady as there's still a large amount of enthusiasm. Personally, I'm hoping we'll see Compiz themes and more cool plugins in the coming months. (Hint: Pixel shaders are a Compiz plugin goldmine waiting to happen.)

Lastly, if you want to stay up to date on the latest and greatest happenings in the XGL/Compiz world, here's some links you'll find useful: