he Matrox TurboGL
OpenGL was long thought of as an API for high-end 3D applications, and it still is. It wasn't until the release of GLQuake that OpenGL became useful to the masses. This caused everyone to demand OpenGL support from their 3D accelerators.
3dfx was the first to offer support for GLQuake through a miniGL driver. This driver only contained the commands necessary for GLQuake, which made for a number of tradeoffs - it could be very carefully optimized for the intended application (GLQuake in this case), but the fact that it was incomplete prevented its use with high end applications. 3dfx continued this route until Quake 3, with its more demanding OpenGL requirements, was released. At that time, 3dfx released a full OpenGL ICD.
Matrox decided to write a special purpose driver in order to improve their OpenGL gaming performance. They plan to continue work on their full OpenGL ICD to support graphics professionals, but they have also allowed a second driver team to work on a mini ICD driver optimized specifically for games, known as the TurboGL. Unlike the 3dfx miniGL, which converts OpenGL calls to Glide calls, this is not a wrapper of any sort, but a carefully optimized driver that only functions with games.
The reasoning behind a mini ICD, according to Matrox is as follows:
While Matrox continues to optimize and certify it's full ICD for all application areas (including high-end professional OpenGL applications such as 3D StudioMax), we have dedicated parallel resources to develop a mini-ICD that provides game enthusiasts increased performance on selected popular gaming titles and platforms. The Matrox G400 TurboGL increases performance when running Quake II, Quake III, Unreal and Half-Life on a Pentium III or an AMD K7 system.
The mini-ICD will be integrated in the 5.30 driver that is scheduled for public release on October 8. The 5.30 driver will use the Matrox G400 TurboGL driver automatically when it detects the above mentioned systems and games. Games that are not supported by the Matrox G400 TurboGL will automatically use the full ICD also integrated in 5.30.
The fact that only Pentium III and Athlon CPU's are supported is the thing that stands out the most. This means, of course, that there will not be any support for Pentium II's or Celerons. At first glance, it also seems that K6's will not be supported either, but there is still hope. When questioned about why they made the TurboGL for the Pentium III and the Athlon only, Matrox told AnandTech that the driver relies on SSE or 3DNow! to achieve its performance gains. Thus K6-2/3 support is a possibility, but as it stands now, they are not officially supported. We would love to tell you if the driver works on an Athlon or K6-2/3, but the beta version is Pentium III only, so no Athlon support either. Using the TurboGL on any other CPU simply causes a crash to the desktop. This is quite unfortunate as the Celeron has become one of the most popular CPUs with AnandTech readers as its great overclockability and low cost is a combination that is nearly impossible to pass up.
There are a few other issues concerning the TurboGL at the moment. Only games based on the Quake, Quake 2, or Quake 3 engine are supported, but support for Unreal and its derivatives will be implemented with the official release. Of course, this may not be necessary as the guys at Epic have made huge improvements in their Direct3D performance to the point that it is considerably faster than OpenGL. Image quality is every bit as good as the full ICD in any of these games. Both 16-bit and 32-bit rendering are supported, with 16 or 32-bit Z-buffers as requested by the game. Further, the TurboGL is Windows 9x only, so NT 4 users are out of luck. Currently, there is also an issue with the way the driver reports the color depth (it always says 16-bit), but the difference between 16-bit and 32-bit rendering is clear in Quake 3 and the driver definitely supports 32-bit.