Linux

Linux: Where is it in the 3D curve?

Jack Wallen takes a look at the reasons that developers within the Linux community have been all but shut out of the 3D market and why that situation is now changing.

I must admit that it pains me to say that Linux is a bit behind the 3D video curve. In fact, I'd have to say that the entire multimedia realm is a bit beyond Linux' current reach. That is not to say it's out of reach—it's just a stretch.

Of course, the reasons for this lie in the industry’s slow acceptance of Linux as a major commodity in the market. The hardware makers have been, for the longest time, tied down to Microsoft, which has led them to keep a white-knuckled grip on the code to their drivers. Without this code, the developers within the Linux community have been all but shut out of the 3D market.

Well, times and the tide have changed, and the major players in the hardware industry are now in a state of acceptance. This new state we’re enjoying is opening up new roads—roads that are paved in glorious three-dimensional color. The roads, however, are far from smooth, as I’ll show in this Daily Feature.

Let me try to explain my meanderings. Yesterday I set out to give my home Linux machine 3D support. With the help of a 3dfx Voodoo 3 3000 card, various X server software, and a good eight hours of time, I figured I wouldn't have a problem getting Quake III or Descent III running. Well, I was wrong. Very wrong. Getting 3D video to work in Linux is not a sport for the weak at heart. It takes time, patience, and quite possibly a reinstall or two.

The problem lies with the OpenGL libraries. There just is no standard. In order to get OpenGL working on a Linux machine, you have to have mesa—but which darned mesa? Mesa is one of the Open Source solutions to OpenGL. And therein lies the rub. While trying to get 3D working on my personal Linux machine, I installed one particular version of mesa (mesa-3.2-2) that just didn't seem to have what it took. So I moved on to installing the correct version of Mesa (Mesa-3.3-5), which isn't mesa but Mesa. The difference? From what I can tell, the former is for the Caldera distribution and the latter is the standard.

Standard? We don't need no stinking standard!

Once more unto the breech...
I decided to go to the mouths of the programmers themselves. On the Loki Games site, I found some new information: a more in-depth installation procedure and a few extra hints on getting OpenGL to work.

No matter what I tried in this installation, I couldn't get either Quake III or Descent III to run well enough to play. Yes, I did have a beautiful X session running that would be the envy of many a graphic artist. The screen was sharp—much sharper than with the ATI Xpert 98 card—and would run in many different resolutions (I ran from 8 bpp to 32 bpp without any noticeable difference in performance), but those 3D games still wouldn't work!

To the 4s
Upgrading from XFree86 3 to 4, I figured I'd have better luck. I'd heard the 3D games worked well in this environment (although not as fast as on the Voodoo cards), so I thought I'd give it a try.

I managed to get XFree86 4.1 installed (it was surprisingly easy), but when I went to configure X, I was shocked to find that there was no support for 3dfx cards! I couldn't believe it! For a long time the 3dfx cards were the gamer's standard, and now Linux doesn't support them? That's crazy! How many people currently own 3dfx cards? How many people are going to rush out and buy a new card just so they can give XFree86 4 a try? (Okay, so most geeks will.) Well, I suppose I will, seeing as how it's my duty to stay on top of the Linux curve.

Fortunately, I discovered that the latest release of XFree86 4 does, indeed, contain support for these cards. In fact, the newest release of Red Hat (7) will support them (as well as 3D video) at installation.

Before I attempted the install of a newer XFree86 4, though, there was one other method I wanted to try.

Let's give Xi a try
Xi graphics makes a proprietary Accelerated X Server called, ironically enough, Accelerated X. This piece of software promises to be completely OpenGL-compatible. (Would it be the answer to all my issues?)

This particular version of X varies quite a bit from XFree86 and promises to support all OpenGL standards. But how does it fare in day-to-day tests?

Installation
The installation of Accelerated X could not have been simpler—with one small hitch. Once you install the software (and run the new configurator, the configuration routine that is not the standard), you can run startx to fire up your newer, prettier X Windows System, and one of two things will happen:
  • It won't work.
  • It will work—but deceivingly so.

