Linux Graphics Drivers

Robin Rowe

Issue #96, April 2002

Linux graphics performance is affected by your choice of graphics hardware, video driver and graphics interface. Let's take a look at the open-source XFree86 server, the commercial Xi server, ATI Fire GL workstation video card, NVIDIA GeForce3 Titanium game video card and the Wacom tablet Linux drivers.

XFree86 is the best known X server because almost every Linux distribution includes it. This technology provides the X Window System graphics underpinnings for most Linux desktop users. “The January 2002 XFree86 4.2 release included anti-aliased fonts, a lot of bug fixes and many new drivers including the RADEON 8500 and Matrox G550”, says XFree86 President and Release Manager David Dawes. Dawes is a board member and senior software architect at Tungsten Graphics, a startup founded by some former VA Linux employees to work on drivers, OpenGL API extensions and DRI.

ATI Fire GL 8700

Luxi scalable fonts, both TrueType and Type 1, are part of the 4.2 release. Bigelow & Holmes, Inc. donated these new fonts created in Ikarus digital format, and URW++ Design and Development GmbH did the TrueType and Type 1 conversions.

XFree86 4.2.0 provides a partial implementation of the new X Rendering Extension. Using simple compositing operators provided by most hardware, Render can draw anti-aliased text and geometric objects as well as perform translucent image overlays. Still to be implemented are geometric primitives and affine transformation of images. Just three applications have been modified to provide anti-aliased text in 4.2.0: xterm, xditview and x11perf.

Several 4.2.0 enhancements affect Darwin Mac OS X. On Mac OS X, a new rootless mode was added to allow X clients to display windows on the Aqua desktop. XDarwin now supports Xinerama, the capability to have windows span two monitors.

Asked what is at the top of his wish list for the next version, Dawes says it will be making XFree86 easier to install. “We keep making progress on that. For 4.3, I'm planning to be working on that myself.”

Commercial X servers such as Metro-X and Xi Graphics offer alternatives to XFree86. HP and IBM also produce proprietary X servers, bundled with their workstations. Metro-X maker Metro Link has shifted to the personal video recorder TV set-top box market. “Linux Metro-X is no longer in development, but is still available”, says CEO Morgan Von Esson. “The $25,000 PVR SDK market is our focus now.” Metro Link is working with the ATI as a technology partner on the ATI set-top HDTV reference platform. Metro Link made a significant contribution to XFree86 4.x by donating its runtime loader. That enables XFree86 to load drivers dynamically, even on operating systems that do not support dynamic link libraries.

PNY Verto NVIDIA GeForce3 Ti200

Xi Graphics first released version 2.0 of its Accelerated-X Summit X server in November of 2001 and has been adding support for even more graphics cards since—now over 30 cards and laptops. The XiG Accelerated-X server comes in models for desktop (DX), laptop (LX), multihead (MX) and workstation (WX). “The big appeal to our product is lifetime support, performance and stability”, says CEO Dave Methvin. “We support the concept of freeware, and we contributed our Solaris laptop PCMCIA fixes as open source. However, XFree86 doesn't offer the testing and support we can with a commercial product.” While still a student in Germany, XiG CTO Thomas Roell ported the original X Consortium implementation to the Intel x86 platform by himself and donated that to MIT (and thereby later XFree86).

Accelerated-X features include the Color Magic color management system, DualView for dual-head displays, Video Window for high performance YUV display, Stereo 3-D viewing for shutter glasses and Power Throttle to conserve power on laptops. Accelerated-X can throttle the CPU using APCI and even turn off components of the graphics hardware when not needed. Methvin says that can add two hours of battery life to laptops over XFree86.

For accelerated OpenGL, XiG utilizes a leaner API called XDA, not DRI. “DRI is way too big and complicated”, says Methvin. “We've had some conflict with XFree86 about their design.” Installing Accelerated-X presents some challenges to XFree86 users because the two systems don't like to coexist. Accelerated-X wrote their own optimized implementation of OpenGL and recommends uninstalling Mesa first to avoid installation conflicts. OpenGL applications developers running Accelerated-X should download the XiG OpenGL development kit to replace the XFree86-compatible Mesa developer package.

The Wacom Cintiq ($1,900) combines a 15" LCD screen and a wireless pen with 512 levels of pressure sensitivity. Linux-based animators may draw directly on screen.

