TitaniumGL: A Faster Multi-Platform Graphics Driver Architecture?

Written by Michael Larabel in Display Drivers on 9 March 2012 at 08:33 AM EST. Page 1 of 4. 38 Comments.

After first being introduced on Windows years ago, and then FreeBSD and ReactOS support added last year, this week finally marked the release of TitaniumGL for Linux. TitaniumGL is self-described as a "freeware driver architecture" and carries a goal to support OpenGL on graphics cards with broken, bad, or missing OpenGL hardware drivers. Here are some benchmarks of TitaniumGL compared to NVIDIA's binary GPU driver and the Mesa/Gallium3D LLVMpipe software rasterizer.

TitaniumGL was designed for implementing OpenGL on Windows, but support was eventually added for ReactOS, FreeBSD, and then this week finally came the Linux support. TitaniumGL on Windows attempts to implement OpenGL functionality over Direct3D (i.e. translating OpenGL calls into Direct3D so that they can be executed by a host driver, which is similar to a few other software projects out there). This at least means GPU-based acceleration, but under Linux, BSD, and ReactOS the TitaniumGL library basically comes down to being a software-based rasterizer running on the CPU. However, TitaniumGL's GPU emulation on the CPU is multi-threaded and the developer claims that it can also handle NVIDIA 3D Vision.

TitaniumGL has been around for a few years and is freeware, however, it is not open-source. The Linux/BSD version of TitaniumGL simply ships as libGL.so.1, which the developer says to overwrite the system's libGL OpenGL library. (Though unless you are serious about this, you are better off just using LD_PRELOAD to load the TitaniumGL library when desired.)

The TitanumGL multi-core software renderer right now only supports OpenGL 1.4 across all platforms. There is OpenGL 1.4 with support for multi-texturing (four emulated TMUs), Vertex Buffer Objects (VBOs), anti-aliasing, and other functionality. It is a bit disappointing to see that even OpenGL 2.x is not even fully supported, especially as even Mesa is implementing most of OpenGL 3.x these days. OpenGL Shading Language (GLSL) support is also lacking from this alternative GL implementation.

Among the games that TitaniumGL is advertised as being compatible with include Neverball, Half-Life, Quake 3, Jedi Academy, TORCS, Warcraft 3, and "hundreds of other games."

TitaniumGL supports multi-threading up to four CPU cores for its emulated OpenGL support. Somewhat surprising is that TitaniumGL is currently 32-bit only. This does not make too much sense and within the Phoronix Forums, the developer says that 64-bit support still will not come for a while. "There will be 64 bit version, once. but not in these months. i dont have so mutch time in these days, i must care about different projects also." [sic]

A Phoronix reader develops TitaniumGL and the Linux version was announced on Wednesday in the Phoronix Forums. From there, you can also visit the TitaniumGL web-site and see other information about this freeware driver architecture. Within that Phoronix Forums thread, the developer also makes claims that the Linux graphics API and X11 documentation is "simply useless" and that "the quality of linux rendering infrastructures simply makes no sense."

Due to the lack of 64-bit support for TitaniumGL and rather than messing around with the 32-bit libraries, a 32-bit installation of Ubuntu 12.04 LTS was used for this initial testing. When simply LD_PRELOAD'ing the libGL.so.1 that ships as TitaniumGL, the multi-core software renderer was working. The OpenGL version is advertised as 1.4 v2009-2012/3/08 and the renderer as TitaniumGL/4 THREADs/SOFTWARE RENDERING/4 TMUs.


Related Articles