Just what do I mean here? Well, the won't work part should be obvious. It's the will work part that will fool you. Should Accelerated X not break your old install of XFree86 (which is what happened to me), you’ll still have X Windows running—only it won't be using the Xi Graphics software! Huh? You read it correctly.

To test which system you’re using, run this command:
xpdyinfo | grep Xi

If you receive something akin to
[jlwallen@willow jlwallen]$ xdpyinfo |grep Xi
vendor string: Xi Graphics, Inc.
 XiG-SUNDRY-NONSTANDARD


you’re good to go.

If you did not receive the above output, you must create a symbolic link between the Accelerated X binary and the binary used on the system. Typically, you’d use the following command:
ln -s /usr/X11R6/bin/Xaccel /etc/X11/X

Now when you log out, log back in, and run startx (if your system is set to boot to run level 5, you can skip the startx command, obviously); you will see a newer, much cleaner X Windows System.

Usage
How does Accelerated X stack up to XFree86 4? In most cases, it blows it away. It's cleaner, faster, more stable (after nearly three months of use, I've yet to have a single X crash), and handles 3D wonderfully—well, except for the elusive Quake III and Descent III.

As far as games are concerned, Accelerated X is not the perfect candidate. It runs the games but much like in the previous tests, they are far too slow to play.

There’s another problem with Xi and VMware. When running VMware under Accelerated X, you’ll more than likely get an error message saying that VMware is unable to grab your mouse. This is okay. VMware will still run. The big issue is the random crashing of Windows under VMware (with Accelerated X). Because VMware was obviously written for use under XFree86, it's not quite as stable with anything else. There is, of course, mention of this on the VMware home page:

Q: I don't run XFree86, but another type of X server.

A: X servers other than XFree86 don't support the DGA protocol. VMware will not be able to run in full-screen SVGA mode. Window-mode SVGA can be considerably slower than full-screen mode.Full-screen VGA is still available.

The only problem I've come across while running VMware under Accelerated X is the random crashing. Considering what the guest OS is (Windows 98), I figure that's par for the course.

Where the Windows are clean and shiny
One area where Windows excels is standards. Because of Microsoft's headlock on the industry, Windows has enjoyed a very tight standards base, which allows the makers of hardware to know just what they’re writing for. Linux has yet to enjoy such a standard, so the support for such hardware as 3D accelerator cards, USB devices, parallel port scanners, winmodems, many sound cards, etc. is slow to appear. Fortunately, the LSB (Linux Standards Base) is taking care of that very issue.

Because Windows has such enormous support from the hardware makers, it seems that it is more suited for the applications. This is not necessarily true. What this does mean is that the hardware works with the Microsoft OS more easily. (If you've ever seen Quake III rendered on a Linux machine when it's configured properly, you'll know what I'm talking about. It's wonderful. The images are beautiful, fast, and smooth—exactly like their Windows counterparts.)

The unfortunate reaction to such an issue is that the community immediately assumes that Linux is an incapable OS. This is not the truth. If anything, it means that the hardware vendors are incapable of keeping up with a constantly growing and changing industry. While Linux continues to enjoy exponential growth, the hardware vendors only gradually offer their support. This imbalance has the unfortunate consequence of placing the Linux operating system in the dark, foreboding shadow of its competition.

You needn’t toss out that 3D card or migrate back to Windows, fortunately. The cards do work and work well. As I’ve shown in this Daily Feature, it's all a matter of which software you use and how much patience you have.
The authors and editors have taken care in preparation of the content contained herein but make no expressed or implied warranty of any kind and assume no responsibility for errors or omissions. No liability is assumed for any damages. Always have a verified backup before making any changes.

About

Jack Wallen is an award-winning writer for TechRepublic and Linux.com. He’s an avid promoter of open source and the voice of The Android Expert. For more news about Jack Wallen, visit his website getjackd.net.