Monday, February 20, 2006

Compiz Release Reflections: This Changes Everything.

Sorry to blog about the same thing two times in a row, but this is important.

Many of us have been using compiz and XGL now for a decent amount of time. If you are willing to try Dapper then the guide I made for Nvidia is here:

http://www.ubuntuforums.org/showthread.php?t=131267

While the guide for ATI is here:

http://www.ubuntuforums.org/showthread.php?t=131253

Guide for compiling from CVS here (needed for older Nvidia cards):

http://www.ubuntuforums.org/showthread.php?t=132406

Guide for AMD64 here:

http://www.ubuntuforums.org/showthread.php?t=131659

Screenshots here (thanks PsyberOneZero):

http://img118.imageshack.us/my.php?image=screenshot7us.png

http://img498.imageshack.us/my.php?image=screenshot19st.png

http://img498.imageshack.us/my.php?image=screenshot23tg.png

http://img131.imageshack.us/my.php?image=screenshot39dc.png

http://img131.imageshack.us/my.php?image=screenshot47pr.png

If you must have stability I might not recommend it, but I can admit that once the shift + backspace bug was squashed then it all got pretty stable for me. Opengl applications work well if you disable the composite extension in your xorg.conf. For some people compiz seems to not work without that extension though, which means yet another problem we have to chalk up on drivers not being ready ready yet.

But today is not a story about what does not work in this brave new world. I could go on and on about how Twinview (maybe Xinerama) is broken or this or that thing. I thought that after it came out I would have a whole blog entry about that. “What will XGL break?” was the question I wanted answered the most.

Whats amazing about this HUGE release is not what is broken, but what is fixed. What problems are gone:

  • The problems with the official ATI drivers (and in some ways the Nvidia driver) had with composite? Gone.
  • The problems of a fragmenting acceleration landscape (renderaccell vs. EXA vs. ATI's nothing)? Suddenly less worrying.
  • The problems of damage issues with certain apps, drop shadows, or other simple things that need composite to be fixed? In the past.
  • Problem with the fact that the years of poured resources into accelerating only two things (Opengl and Directx) by ATI and Nvidia were not getting used to the full potential for Linux eye candy? Fixed.
  • Problem that Gnome with its conservative window manager philosophy might take two releases to use this stuff? Or that something made for Gnome would piss off KDE guys? Fixed in an amazing way- a separate, agnostic window manager. Compiz seems to be made to work with Gnome more (but it works with KDE too). The next KDE release will surely have incorporate the tricks wanted from it. And until Gnome jumps on this its users can be happy with compiz (and maybe even after Gnome jumps on it if they do it conservatively). Its the best of all worlds.
  • Problems with XGL not being a end-product Xserver? Fixed with full screen mode. I don't think anyone (who is not not incredibly nerdy) would sit in front of an XGL box and say “this is just junk running on top of another Xserver.” It's really seamless. Xegl will be nice one day, but we don't have to wait for it.
  • Problem with ATI support for newest eye candy? IF they keep their promise to Novell to support XGL fully this is gone as well. Something finally impressed them.
  • Problems that future development eye candy would lead to greater desktop fragmentation? This is a part of the Xserver that is one of the few common threads on the Linux desktop.
  • The problem that such high end eye candy will exclude those who don't want to use closed drivers like ATI's or Nvidia's? This problem can't show its head for a while- this will probably work well on Intel graphics (with open source drivers) and the old Radeons but no one knows until the drivers are updated. Anyone who would complain will have their hands busy with that problem so that they can know if their argument have any merit in the future.
  • Problems with composite artifacts or hard Xserver crashes because of composite? I have not seen a single artifact and I am picky about these things. It's gone for the most part.
  • Problems of comparisons with Vista or (God Forbid!) OSX about eye candy? Now a little more pleasant.

The only problem that remains lies with those who don't want this because for some reason they want to keep things more primitive. Whether that's because they personally dislike eye candy or they think it's not appropriate, suddenly that faction of Linuxland matters less. Why?

Because the enthusiasm XGL + Compiz has created ensures its success. Its level of quality ensures its success. Its backing by a big power in the Linux world (Novell) ensures its success. The army of enthusiastic desktop users like myself and the over 100,000 people that have peeking into the Dapper Forum in order to try XGL ensures its success.

Also the way it was designed will ensure its success. Right off the bat the first pluggins make it so that compiz almost has every eye candy trick Vista and OSX have/will have. An Expose copy, live Alt + Tab thumbnails, translucent window borders, cube flip, etc. But beyond that the fact remains that compiz is versatile- Firefox proves that extendability is a forte of our community. Before the year ends pluggins that are insane concepts will be made. It seems that the most exciting thing to happen for the rest of this eye candy year (and maybe the next) will be new compiz pluggins. This person (who made the first third party pluggin) says that its pleasant to make them:

http://www.downwithnumbers.com/news.php?id=41

“Obviously this is a very simple plugin. But the source code for the others is available for you to look at. Things like switcher show you how to temporarily move and scale windows, while wobbly shows you how to render the window as something other than just a rectangle. The world is your oyster. In theory.”

Here is guide to using that pluggin:

http://www.ubuntuforums.org/showthread.php?t=132063

The only questions are related to how quickly the drivers can be fixed and distros can add this. If integration started now then most major Linux's could have this solid in a year or less. Novell seems to plan to. And I bet others will too. This is the future of the Linux desktop.

Its a whole new landscape.

One guy changed it all

Last note this week- it seems that Gnome (and Dapper) are not going to have Cairo themes by default. I might be wrong about this, but I do know that when I upgraded my Clearlooks Cairo went away for me and others. I will have to compile it myself I guess. I was not too disappointed because I was amazed at first when I thought it was going to get in. But hopefully some third party debs will pop up.

Till next time....


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!

http://tirania.org/blog/archive/2006/Feb-07-1.html

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."”

http://www.vnunet.com/vnunet/news/2149946/novell-boosts-linux-desktop

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:

http://www.freedesktop.org/~davidr/xgl-demo1.xvid.avi

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, “

http://dri.freedesktop.org/~jonsmirl/graphics.html

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:

http://dev.gentoo.org/~hanno/

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.

http://www.ubuntuforums.org/showthread.php?t=127090

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:

http://www.ubuntuforums.org/showthread.php?t=127441

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

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!