The State Of OpenGL 3.x in Mesa Core
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.
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.
15 Comments