A really nice company out in Colorado, USA called Xi Graphics, Inc. makes a product called Accelerated-X that is simply amazing. I've been using their product since version 2.1 a few years back, and it just gets better with each new release. This article is an in-depth review of the standard, laptop and OpenGL versions of Accelerated-X. Keep in mind that I'm doing this review of my own free will, simply because I think it's a great product, and when coupled with the fantastic Linux operating system, you've got one winning combination. I'm receiving nothing for these reviews and they're completely unbiased.
At home, and the machine used for the upcoming benchmarks, I have a Dual 166MHz Pentium (SMP), 160MB of RAM and an #9 Imagine 128 4MB video card. Needless to say, this machine is blazing fast (would be faster still with fast and wide SCSI drives setup as RAID 0, but that's another article). Using anything less than Accelerated-X would be holding this machine back. I'm serious.
Under Windoze95/NT, it screamed (well, for Windoze) but under Linux and X windows, it was a real dog! The problem certainly wasn't the hardware! Also, I knew that it couldn't be the software, as I've seen it run fast under Windoze... Sort of. The problem was that the Imagine 128 card was supported but not accelerated. That is, all of it's hardware acceleration features were completely unused. Without them, the board was a plain old VGA with high resolutions. I knew exactly what I needed, having heard of Accelerated-X before. There's also another company, called Metro Link that makes an X server as well (Metro-X), but I preferred Accelerated-X's setup and speed, having worked with it on a stock Red Hat setup. I also felt more comfortable with Xi Graphics and their product because of the specs, the features and of course because my card was supported (Accelerated-X supports a staggering number of video cards and monitors). Plus, it was only $99.00 which isn't bad considering everything else, software-wise for Linux was free!
I installed it following the directions in the manual (well documented and correct) and within 10 minutes, I had one wicked fast X server! The difference in display speed was to say the least, amazing! I now have a 1152x900 with 16-bit color desktop that's quicker than anything I've ever seen Windoze do. I can do 1600x1280 once I get a nicer monitor (I'm thinking Viewsonic GT815, also known as the "Mega Monitor")...
The install (and uninstall) couldn't be easier. You have your choice of setup as either a nice color ncurses application or an X version that lets you select all the options needed. It's as simple as point and click, and the options are easy to understand. Once done, start up X the usual way (with startx) but leave off the usual "-- -bpp xx" for your color bit-depth (it's already set to your depth by setup). That's it! The software comes on two floppies up to v3.1 and on a CD as of v4.1, and it's fairly small overall and installs in a blink. It will not overwrite your current XFree86 X server, should you have one in place - making an uninstall later on equally easy and painless.
One thing I noticed however, is that it likes to install it's own "xinitrc" file on my two Red Hat systems. What I do is go into "/etc/X11/xinit" and make a backup directory, copying the two (or more) files there into it. After the Accelerated-X install, just move the files from the backup directory back into "/etc/X11/xinit" and you're all set.
The only gripe I have is that I'd like to see more capability to really hack your monitor setup. I tried modifying the files for a Viewsonic 17" monitor to work with my Viewsonic 21" monitor, but it turned out to be a little crazy, and in the end, didn't work. The supplied monitor types cover a great number of monitors, and you should definately find something that will work well with your setup, but I'm talking about really fine grained tweaking. The new version, v4.1 has customizable monitor temperature and refresh rate settings. One other thing that would be cool is good support for graphics tablets - I own a CalComp 12x12 Drawingboard II myself, and would love to fire it up under Linux. No great rush there, as no applications support tablets yet, save for the Gimp, which is getting close, I think.
One thing I'm wondering, is the version numbering scheme. I've used the software since version 2.1, which then went to version 3.1 and then 4.1. A little odd, but hey, it works and works well, so it doesn't bother me any!
You should see Netscape and similar apps on this thing! You can literally drag your mouse up and down as fast as you can and still see every single line and image (24-bit JPG even!) go flying by without a glitch. In X-speak, you can drag "fully decorated transients" around without a burp! I can't wait to see what happens when I upgrade to a Pentium Pro, PII or Alpha.
The image you see to the left is a screengrab of my machine, in 1152x900 resolution at a 16-bit color depth. Shown are six xanim programs running, displaying a 320x240 24-bit Microsoft Video encoded AVI with 16-bit stereo sound that I had created in 3D Studio Max under Windows NT v4.0. All videos played without any noticeable jerkyness (although one or two frames dropped here and there, but very rarely). At the bottom is a hacked xcpustate program that shows the two 166MHz Pentiums cranking away (top two bars). As you can see, the machine is at maybe 80-90% utilization. I can still perform normal tasks on the machine with very little perceivable lag. Somehow, I could never coax NT to perform this well.
Version 3.1 which was released a while back offers some really incredible new features, my favorite of which is the capability to do "overlays" - which allows you to run the previously 8-bit-only WABI in 24-bit mode, so the rest of your X apps don't suffer. It also supports gamma correction. This product just keeps getting better and better, and it's still blazingly fast. Quite honestly, I wouldn't run anything else. I've tried Metro-X and didn't really care for it, but that's just me.
Version 4.1 which was just released (October 20th, 1997) offers many new features, including faster server/client communications, monitor temperature adjustment, better 24-bit implementation and more.
I want to clear up one misconception right off the bat. Neither Accelerated-X or even Metro-X support hardware 3D acceleration! They do it through software. Curious that Metro-X mentions this on their site, but not Xi Graphics. However, Xi Graphics is developing a 3D hardware accelerated X server. See their Website for more information. Basically it's still under development though.
The OpenGL version of Accelerated-X is more or less functionally equivalent to a similar Linux system with the Mesa libraries installed. The primary difference is in the level of compliance in the OpenGL implementation - Accelerated-X being the best, true implementation. SGI's GLUT toolkit is provided along with a large bunch of other demos - making for a fun evening of tinkering with OpenGL. There are other OpenGL tools out there too, to use with Accelerated-X: using VTK (the Visualization Toolkit) and BMRT (Blue Moon Rendering Tools, a Renderman compliant renderer) you can do some really incredible 3D graphics programming. Using another package, you can create a VRML server for the internet which allows clients to manipulate spatial information on their end, while your machine calculates new VRML code and sends it back. VRweb and VRwave are two VRML browsers for Linux - the former being 1.0 compliant and the latter 2.0 of VRML. If you're into 3D modelling, check out a really promising program called Moonlight Creator which uses OpenGL (or Mesa) for it's previews. There's also AC3D, 3DOM (which are free) and Ez3d (which looks simply phenomenal, but alas, there's no Linux version... Yet. For more applications that use OpenGL, especially on the Linux platform, check out the Mesa home page and SGI's Gateway to OpenGL Info and OpenGL WWW Center. Of course, there's the OpenGL Web Site as well. If you're into 3D Studio R4/Max like I am, be sure to check out David Farrell's 3DS->OpenGL converter!
Very cool stuff. I warn you though, you will need a FAST machine to really appreciate this stuff. My dual 166MHz Pentium was barely sufficient for some of the more advanced stuff, but handled most of the demos fairly well. An SGI it sure ain't...
To sum it up, the OpenGL version of Accelerated-X provides you with an OpenGL compliant library and development kit to develop OpenGL applications or run existing ones. It's aimed primarily at programmers and people with graphics applications requiring OpenGL. If you wish to use OpenGL programs relying on Mesa, you'll need to recompile/relink them to use standard OpenGL libraries (and hence, Accelerated-X's).
As an aside, I had some problems compiling the GLUT toolkit and sample/demo programs on my two systems. This may be due to the Red Hat structure and not applicable to other distributions, and is the fault of the GLUT package, and not Xi Graphics (it does this even in the newer version of GLUT, v3.6). I sent an Email to the support staff at Xi Graphics, and within sixteen (16) minutes, I had an answer that solved my problem. It doesn't get much better than this, folks. To fix the problem, edit your Makefile(s) and find the line that reads:INCROOT = /usr/X11R6/include
...and change it to:INCROOT = /usr/X11R6/share/include
After making the above modification, all example/demo programs compiled fine.
One thing I'm thinking of is using one of the programs included that does a sort of benchmark. If there are enough of you out there willing to run this program and send me the results, I'll make a benchmark table. I have access to four machines, personally - a 486 DX2/50 laptop, a 486/66 desktop, a 100MHz Pentium and a dual 166MHz Pentium desktop. I'm wondering also if a comparison between the Mesa libraries and Xi Graphics OpenGL implementation would show any interesting speed differences.
If you have a 3D accelerated video card, be sure to check the list of supported hardware. There are currently only a few listed, but Xi Graphics Inc. is very good when it comes to supporting video cards. They constantly release new drivers.
One thing that I'm wondering, is if you have binaries compiled for the Mesa libraries, how to utilize the real OpenGL libraries instead. I don't think this is possible without a recompile or relinking, so binaries like QuakeGL may just not work with this real OpenGL implementation, forcing you to use the Mesa/GLIDE combination it expects (and thereby limiting you to the 3DFX/Voodoo chipset. If there's someone out there that knows more about this, I'd love to hear about it, not being a hardcore programmer myself (at least at the moment). I'd just love to run QuakeGL under this setup - for purely professional interests, of course...
I'm not a Motif programmer, so I can't say much here, except the product performs indentically to the desktop version, with the addition of several key features for you Motif hackers out there. It comes with the libraries and demo programs you expect, as well as the mwm window manager.
The install was completely painless and nice. Everything went as expected, and I was able to run the mwm window manager quite easily. I must admit, I'm spoiled by the AfterStep, E and fvwm95 window managers, so mwm was a little too spartan for my tastes.
All in all, it's a very complete implementation of Motif. Between this package and the OpenGL version, you could turn your Linux box into one hell of a development platform to port software to just about anything out there. You can also create statically linked binaries for distribution of your software.
As I said, I'm not a Motif programmer, so I couldn't compare this directly with the Lesstif/Mootif freeware out there, but the thing to keep in mind is, this is the real deal here. Depending on your Motif requirements, the Motif version of Accelerated-X may be the only way to go, if you want the real thing.
The resemblance to other Unices out there, like Sun, with their OpenLook desktop is uncanny, however. If you're into that sort of thing, this is definately the solution to a professional implementation.
Well, there's not too much to say here that's different from the normal desktop version, except for a few items. First off, the install and feature set are identical to the desktop version. One thing that I found odd was that the monitor selection was identical to the desktop version. There were no listings for different LCD panels. On my laptop, I'm limited to a resolution of 640x480, so I selected a "standard VGA" monitor as my screen type. X started up and looked beautiful, as expected. The surprise came when I shut it down - the screen went white and then faded to black, never to return short of a reboot. My guess is the timings or the reset function is off. This also happened with version 3.1, which was on the machine. I can only assume that for new laptop screens, you would select "Super VGA" as the monitor type. For external monitors, it's a little obvious what to do, as you just choose whatever's hooked up externally as your monitor type. Perhaps LCD screens are handled internally or according to your chipset.
I kludged a solution to this. I have the APM extensions compiled into the kernel, including the all-important halt/power-off on shutdown, if you use the "-h" flag. I made an icon that runs "shutdown -h now" command, so that if I want to exit X, then it's a one-way ticket to power-down status. I would however, really dig it if I could return to text mode after leaving X. I don't know if this is because I didn't select the right monitor (LCD) setting or what. There may be a workaround to this if I use SVGATextMode to set a "graphical text mode" on the system. I'll have to try this. Another way around this, is to use an external monitor and shut off the internal LCD. Then I can start and exit X with abandon. I just don't feel like carrying a monitor on the train with me...
Another anomaly that I found was that my xterm, xterm_color and rxvt didn't work anymore. Also non-functioning was my Netscape. I thought this was bizarre, so I did some digging. Apparently, when I upgraded to the new version of Accelerated-X, the binaries were larger in size, pushing my previously usable 16MB of RAM over the brink. Due to very tight disk space, I didn't put on a swap file/partition, and when loading these larger binaries, the system just pukes. Lesson to be learned? Have plenty of RAM, hard drive space and a swap file or partition! I can't blame this on the Accelerated-X product, and neither should you.
CDE VersionComing soon! (possibly as a seperate page)
For more details, check the Acclerated-X products page over at the Xi Graphics Inc. web site.
Also, be sure to check out the rest of my web site!
Lastly, congratulations to Mr. Thomas Roell over at Xig Inc. as he was recently interviewed in the Linux Journal. Das war ja ganz toll! Of course, a hearty thanks to the fine folks over at Xi Graphics Inc. who have been extremely friendly and for making such a fine product for Linux (and other OSes). Now go out and buy it.