Friday, February 10, 2006

Compiz Cometh

Hello eye candyland.

Lots of things have been going on recently so this might be a big blog article.

The biggest news by far might be the biggest news of the year for eye candy lovers: Compiz was released! David Reveman is a genius- proof that one good developer can do the work of entire teams!

From Miguel de Icaza himself:

“Compiz is a new joint window manager and composition manager. David Reveman had to merge these into a single process to provide the kind of functionality that we wanted on the desktop”

There are some good videos of the effects on that site as well.

Some might have wondered why I did not blog about the Novell presentation. Well the answer is simple- it was all old news! It was just some hype on Novell's part. The best thing to come from it was new videos and an answer to a question many have asked- why did Novell wait so long to release the Xgl code? Its obvious now that the reason was that they wanted to release a whole solution at once to improve the image of the company during a time that best suited the schedules of those who do marketing at Novell. I am almost sure that if certain members of the open source community had not complained about it then Novell would have released the code after their presentation. All of this is ok by me since they paid for development. My only regret from their hype is that it creates expectations (users wanting to use this NOW) that the distro community cannot live up to. But like all things, it will be alright in the end.

I personally have gotten compiz to compile and run, but not very well. Not even well enough to get screenshots. Sorry. If that changes another entry will come. It seems that drivers need to be made for it and so a small delay must occur in order to really enjoy the effects. Honestly after playing with it some, the experience cannot be captured in screenshots. With the XGL and a OpenGl compositor your desktop seems to come alive! its impossible to explain, but its the biggest single leap I have experienced on the Linux Desktop. And its more stable and feature rich than I thought. David Reveman has the XGL to a point that is about six months ahead of where I thought it would be. The guy is a miracle worker.

Good news not everyone might have picked up on is that ATI has committed to XGL, which is rare for them:

“Ben Bar Haim, vice president of ATI Technologies' software engineering division, said: "ATI believes that the Xgl framework is a fundamental building block for powerful new enhancements to the Linux desktop, and we are committed to supporting Novell's efforts in making Linux a viable desktop platform."”

This is REALLY good news because ATI was slow to get on the EXA train and it seemed like composite with newer ATI cards might never come. I don't think they will be up to Nvidia's standards overnight (who will probably still have an XGL compatible driver out before ATI does) but anything better in that field is better for the desktop as a whole. Currently newer ATI cards DO work with XGL so the future looks brighter than it has for a while for owners of such cards.

Here is a REALLY good video of whats going on with Compiz, I recommend it:

Another interesting aspect of this release is the new message that Novell and David seem to be implying. Some might remember that Jon Smirl quit the Xegl project back in 2005 because he saw development on EXA as a waste (aka resources should have been spent on Xegl instead). His argument was that eventually Linux would soon need more than just EXA or even XGL. I quote:

“Xgl was designed as a near term transition solution. The Xgl model was to transparently replace the drawing system of the existing X server with a compatible one based on using OpenGL as a device driver. Xgl maintained all of the existing X APIs as primary APIs. No new X APIs were offered and none were deprecated. Xgl is a high level, cross platform code base. Is is generic code and needs to be ported to a specific OpenGL environment. One port, Xglx, exists for the GLX API. Another port, Xegl works on the cross platform EGL API. This combination provides everything needed to implement a windowing system (like the current X server) on bare video hardware. But Xgl was a near term, transition design, “

At that time Mr. Smirl made it clear to the Linux world that the XGL was just a stop gap, yet another technical demo on the way to the final solution called the Xegl. The Xegl was supposed to be the perfect Xserver that FINALLY broke away from all the problems of the traditional Xserver's past. That was the plan at least.

I think the plan has changed. I don't think Novell sees Xgl as a transition solution. Why? Well partially because they have not sponsored development on the Xegl but have sponsored “less important” developments such as a new compositor. Another reason is what David has been saying. He has made it clear he wanted to make XGL a module of Xorg that can be loaded at will.

Instead of a clean break of the old Xserver it seems that Novell (heck, the entire development of the Linux desktop) is pushing towards what some call a “kludge.” Xgl would just be another part of the Xserver for the near (as in the next few years) future, loaded by default if your computer can handle it. It will run on top of a regular xserver which will use things like EXA to fix up some of its traditional problems. The good part about a kludge is that EXA was not a waste and that such a solution could scale VERY well. Mr Smirl had this to say about the Xegl on old machines last year:

“But new systems are being designed around new hardware and they may perform badly on old hardware. You may want to consider upgrading your video hardware; graphics cards capable of decent OpenGL performance can be bought brand new for $40 and for even less used. Alternatively, you may choose not to upgrade and to continue running the same software that has served you well in the past.”

So basically “sorry, can't help you.” This always seemed like a solution that did not fit an OS that people use to revive old machines probably more than it is used on the modern hardware (an advantage Vista will have). But a kludge will scale very well. Old machines get the old Xserver with XAA and maybe some EXA. Middle and high range machines get the XGL with EXA and renderaccel. It will work.

