[J Street Mailer (Click here).]

GRADD: Technology of the Week or the Future of OS/2 Video Drivers?- by Colin Hildinger

Let me start this out by saying this: GRADD is the future of OS/2 display adapter drivers, and every OS/2 user should read this article. I'm sure some of you are thinking, "OK, whatever, we've heard IBM talk about new technology before, but they always seem to abandon it. IBM's flushed more good technology down the toilet in the last 5 years than any other company has created in the last 20." Well, you're right, but this time it will be different.

GRADD is not only a good technology, it's IBM's only hope that there will be display drivers for future versions of OS/2 (Workspace On Demand or whatever new technology of the month they come up with). In their infinite wisdom in abandoning the individual user, IBM is slowly being abandoned by the hardware vendors they had just convinced to support OS/2. If the hardware isn't used by a company with 10,000 seats of OS/2 installed, don't look for new device drivers. There are, of course, exceptions, and I don't mean to sound doom and gloom-ish, but IBM is slowly running people off -- with one exception: IBM has convinced all the major video chip vendors to write or co-write GRADD drivers for OS/2.

The Concept

The idea of GRADD (GRaphics Adapter Device Driver) is to have an object-oriented device driver that supports the functions that video cards use to accelerate video. GRADD drivers have a common code base and the GRADD itself merely contains code specific to each video chipset. This allows chip manufacturers like ATI, Trident, Matrox, S3, and Cirrus Logic to write far less code than they did using the traditional "the hardware vendor does it all and tries to meet the spec" method. It also ensures a level of compatibility across devices, as well as providing a common code base where bugs can be fixed by IBM, the people who actually know the OS. GRADD also allows IBM to make performance enhancements in the base code that will apply to anyone using GRADD drivers. Finally, GRADD is extensible, which means that future API sets (perhaps hardware OpenGL?) can be implemented by simply extending the base GRADD code and making small changes to each GRADD.

Each function in GRADD can be implemented strictly through IBM's software routines or through hardware acceleration, so it's at least conceivable that if IBM does things right, any card with 3D acceleration would make some OpenGL gains by making some small additions to their GRADD. I think this is really killer technology. If IBM extends GRADD to include OpenGL, an industrious OS/2 programmer could create a GRADD which supported OpenGL for any video card on the market. This could be a revolution for OS/2 gaming, but I'm not holding my breath.

The History

Most people probably heard of GRADD for the first time when they installed OS/2 4.0 or the Merlin beta for the first time. There was a VGA option and a VGA GRADD option; there was also an S3 864 GRADD and a GENGRADD driver. Of course, most people just picked whatever driver was specific to their card and went on, not bothering to look at the GRADD options, some of which were slightly buggy if I recall some of the complaints I heard. This wasn't really the beginning of GRADD. GRADD is actually one of the few good things to come out of the now defunct OS/2 for PowerPC project. GRADD was the display adapter device driver model for OS/2 PPC, and was eventually ported to OS/2 x86.

GRADD finally began to come into its own (in my opinion) with the release of FixPak 5 for OS/2 Warp version 4.0. FixPak 5 made significant performance improvements to GRADD, especially in the area of OS/2's Java Virtual Machine. With a GRADD driver IBM claims that Java performance sees a significant enhancement. With FixPak 5 we also saw a taste of what's to come in the way of GRADD drivers. We got early drivers -- you have to download the package from IBM's FTP Site (GRADDBB.ZIP -- 1.1meg, requires OS/2 Warp 4 with FP5 installed) -- for ATI Rage II/Mach 64, Chips & Technology 6555X, Matrox Millenium/Mystique, S3 864/TRIO, S3 Virge/Virge VX, and a SVGA GENeric GRADD (GENGRADD) that works with ANY video card that supports VESA in its BIOS. That means OS/2 now has display adapter support for every video card made in the last several years. This is an amazing development for OS/2 users and one which should go miles to keeping OS/2 a usable platform for years to come. While the GENGRADD driver existed in the base release of OS/2 Warp 4.0, it didn't work that well, and neither did GRADD in general. The code was still fairly buggy and slow.

So Why Am I Not Running GRADD Drivers Already?

Frankly, GRADD is still not perfect. I've heard of some annoying bugs in some of the GRADD's that don't exist in the standard device drivers, but performance is generally improved. If you're running VGA mode because you just don't have a video driver for your card, or you want to show OS/2 to a friend and can't get a driver to work with his hardware, make sure and try out the new SVGA GENGRADD.


After about 10 hours of trying out various GRADD drivers on my ATI Rage II+ card, I'm not convinced that the performance improvement is as dramatic as IBM has claimed. I was going to create a table with all the data from benchmarking with Sysbench, Benchbeans (Java benchmark), and Caffeinemark 3.0 (another Java benchmark), but frankly, the data wasn't much to see and didn't seem to show any trends. A rough breakdown shows that the ATI GRADD driver was about 10-20% faster on a few benchmarks when compared to the stock ATI driver, but it was also 10-20% slower on a few. The GENGRADD driver kept up in Sysbench's DIVE benchmark but couldn't come near matching the performance on the PM benchmarks, which was expected, since the GENGRADD driver doesn't support accelerator chip features. Some things are noticeably slower to repaint using the GRADD driver, but on my system (Cyrix 6x86MX PR200, ATI Rage II+ 4 meg SGRAM) performance was certainly acceptable. The one acceleration feature whose absence was most obvious was the hardware cursor. Without the hardware cursor the cursor flashes when placed over a repainting video image.


GRADD is a truly well-thought-out technology that IBM can't afford to abandon and will not abandon as long as OS/2 is running on something similar to today's PC platform. GRADD is (to my understanding) a better model than exists for other platforms and gives IBM a true advantage that they should make use of. A small team of OS/2 device driver developers could create GRADD drivers for every modern video card in a short amount of time. Perhaps those who have worked on drivers for XFree86/2 will consider taking up the challenge? To find more information on programming GRADDs, see the GRADD section of IBM's OS/2 Warp DDK.


After this article was written a newer release of the GRADD drivers (v.071) became available from IBM. This version fixes some of the bugs from the previous release but is still not perfect. (The link in this article points to the new version.)

I have also been able to confirm that IBM is working on extending GRADD support to include hardware OpenGL. Sample code should go to developers sometime next quarter and it is conceivable that we will begin to see OpenGL GRADD's for the most common OpenGL accelerators this year.

* * *

Colin Hildinger is an Mechanical Engineer working for Enviro Systems, Inc. where he manages the network and designs aircraft heating, air conditioning, and pressurization systems. He has been using OS/2 for the last 3 years. He maintains The Ultimate OS/2 Gaming Page and the AWE32 and OS/2 Page in his "spare" time.


[Our Sponsor: WarpSpeed Computers - The Graham Utilities: the largest, most comprehensive suite of utilities for OS/2.]

Copyright © 1998 - Falcon Networking ISSN 1203-5696