Hi all, I thought I'd take a little time to write down some recent thoughts of mine regarding the state of graphics (2D, 3D, and video) in Linux. I'm by no means an expert on the subject, though I have been dipping my toes in things here and there. Hopefully, this will get people talking, especially if I said something wrong ;-) For a long time, I've been frustrated with the levels of development in many areas. Fortunately, I think things are making a big turnaround, thanks to some relatively new developments in the graphics arena. Anyway, like I said, I'm not an expert, but I thougt it would be good to try and figure out the current state of some of this stuff, as well as where it's all going. Many of us have taken the time to play with XFree86 4.0. I know that I tried out a 3.9 release last spring, though I didn't get a chance to play with many of the newer features until just recently. Sometimes, this is just because programs don't support them yet. (Some of these features I'll mention have been available on commercial X servers for a while, but I don't know of many people who use those..) Probably one of the most anticipated features of X 4.0 was the addition of Xinerama. Xinerama added the long-missing feature of multi-display support. Considering that MacOS had this ability eons ago, we're just catching up. I don't know about the rest of you, but I get very hung up on making sure that things are displayed in the way that they should be displayed. X has given me many headaches in this area, but fixes are still coming in. One thing that excited me about X 4.0 was the expanded support for gamma correction. Unfortunately, I know that not all cards are able to do this. I have an old Trio64-based card at work (that I really should get rid of, but that's another story) that apparently doesn't support gamma correction. My G400 at home, on the other hand, does support gamma correction. While I can't say that it makes everything suddenly display perfectly, I will say that it definitely improves the viewability of newly scanned images. Many of you have probably been disappointed by scanned images that appear very dark. For me, it turned out that they had been scanned just fine -- the problem was just that my monitor was not displaying them correctly. If you've come across similar problems, I encourage you to check the `-gamma' flag for X. (This may be one area where the free Unixes have pulled ahead of other OSes). For the gamers in the crowd, the biggest addition is probably the combination of DRI (Direct Rendering Infrastructure) and an integrated OpenGL implementation. DRI has been one of the `big things' that I've been peeking at every so often over the last year. In cooperation with a kernel module (the Direct Rendering Manager), DRI allows programs to communicate much more freely with the 3D acceleration hardware on modern machines, while still integrating the security that we expect from Unix-like systems. Previously, it was difficult to get high speed graphics while also allowing normal users (not root) to play the fun games that are out there today.. An emerging area of entertainment via the computer is the playback of movies, both from online sources and from local media like DVDs. One important component in modern video playback on computers is the YUV overlay. YUV overlay has two big parts to it. The first is that it converts source video encoded in Luminance and Chrominance into video consisting of Red, Green, and Blue. The second part involves scaling the image (this is also called BES, for Back-End Scaler) to a desired size. This allows video window to be maximized to the whole screen without any extra strain getting placed on the CPU. Many of the Open Source video players out there have already implemented YUV overlay, and I believe that the newer releases of SDL (Simple DirectMedia Layer, made by Loki, and used in lots of stuff) support it. Who knows when other companies like Real will start using it. The overlay system is also what allows cards such as the G400 to display video fullscreen on the second head (which is often hooked up to a TV). Hopefully the necessary tweaks to get that to work will be discovered shortly.. Another kind of overlay (I'm not sure if it's related to YUV overlay or not) is the ability of X 4.0 to accept connections from programs that need to run at 8 bits per pixel (PseudoColor), while the rest of your desktop is running at a much higher bit depth (probably 24 or 32 bits). This usually occurs within business environments where you have to run a piece of commercial software that was never rewritten with the ability to handle higher bit depths. Most people won't need it, but this is another area where Linux et al are again on par with commercial X servers. One of the most recent advancements in the Linux desktop is the addition of the XRender extension. XRender allows for much better display of fonts and line graphics. It supports anti-aliasing (or something similar, I'm not exactly sure), and even supports something similar to Microsoft (not quite sure it's an invention or not) ClearType, which improves readability on LCD panels by individually accessing the RGB segments of a pixel. Support for XRender is very limited right now, though many people in the KDE/Qt and Gnome/Gtk+ camps are actively trying to add support. Just a few days ago, I heard about a new graphics library created by Raster (one of the original developers of Enlightenment) called EVAS. I'm not sure what the name stands for (if anything), but if the buzz around it is correct, EVAS could drastically change the way we use our desktops. From what I understand, EVAS is an attempt to much more fully utilize the features of modern graphics cards. The end result of EVAS is probably going to be very similar to what Enlightenment did for the desktop -- much more eye candy. The good thing about EVAS is that it is *fast*. Hardware acceleration can do wonders. Hopefully, the rumors are true... -- _ _ _ _ _ ___ _ _ _ ___ _ _ __ Zen T-Shirt: / \/ \(_)| ' // ._\ / - \(_)/ ./| ' /(__ Enlightenment Available \_||_/|_||_|_\\___/ \_-_/|_|\__\|_|_\ __) -- Enquire Within. [ Mike Hicks | http://umn.edu/~hick0088/ | mailto:hick0088 at tc.umn.edu ]