The open-source Mesa / Gallium3D Linux drivers not only take heat for their slow performance (in many cases, dreadfully slow) compared to the proprietary drivers, their bugs causing issues like those with KWin
, and their inability to run many games/applications
, but also for their very belated support in enabling support for new OpenGL extensions and versions of the GL Shading Language.
The OpenGL 3.0 specification is nearly three years old now and has been supported by the proprietary drivers for that long, but not a single Mesa driver (or core Mesa) yet properly support this specification and the matching GLSL 1.30 requirement. Besides that, there's already OpenGL 3.1, 3.2, 3.3, 4.0, and 4.1 specifications too that Mesa drivers have yet to support. To some relief, the Mesa stack is inching closer to hitting the OpenGL 3.0 milestone in an open-source world.
The necessary requirements for OpenGL 3.0 are slowly being met one extension at a time
. Earlier this month there was also finally the merging of floating-point textures and render buffers support
, but those OGL3 requirements aren't enabled by default when building Mesa due to patent issues (a build-time flag must be set to enable the floating-point support in drivers).
Today there's a bit more progress in reaching OpenGL 3.0 in open-source. Namely, work on support for GL Shading Language 1.30 has been started
. There's still a ways to go, but Intel is working on it. There's still switch statements, clip distances, and other features to implement in this version of GLSL.
The Intel (classic Mesa) driver now also has support for the GL_ARB_color_buffer_float, GL_ARB_texture_float, and GL_ATI_texture_float extensions. These OpenGL extensions were previously added to the Gallium3D drivers during the Mesa 7.11 development cycle, but now the support is being hooked in for the classic i965 driver.
Intel's Eric Anholt has also pushed some other render buffer work, among other fixes, in the past hour.
All of this work, plus lots of other work
are making up Mesa 7.11 to be released in the near future.