XiG offers a free download of a time-limited evaluation copy. In fact, you have to download the evaluation copy in order to buy it. Until unlocked with a purchase key, Accelerated-X will only operate for 25 minutes at a time. (You may restart it as many times as you like.) DX models cost from $39 to $99, LX from $69 to $139, MX from $129 to $249 and WX from $129 to $379. We installed the $99 DX RADEON Platinum edition.

The documentation was a little confusing mainly because we had questions about what to do with XFree86 and Mesa, which we already had installed.

Accelerated-X installation follows these steps:

  1. Disable graphical logins and exit the currently running X server.

  2. su root.

  3. Remove or disable Mesa.

  4. Remove or disable agpgart kernel module.

  5. Install the Linux kernel source.

  6. Install the X services module (XSVC) RPM.

  7. make xsvc.

  8. make xsvctest.

  9. If necessary, make the kernel with appropriate MTRR, AGPGART and SMP settings.

  10. Install the Summit RPM.

  11. Run Xsetup to configure the graphics board, monitor and mouse in text mode.

  12. Run startx.

  13. Run Xsetup again to configure advanced options in graphics mode.

We experienced a few extra hurdles because we were using Debian, not Red Hat. We converted the RPM files to deb format using alien. Our high-performance ASUS A7A266 motherboard was unsupported, as xsvctext revealed, meaning we didn't gain AGP acceleration. Probably because of the converted deb files, we had to add the xsvc modutils alias manually and create .xinitrc and .xserverrc files.

# vi /etc/modutils/aliases
.
.
alias char-major-10-175 agpgart
alias char-major-10-179 xsvc
.
.
tbird:/etc/modutils# update-modules
We had to kill gpm and select MS IntelliMouse in Xsetup to get our optical Logitech MouseMan Wheel mouse to work.

XiG plans to continue to grow Accelerated-X as its primary market. “We're moving into the high-end workstation cards”, says Methvin. “We're really impressed with the power of the new high-performance cards. We just released a driver for 3DLabs Wildcat II 5110.” XiG OpenGL support is being upgraded from version 1.2.1 to 1.3.

XiG doesn't support NVIDIA cards. “We'd like to support NVIDIA cards”, says Methvin. “But, NVIDIA won't provide the specs. We have to content ourselves with writing faster drivers for competitor ATI.” Methvin's biggest complaint with the X Window System is the number of desktop configurations to be supported. “GNOME is tied to XFree86 in ways that tend to break other X servers, and there are just too many desktop window managers. I think not having one standard desktop is holding back application developers like Adobe from supporting Linux.”

Graphics card manufacturer ATI acquired Fire GL Graphics and their line of workstation graphics cards in April 2001. Workstation cards such as the Fire GL are intended for 3-D animators and engineers, not consumers. In other words you might play Quake on a high-performance game card such as the ATI RADEON, but a game designer would use an even higher-performance Fire GL when creating the 3-D world for a game or for special effects in motion pictures. What differentiates these cards most is the OpenGL acceleration performance. Other pro-Fire GL advantages include high frame rates in multiple windows, double buffer overlay, dual-monitor support, plus greater stability, reliability and technical support.

ATI kept intact the German Fire GL Linux driver team. The Fire GL driver is a closed-source driver and probably always will be. “There are intellectual property and competition issues in taking a closed driver to open source”, says Director of Workstations Ed Huang. “We believe we have the fastest OpenGL implementation for Linux and don't want to show competitors how.”

XFree86 and MacGimp with a Mac OS X Finder window open showing the two different window systems operating together.

The Fire GL 2 and Fire GL 4 use the same closed-source driver. ATI has taken a different strategy for the RADEON. It is an open-source driver. The top-end Fire GL 4 costs about $1,500 (at buy.com) and the less-expensive Fire GL costs about $725 (at cdw.com). Two new Fire GL models are replacing these. The Fire GL 8800 will be the first ATI-developed Fire GL card since the acquisition, and the first based on the RADEON chipset. This 128MB card, with about 50% better performance than the Fire GL 4 in most applications, is expected to cost less than $900. The Fire GL 8700, based on the RADEON 8800LE chip with 64MB, replaces the Fire GL 2. It has about 50% better performance than the GL 2 and should cost less than $400.

All the Fire GL cards use the same Linux driver. The Fire GL driver (currently for XFree86 4.1.0 with libc 6.2) is available on the ATI web site in .tgz or RPM format, about 5.5MB.