Its not the most elegant solution, and the mere thought of such a future must seem painful to those who dream of a modern, fully OpenGL framework like OSX has. Honestly though- doesn't a kludge sound exactly like the usual Linux approach to such a problem? It has served on the past in other projects and I'm sure it will work this time. At the very least these new developments are the first really big benefit to regular users to come from a modular Xorg.

Of course many will ask “how can I try out this great stuff?” The answer is one many users hate to hear- wait. Its a big deal- way more than just installing a new window manager or compositor. Wait until its in the SUSE repos or until its released on some Live CD someone makes for it. I have dug through the many Linux Forums and it seems no community really has a lock on getting to to work consistently. Gentoo is closest at this point as this overlay has gotten it to work for many:

I can tell you from experience that it is VERY hard to get this all to work. You have to compile and patch all this CVS code that even then does not work together well without some minor hacking. I noticed that David is still putting it changes today so its best to wait for the dust to settle. SUSE might find itself a lot of new users if its the first to have packages.

I'm sorry to say that Ubuntu might not get any official XGL love for longer than some of its users would want. I have asked around and it seems there is a very small (as in almost none) chance that it will even be in the Dapper Universe repository- it changes too many things after a feature freeze. Ubuntu fans who love eye candy might have to learn how to dual boot with another Linux or get really good at compiling. Luckily in the long run (Dapper + 1) this should be made a priority if the bleeding edge history of Ubuntu has anything to say about it. Its just that XGL came during the wrong part in the development of what is meant to be the most stable and polished Ubuntu yet. If Novell wanted something exclusive that Ubuntu could not have for a while they could not have picked a better time to release. But everyone has waited so long for XGL a few extra months won't hurt- by then most of the driver bugs and other bugs will get worked out. Plus I'm sure eventually someone in the Ubuntu (and Arch, and Fedora, and etc. ) community will make some unofficial packages for Dapper.

For those Ubuntu users that JUST CAN'T WAIT I offer you one option to make you happy: use this guide on Breezy to get XGL to work with older Glxcompmgr.

With this setup you can get a taste of what all the excitement is about and see how amazing some of the effects are for yourself! Thanks to terrax and all of those who host and made the debs posted there for allowing the community to try these things out.

Another recent development in the Linux Desktop world is the release of the Metacity compositor:

There are some RPMs provided to try it out and I'm downloading Fedora right now just for that reason! I will report on how well it works, but it seems like that might involve some waiting too. From the notice:

“Things are still quite raw, so expect things to crash, your system to
lock up, effects to be unpolished, etc.”

Despite this I must congratulate on Metacity on catching up to the modern age. It might be trendy to replace it with compiz and Kwin but in the end Metacity will remain the default Gnome window manager. That means that the faster it gets better the faster it benefits all Gnome users! Keep up the good work Red Hat folk and don't let the seemingly more exciting XGL project over at Novell get in your way.

Now I must end with some sad news for Ubuntu fans. It seems that “The Great” Daniel Stone is not longer a part of the Ubuntu team. I recently emailed him about the possibility of compiz of the Dapper repository and here was his response:

“So I was thinking about putting Xgl in a while ago; I still would, and
Compiz (when it actually gets released -- there's no source for a couple
of days, unless they just released it while I was asleep). Basically,
it requires xserver/xorg from CVS, which could potentially break binary
drivers, which is a bit hairy, but I ran out of time to investigate it.

The reason I haven't been around on #ubuntu-devel or anything was that I
finished up at Canonical on the 20th of January, and I'm spending my
spare time, such as it is at the moment, on hacking rather than

So no, I don't have any plans personally, and unless someone else takes
it up, I can't see it making dapper.”

This troubles me greatly as Mr. Stone (or Dr. Stone as I call him because he fixes what ails Xorg so often) kept Ubuntu on the bleeding edge as far as Xorg goes. Ubuntu might lose its status as the premier eye candy distro after this. Its his doing that my friend's laptop works so well with EXA (running Dapper BTW) or that its so easy to install Nvidia drivers in Ubuntu. He is moving on to get more involved with Xorg and that's a good thing (as such events are accelerating) and the Ubuntu user's loss is an overall gain for the entire Linux desktop. Its just sad to see him go.

I don't know how the distro can make up for his loss- as far as I know no one else at Canonical knows near as much about Xorg as Mr. Stone does. Branden Robinson needs to stop being leader of Debian so Mark can hire him for the job. Or somebody.....even if they never do as good as job as Mr. Stone did.

So if you ever read this- goodbye Mr. Stone! You made Ubuntu THE distro for me and many others because of your hard work and we all will miss the fact that you were the developer with the largest presence on the forums (by a factor of 100). Good luck in you future with Xorg and life!

Well thats if for this time. See you after I get something to work!


Post a Comment

<< Home