|
HOME TOPICS SEARCH ABOUT ME Before even trying to install Linux, find out for sure if the video card in your PC works properly with Linux. |
technofile Al Fasoldt's reviews and commentaries, continuously available online since 1983 Linux needs to work better with graphics cardsNov. 11, 1999 By Al Fasoldt Copyright ©1999, Al Fasoldt Copyright ©1999, The Syracuse Newspapers You can literally see for yourself what Linux needs these days. It needs better video drivers. PCs use video drivers, written in software code, to tell their video cards how to deal with the display screen. There are all sorts of video cards and many different kinds of monitors, so there are also many different video drivers. All modern operating systems need video drivers. Because Windows used to have a monopoly in the PC operating-system market until recently, companies that made video cards created video drivers only for Windows. Most of the people who ran these companies had never heard of Linux and didn't care whether Linux PCs could use their video cards or not. That's changing, but it hasn't improved enough. Some of the major manufactures of video cards are finally cooperating with Linux programmers -- ATI, probably the largest manufacturer of video cards, is setting a good example with its cooperation -- and the results of these new cooperative efforts should show up early next year. In the mean time, however, you need to follow a little common sense. If you're considering adding Linux to that Windows PC (by setting up a dual boot) or if you're planning to dump Windows entirely by replacing it with Linux, don't do a thing until you find out for sure if the video card in that PC works properly with Linux. By "working properly" I mean performing in a way that takes advantage of the features built into the video card. Any Linux PC should be able to show a picture on any normal PC monitor using any standard video card. You don't even have to wonder if you'll get a picture. If you can install Linux on a computer, you can get a usable display. (The installation process won't work if you can't see what's on the screen. So if you can install Linux, you know Linux is working with your monitor and card.) But "working" and "working properly" are not the same thing. "Working" means a VGA display -- a screen resolution of 640 X 480 pixels using either 16 colors or 256 colors. "Working properly" means Super VGA and higher resolutions (800 X 600 and 1024 X 768 or more), 16-bit or greater color depth, depending on the card's video memory, and the use of all other display features. This last category is where Linux falls down the most. Video drivers for Linux typically deal perfectly with high resolutions -- on my main Linux PC, the video driver actually performs better than the Windows driver at my preferred resolution of 1600 X 1200 -- and they have no trouble at all with 16-bit, 24-bit or 32-bit color. (Don't write to tell me that 24-bit and 32-bit color are actually the same; they are and they're not, so let's hold that discussion off for another time.) It's the area of hardware acceleration that suffers most. If you are an experienced Windows PC user and take pride in squeezing the last drop of performance out of your 3D graphics card, you should sit down before reading the next paragraph; I don't want you to hit your head going down. Ready? In nearly every case, all the 3D features of every graphics card are ignored by Linux. In nearly every case, most of the other hardware acceleration functions are ignored. That's very bad news if you care about such things. It's only disappointing news otherwise. Lest you think I am trying to sit on both sides of the graphics fence, I'd better explain something you might never have been told about computer display techniques. Not having 3D and hardware support in the Linux video drivers means that games written for Linux won't take advantage of hardware support. They won't have the 3D effects that are generated by the chip (or chips) on the graphics card, for example. And they won't have super-fast scrolling and other advantages that come from hardware acceleration. (A note for those who don't understand what hardware acceleration means: Modern graphics cards do all, or nearly all, the work of moving images around on the screen and drawing new objects. Specialized circuits within computer chips do the actual pixel manipulation. Without hardware acceleration, the computer's own processor, the CPU -- central processing unit -- has to do all the work itself. This is, of course, slower than it would be using hardware acceleration, but it's also much less smooth in most cases.) But all those 3D effects and the hardware acceleration don't mean much in the kind of work and play that most of us engage in on our PCs. As you can imaging, without the support of the hardware chips in the graphics card, the processor has to do the work of scrolling text from page to page in a word processor. But modern PCs have very fast processors that can do this just fine without hardware support. Even real-time window dragging -- moving the window's contents instead of just the window's outline -- is only slightly impaired on a fast PC. On my 464 MHz Pentium II computer, full-window drag under Linux is about as fast as it is under Windows 98. Text scrolling works at what seems to be the same speed. This does not excuse the Linux drivers for their lack of 3D and hardware support. But it should give you an idea of the kind of problem Linux faces. Normal operations usually aren't hurt by the immature graphics drivers found throughout Linux. But "normal" at this point precludes some functions that will be routine before long. One such function that does not yet need the support of hardware acceleration is the playback of movies and TV video on Linux. Current playback methods either work stunningly well because they are specialized (such as the Gatos software for ATI All in Wonder cards) or don't work at all because they just aren't capable of doing the job. Examples in this category include most of the video MPEG players for Linux; they're all so slow playing back video that you might as well boot up Windows and view video MPEGs that way. (Linux MPEG players are so slow, in fact, that you could, if you had a dual-boot PC, exit Linux entirely and reboot into Windows and then play the MPEG video in Windows and finally boot back up in Linux in less time than the Linux side of your PC would take just trying to play the MPEG file. And I'm not exaggerating.) Another function that doesn't need hardware acceleration yet is DVD movie playback. Linux has no DVD movie playback that works as of the fall of 1999, so don't worry about how your video card will do if you have a DVD drive; it will do nothing. Another area where Linux is weak is support for hardware acceleration for OpenGL. Linux handles OpenGL graphics without a problem, but at an unaccelerated level. (There's at least one product that does accelerate OpenGL. I'll talk about that shortly.) OpenGL is a non-Microsoft invention that gives programmers a relatively easy way to create games, screen savers and graphical programs. It's widely used in Unix and Unix-like computing systems (Linux is Unix-like) but is all but unknown to the Windows public. Microsoft's most interesting screen savers among those packaged with Windows 95 and 98 run on OpenGL, but Microsoft found a way to hide their non-Windows identities. (They are the screen savers that morph into various shapes.) In nearly every case, Linux video drivers come from the XFree86 project, run, as is so much else in Linux, by volunteers who may not be able to get the cooperation of commercial manufacturers when they write the software. These XFree86 drivers -- the name refers to the free, or open source, version of the X Window system's drivers for Intel "x86"-based PCs -- are amazingly adept at all the basic tasks required of video drivers, but lack the code necessary for hardware acceleration and 3D support. Basically, the programmers who create XFree86 drivers have no effective way to access the hardware code without access to that code itself, and this means they'd need the cooperation of the manufactures of video cards. (The code for hardware access is tightly guarded and is difficult to reverse engineer.) This is changing, and all manufacturers of basic PC hardware probably will cooperate with Linux programmers within a year or two. Until then, there are only a few options for anyone who wants more than the basic functionality of the standard XFree86 driver or who wants to use a video card for which no XFree86 driver exists. The primary choice is to purchase a commercial video driver. Two companies write their own video drivers for Linux, and both of them say their drivers perform better than the XFree86 versions. Both also say they have Linux drivers that have no equivalents in the XFree86 category. Xi Graphics seems to have the widest selection of drivers for Linux. Its rival, Metro-X, is the only choice if you use VMWare, the outstanding virtual PC program for Linux. Both have accelerated OpenGL drivers. Xi Graphics, at www.xig.com, also sells a packaged version of Linux that includes its accelerated video drivers, the Linux operating system and its supporting files and the CDE graphical environment (a non-free, slower but beautifully crafted rival of the much more advanced free KDE desktop). Metro-X is sold by Metro Link, at www.metrolink.com. An advantage that Metro-X has over Xi Graphics is the use of the latest full-screen drivers in Metro-X. VMWare requires such drivers. (It's a virtual PC program for Linux that creates a complete PC within a Linux window, allowing Linux users to run Windows or DOS seamlessly.) VMWare either supplies the correct XFree86 driver or tells customers where to get it free. Installing the Xi Graphics accelerated driver disables support for normal full-screen mode in the virtual PC, but the Metro-X driver retains that capability. This is only important if you use or plan to use VMWare. Both products do what they are designed to do, but I doubt that most users would be impressed. I found acceleration disappointing in both cases. (They were faster than their XFree86 counterparts, but not by much.) Both of them also had a serious flaw in my testing, refusing to uninstall properly. Removing the drivers by the method called for in their documentation left all three Linux PCs I tested them on unstable. I had to manually reinstall the XFree86 driver for each one. |