Graphics chip manufacturer NVIDIA's new high-performance game card, the GeForce3 Titanium, is offered in Compaq, Dell, HP and IBM PCs. Their graphics cards are also standard in all Apple desktops and in the Microsoft XBox. NVIDIA has had a good year, with its stock the best performer in the 2001 S&P 500. The GeForce3 models include the Ti 200 (about $160), and the even higher-performance Ti 500 (about $300). These feature fast high-resolution anti-aliasing on the GPU (HRAA Quincunx), DVI out and TV s-video out. For content creators, NVIDIA offers the even higher-performance Quadro2-Pro card (about $615).

For Linux users perhaps the most interesting aspect of the NVIDIA card is its unified driver architecture. “We use the same unified driver code for Linux and Windows for all cards”, says software VP Dwight Diercks. “Our Linux driver is ready at the launch of a new board just like our Windows driver. We release both Windows and Linux drivers within 60 days of new graphics chips being manufactured.”

OpenGL 1.3 is fully implemented and shipping on all platforms. “Our unified driver architecture gives us a single driver binary across all our cards”, says director of OpenGL and Linux workstations Nick Triantos. “When we make a driver performance optimization it applies to all our products. Other companies supporting multiple drivers can't keep them current.”

Diercks says NVIDIA reuses as much driver code as they can. “The major internal difference is the OpenGL GLX layer for Linux and the Wiggle layer for Windows. All the optimizations, new features and extensions come to the Linux side without much work.” Nvdriver is a Linux kernel mode driver. The Windows driver is a VXD miniport driver.

The Linux Nvdriver is a closed-source driver. There is also an open-source NVIDIA driver offered as part of XFree86. The open-source driver has the important 2-D functionality (accelerated video, DVD playback and monitor detection), but OpenGL 3-D acceleration was lost when the XFree86 architecture changed in 4.x.

Led by architect Mark Voikavich, NVIDIA has a team of ten engineers supporting Linux. Although Microsoft's proprietary DirectX protocol obviously isn't part of the Linux driver, all the other driver features are in Linux. “Linux has full TwinView dual-head support”, says Diercks. “Linux laptops have multihead technology for monitor output for presentations. The user can drag windows between screens.” The Linux driver is actually a little leaner than the Windows driver because it doesn't have to duplicate functionality offered in OpenGL and DirectX. Depending upon configuration, the Linux driver can have faster performance than the Windows version.

NVIDIA works closely with the XFree86 Project. “In the future we're looking at more support for laptop features, such as hotkeys to move windows dynamically between displays”, says Triantos. “There's no interface in X to make a window appear on just one screen.” Another feature missing in X is a mechanism to do screen captures of accelerated windows. In Windows there is a callback hook to the driver, but to capture an accelerated screen in Linux requires help from the application, such as pressing the F11 key in Quake to do an OpenGL glReadPixels screen capture. Because accelerated windows blow a hole in the desktop to write to, it takes extra effort to capture them instead of a solid black window.

NVIDIA recently released their Personal Cinema graphics card to compete with the ATI AIW RADEON. “Personal Cinema provides video editing and video capture, but those features aren't available in the Linux driver”, says Diercks. “We're interested, but not sure there is enough of a demand there for Linux.” The ATI AIW RADEON, on the other hand, has a new Video4Linux driver for video capture.

NVIDIA uses Linux extensively in their chip development. “We use Red Hat 6.2 Linux on a 1,500 server computing farm”, says Diercks. “Our engineers test the progress of our chip designs with that.”

The XiG Xsetup configuration tool enables quick adjustment of color temperature using the Color Correction Wizard.

Not all graphics-related Linux drivers are for video. Wacom tablets are popular with GIMP users and with motion picture animators working on Linux workstations. XFree86 developer Frederic Lepied is responsible for the Wacom Linux drivers. “In my previous job, we needed to access the Solaris X server through a tablet, and the protocol for the Wacom IV devices was available from Wacom's web site”, says Lepied. “I later ported my Solaris Wacom driver to Linux XFree86. Making the XInput extension work in XFree86 is how I became an XFree86 developer.”

Linux Wacom driver development started in 1995. Lepied is the only developer, but he receives contributions from many people. The development is a continuous effort to support the new models. Lepied's work is supported by Wacom, but sponsored by his employer MandrakeSoft. Lepied is a team manager and developer of the Mandrake Linux distribution. The open-source Linux Wacom driver supports Wacom IV, Wacom V and USB protocols.

Resources

email: Robin.Rowe@MovieEditor.com

Robin Rowe (robin.rowe@movieeditor.com) is a partner in MovieEditor.com, a technology company that creates internet and broadcast video applications. He has written for Dr. Dobb's Journal, the C++ Report, the C/C++ Users Journal and Data Based Advisor.