From SIGGRAPH 2008, one of the premiere computers graphics conferences, the Khronos Group has announced the release of the OpenGL 3.0 API specification and the GLSL 1.30 shading language specification. This is the first major update to this cross-platform 3D programming API since the OpenGL 2.1 release two years ago. In this article we have a bit of information on these OpenGL and GLSL updates and when we can expect to see the Linux graphics scene moving to this new standard.
The OpenGL 3.0 API was codenamed "Longs Peak" and was originally scheduled for release this past September, but was delayed by the Khronos Group, which is the consortium that now leads the development of this open standard, due to technical reasons. Longs Peak comes some simplifications to its programming API (Application Programming Interface) both from the development and implementation perspectives, but this isn't a quick and easy upgrade path to OpenGL 3.0 as a result with OpenGL migrating towards an object-based system.
Some of the OpenGL 3.0 features include Vertex Array Objects, full frame-buffer object functionality, 32-bit floating-point textures and render buffers, conditional rendering based on occlusion queries, compact half-float vertex and pixel data, four new compression schemes, and 32-bit floating-point depth buffer support are among the many new features. The OpenGL Shading Language (GLSL) with its 1.30 revision has a number of improvements as well. Among these GLSL improvements are improved compatibility with OpenGL ES, new interpolation modes, additional functionality for manipulating floating-point numbers, and introducing switch statements.
In the OpenGL 3.0 Press Release, the Khronos Group has also announced they have started working with the OpenCL standard to "create a revolutionary pairing of compute and graphics programming capabilities." OpenCL (the Open Computing Language) was created by Apple as a C-based language for parallel computing across CPUs and GPUs (GPGPU computing).
Next up on the Khronos Group's roadmap for OpenGL is "Longs Peak Reloaded", which will be the first revision to the OpenGL 3.0 API and will integrate a small number of new features. Once the graphics drivers support OpenGL 3.0, hardware that is compatible with OpenGL 2.1 should work fine with OpenGL 3.0. In addition, the Khronos Group has released new extensions for the OpenGL 2.1 specification that back-ports some of the new OpenGL 3.0 features for use on older graphics hardware. These back-ported extensions include enhanced Vertex Buffer Objects, full frame-buffer object functionality, half-float vertices, compressed textures, vertex array objects, and sRGB frame-buffers. Following Longs Peak Reloaded will be the OpenGL "Mount Evans" revision, which will integrate more capabilities available in modern graphics hardware. Among the reported updates will be geometry shaders, integers in shaders, texture arrays, and instanced rendering.
The OpenGL 3.0 specification, which is available for free download from the Khronos OpenGL website amounts to 506 pages. The OpenGL Shading Language 1.30 specification is also available and it is 113 pages.
So when will we start to see OpenGL 3.0 on Linux? Well, that's a good question. Intel will more than likely be the first company with OpenGL 3.0 working within their open-source Linux stack, but they haven't even started any internal work on it yet. The newest Intel employee on Keith Packard's Portland team for X.Org development is Ian Romanick who was previously apart of the OpenGL ARB (Architecture Review Board) and is at SIGGRAPH this week. Ian had commented to Phoronix that Intel hasn't "even started planning for OGL3" and "It's a fairly sizable bit of stuff, [especially] the GLSL changes, so it will take awhile."
AMD has declined to comment on when OpenGL 3.0 and GLSL 1.30 may be supported by their proprietary Linux Catalyst Suite / fglrx driver. Now that they are largely using a shared code-base between the Windows and Linux drivers and have been making steady progress over the past year since rolling out their new OpenGL driver with major performance improvements and AIGLX support, it hopefully won't be too far out or not long after it's supported by the Windows driver. AMD though is in the process of making an evolutionary leap in Linux support with CrossFire support finally appearing on Linux as well as other yet-to-be-announced features. We wouldn't expect OpenGL 3.0 on ATI/AMD Linux before the end of the year.
NVIDIA on the other hand may be a bit closer in providing OpenGL 3.0 support for their Linux driver. Rumors have been circulating about NVIDIA's "Big Bang II" which will encompass OpenGL 3.0 support. Also rumored to be part of the next wave of NVIDIA graphics driver improvements is 10-bit DisplayPort support, SLI on multiple monitors, transcoding on the GPU, and performance optimizations. NVIDIA usually updates their Linux, Solaris, and FreeBSD drivers in conjunction with the Windows driver. It's believed that NVIDIA's Big Bang II will be announced this month or next, but we expect more to come out during the NVIDIA NVISION conference later this month. Several NVIDIA representatives have invited us to NVISION, so we do believe something significant could happen for Linux there, but we have yet to learn whether it pertains to an open-source strategy or Big Bang II on Linux or NVIDIA PR just trying to garner some extra attention. Though because of this, we have decided not to attend.
When we have more details to share about OpenGL 3.0 on Linux / Mesa 3D, we will be sure to pass them along. We should see a greater focus on OpenGL 3.0 once Gallium3D is widespread. In the mean time, the OpenGL and GLSL improvements can be discussed in the Phoronix Forums. In related news, next month we will also be covering the 2008 X Developers' Summit and providing audio/video recordings.