The Good: a new release
The Long Peaks release of OpenGL API was announced more than a year ago and was supposed to be released last fall. However, despite the official announcement Khronos never made this release – and never published any note, hint or even unofficial statement.
Today, during the SIGGRAPH conference Khronos he published the new API version and made it available for download. The new version is described as an evolutionary step which includes many new features while still supporting old hardware.
The new features include, among others:
- Vertex Array Objects to encapsulate vertex array state for easier programming and increased throughput
- non-blocking access to Vertex Buffer Objects with the ability to update and flush a sub-range for enhanced performance
- full framebuffer object functionality including multi-sample buffers, blitting to and from framebuffer objects, rendering to one and two-channel data, and flexible mixing of buffer sizes and formats when rendering to a framebuffer object;
- 32-bit floating-point textures and render buffers for increased precision and dynamic range in visual and computational operations
- transform feedback to capture geometry data after vertex transformations into a buffer object to drive additional compute and rendering passes
- rendering and blending into sRGB framebuffers to enable faithful color reproduction for OpenGL applications without adjusting the monitor’s gamma correction
Besides the OpenGL 3.0 release the press note also highlights that the OpenGL working group works now closely together with the OpenCL working group to make sure both fit together quite well. OpenCL is a “royalty-free standard focused on programming the emerging intersection of GPU and multi-core CPU compute”, e.g. in the future OpenCL will be the language in question in case you want to make extensive calculations on your graphics card.
The Bad: the future
While all these news are pretty good news, there are indeed some shadows. First of all the API itself is nice, but it will take some time until the graphic card developers will pick it up. According to a Phoronix post Intel hasn’t even started looking at OpenGL 3.0. Also, Nvidia and ATI/AMD extended the old OpenGL API in their implementations anyways to better support their modern hardware so many of the new features of the OpenGL API were already out in the wild quite some time. Also, the question of when the free X drivers will support the new OpenGL depends on when Mesa 3D, the free OpenGL implementation, will support OpenGL 3.0. The Mesa project recently picked up quite some development speed, but before the last release it seemed to be almost dead.
Another, quite dark shadow is the Khronos group itself. OpenGL 3.0 was necessary, but DirectX 11 is already in the pipe. OpenGL must be comparable to it, and it doesn’t look like that the 3.0 API matches that requirement. However, the Khronos group obviously totally fails to manage a release: delaying a release is understandable, but not giving out *any* kind of information, not even a single piece of it, is not bad, that is horror. In fact, all official channels (newsletter, forum, etc.) where dead for more than a year and gave everyone the feeling that the project itself is not alive anymore, that something bad has happened and the ship sunk before anyone could tell the users.
Such behavior leads to the loss of faith and trust by the developers and vendors – and an API without trust and faith is worthless. So while Khronos invested work to bring out the next API they totally neglected the necessary work to keep in touch with their community (hardware vendors, developers, projects, etc.). How can you blame a vendor switching from OpenGL to for example DirectX when an API release was delayed for almost a year without any further notice?
If Khronos handles the next release as they handled this one, OpenGL might already effectively be dead before the first beta version.