To fully understand the controversy that surrounded the announcement of OpenGL 3, we have to go back a few years to 2002. At that time, as we said in our introduction, OpenGL was losing ground. Up until that point, DirectX had simply copied the capabilities of OpenGL. This time, however, SGI’s API had been overtaken. With DirectX 9, Microsoft introduced support for a high-level shader language, HLSL, and OpenGL had nothing to compare. It is important to note that OpenGL’s origins lie with IRIS GL, an API initially created by SGI to expose the functionality of its hardware. For a long time, ATI and Nvidia simply followed SGI’s rendering model, which meant that OpenGL was especially well-suited to the makers’ cards even before they were released. But with the introduction of shaders, the new GPUs moved away from the traditional rendering pipeline.
At the time, one company realized the importance of the need for a rapid evolution to OpenGL if the API had any hope of being applied to modern GPUs: 3DLabs. That’s not surprising, because 3DLabs abandoned gaming cards after its Permedia 2 was EoLed to concentrate on the professional market, where OpenGL is the standard. 3DLabs presented a plan with several points for bringing OpenGL into a new era. First was inclusion of a high-level shader language: GLSL. Then it called for complete revision of the API. Many of its features no longer made sense on modern 3D cards, but the need for backward compatibility required GPU manufacturers to support them at least at the software level. Not only does that make writing drivers more complex, increasing the occurrence of bugs, but the legacy capabilities also made the API confusing for new programmers.
So 3DLabs wanted to expose a subset of functionality that would guarantee efficient execution by the GPU and eliminate outmoded or redundant features. This subset was called OpenGL 2.0 Pure and was intended for developers of new applications. For backward compatibility, the full set of extensions in OpenGL 1.x was available in Open GL 2.0.
Unfortunately, after interminable discussions within the ARB, the plan was rejected. And when OpenGL 2.0 finally became available, all it did was to add support for GLSL to the API. All of 3DLabs’ other proposals ended up in the trash, leaving OpenGL still lagging behind the Microsoft API.