02/08/2010 OpenGL 4.1 released at Siggraph 2010

My little finger is usually realiable but this time was an exception: I was afraid that we will not see OpenGL 4.1 at Siggraph 2010 and I am glade I was wrong.

On the nVidia side, the announcement says full OpenGL 4.1 extensions support. On AMD side, the announcement state of an OpenGL ES 2 support with EGL.

An new extension called GL_ARB_ES2_compatibility and part of OpenGL 4.1 has been written to add the missing OpenGL ES 2 features in OpenGL 4. This is probably meant to improve WebGL support on desktop.

OpenGL 4.1 contains the following extensions: GL_ARB_seperate_shader_objects, GL_ARB_viewport_array, GL_ARB_get_program_binary, GL_ARB_shader_precision and GL_ARB_vertex_attrib_64bit. Actually, from these extensions only the 2 last ones are really OpenGL 4 level of hardware (Radeon 5800 and GeForce 400 series). So why not an OpenGL 3.4 specification? I actually asked the question to Barthold Lichtenbelt who gave me his thought: how to deal with the fact that OpenGL 3.4 would be a superset of OpenGL 4.0 and a lowerset of OpenGL 4.0? Yes, this is tricky so I think we will be limited to OpenGL 3.3 + a set of extentions which is quite ok actually.

The main OpenGL 4.1 feature is definetly the GL_ARB_seperate_shader_objects extension that allows to change program stages independently. A side and amazing feature from this extension is the direct state access for the uniforms. Also in AMD drivers 10.7, the direct state extension is fully supported and for having testing it, it works perfectly! A new age for OpenGL development is here.

GL_ARB_get_program_binary allows to cache a system the GLSL program binary. The binaries are not meant to be distributed with software releases and the loading of binaries can fail for any reason, new graphics card in the system, updated drivers could be the most common cases. GLSL compilers are so fast that I am not really sure how useful it's really is.

The only real OpenGL 4 hardware features are embodied by GL_ARB_shader_precision and GL_ARB_vertex_attrib_64bit extensions which are actually minor updates from OpenGL 4.0 features.

A set of extensions have also been released and from those my favorite is definetely the GL_ARB_debug_output which is just an ARBify version of GL_AMD_debug_output. Based on the previous AMD extensions this extension FINALLY gives some interesting debugging functionnalities to OpenGL.

On the level of the tools and documentations, OpenGL Extensions Viewer already support OpenGL 4.1 within version 3.31. The OpenGL man pages have been updated for OpenGL 3.3 and OpenGL 4.1. For the rest, it's pretty limited no support for GLEW yet or even glext.h and gl3.h.

Other great announcements during the OpenGL BOF: GLU3, KTX and even the up coming support of EGL on desktop with samples! AMD already provides EGL support in their last drivers. Finally, an updated OpenGL conformance test should be available soon.

This new OpenGL version is actually more an OpenGL 3.4 that an OpenGL 4.1 from my point of view. However, the improvements in every developers days is going to be significant and makes OpenGL a more than ever a great competitor to Direct3D. Considering the evolution of the graphics market, the commitment of nVidia and AMD for OpenGL it's really good to be an OpenGL programmer those days and it's going to be better and better!

The really too early OpenGL 4.1 drivers status >
< OpenGL community drink at Siggraph 2010
Copyright Christophe Riccio 2002-2016 all rights reserved
Designed for Chrome 9, Firefox 4, Opera 11 and Safari 5