The State Of OpenGL 3.x in Mesa Core

Written by Michael Larabel in Mesa on 31 December 2009 at 05:28 AM EST. 15 Comments
MESA
While ATI R600 users only recently received OpenGL 2.0 hardware support within the open-source Radeon 3D stack and there is many more OpenGL extensions to be implemented just not for the ATI Mesa driver but the other DRI drivers as well, Brian Paul has published a document that lays out the current state of OpenGL 3.x within the classic Mesa core. This document lays out what core Mesa supports and not necessarily that any of the drivers are implementing the said support at this time. Granted, with Mesa not really being very performance-efficient at this time or capable of running most games, a majority of users will be waiting for the OpenGL 3.x state tracker for Gallium3D.

Mesa has been slowly picking up OpenGL 3.x support for a number of months now, with Intel in particular being interested in the OpenGL 3.x support for classic Mesa rather than Gallium3D at this time. Anyhow, when it comes to OpenGL 3.0 support for Mesa core, the key items still to be tackled include the GL Shading Language (GLSL) changes, conditional rendering, transform feedback, and sRGB framebuffer format. There are also some items like float textures that have work underway but not completed. When it comes to what's completed for OpenGL 3.0 there is frame-buffer objects, multi-sample blit, packed depth/stencil formats, per-buffer blend and masks, vertex array objects, and glClearBuffer / glGetStringi.

For OpenGL 3.1 the only features working in Mesa core are buffer copying and rectangular textures. Other OpenGL 3.1 features like instanced drawing, GLSL 1.40, primitive restart, and uniform buffer objects still need to be tackled.

The current latest and greatest OpenGL spec from the Khronos Group is OpenGL 3.2 (though it should be outdone by OpenGL 3.3 in 2010). With regards to OpenGL 3.2 support the GL_ARB_vertex_array_bgra, GL_ARB_draw_elements_base_vertex, GL_ARB_provoking_vertex, GL_ARB_seamless_cube_map, GL_ARB_depth_clamp, and GL_ARB_sync extensions are implemented in the core of this free software OpenGL implementation. Still to be worked on here is GLSL 1.50 support (though that's no surprise considering GLSL 1.30/1.40 support is still missing), compatibility profiles, geometry shaders, fragment shader coordinate conventions, and multi-sample textures.

The current OpenGL 3.x status page can be found in this Git text file. Sadly, OpenGL 3.3 should be out (and then OpenGL 3.4) before all of the OpenGL 3.x functionality finds its way into core Mesa and then the hardware drivers.
Related News
About The Author
Michael Larabel

Michael Larabel is the principal author of Phoronix.com and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 20,000 articles covering the state of Linux hardware support, Linux performance, graphics drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated benchmarking software. He can be followed via Twitter, LinkedIn, or contacted via MichaelLarabel.com.

Popular News This Week