A Need For Change
Another example demonstrates the ARB’s inability to make rapid, efficient decisions. For a long time, OpenGL relied on a technique called pbuffers to render textures. All programmers agreed that the technique was very poorly conceived, difficult to use, and yielded poor performance. So, ATI proposed an extension to replace it—über-buffers. This extension was very ambitious. Beyond rendering to a texture, ATI wanted to make it possible to render to an array of vertices, along with other advanced capabilities. It may have all been a bit too ambitious, since the extension took too long to define, programmers got impatient, and Nvidia and 3DLabs finally made a competing proposal to at least enable rendering to a texture efficiently, without the generic approach taken by ATI’s solution. It ended up taking several years to see results from all these efforts—in the form of an extension called framebuffer_object, just to offer a basic feature already in DirectX 9!
So, in 2005, OpenGL had caught up with the Microsoft’s API launched three years earlier. All of the major players (ATI, Nvidia, 3Dlabs, and the software developers) agreed that things couldn’t go on this way, or else OpenGL would sink into oblivion little by little due to obsolescence. In this agitated context, the ARB passed the baton to Khronos in 2006, putting the future of OpenGL into the group’s hands. ATI and Nvidia both swore a pledge that they would rise above their own rivalry and collaborate effectively so that OpenGL could finally enter the 21st century. Developers were enthusiastic, since the Khronos group had shown itself to be very effective in managing OpenGL ES, the 3D API for mobile peripherals.
Very quickly the Khronos group began issuing communications about the future of OpenGL. Again the plan was based on a reworking of the API in two stages. The first revision, Longs Peak, would offer a R300/NV30 level of functionality on par with Shader Model 2 and a new, more flexible programming model. A little like OpenGL 2.0 Pure, which 3DLabs had proposed years before, the Khronos group planned to drop aspects of the API that were considered obsolete and focus on a small number of modern functions. This subset was called OpenGL Lean and Mean. The second major revision, codenamed Mount Evans, was to take the new API, correct any faults that had appeared in the meantime and add R600/G80 (Shader Model 4) features. The draft timetable was very tight, calling for the arrival of Mount Evans less than six months after Longs Peak. But the members of Khronos seemed confident.
In another change from the ARB, Khronos decided to communicate more openly. An informational newsletter was made available on the OpenGL site, to begin educating developers about the new API and let them give their impressions of it. Everything seemed to be going well until the end of 2007. Whereas the final specification for Longs Peak was expected in September, the Khronos group announced that due to problems, it would be delayed—without providing any details. The effort at more open communication of a few months earlier was forgotten and the Khronos group continued its work behind a total blackout. No more newsletter—in fact, there was not any news at all about the new API’ progress.