Ian Romanick has published a set of 14 new patches today as he prepares support within Mesa for creating OpenGL 3.1 core contexts, as open-source OpenGL 3.1 support finally inches further.
The 14 patches begin here
on the Mesa development list. When creating an OpenGL core context, it comes down to removing functionality that's been deprecated from the Khronos OpenGL specification (for those wanting the old functionality, there's the OpenGL compatibility context).
Ian's work forthe OpenGL 3.1 core context support comes down to not advertising GL 1.2/1.3/1.4/1.5 extensions when in a core context, concealing other functionality when within a OpenGL core context, validation of the API and version, and cleaning up other bits of code. The remaining bits of enablement support from Ian comes down to allowing to create OpenGL 3.1 contexts for the Intel i965 driver and then advertising GLSL 1.40 support and ARB_texture_buffer_object when creating the core context. GLSL 1.40
is the GL Shading Language version for OpenGL 3.1.
One caveat in being able to support an OpenGL 3.1+ core context is that floating-point texture support must be built into Mesa. This can be done by building Mesa with the --enable-texture-float
argument, but it's not set by default due to patent concerns around floating-point textures. See Super! Patented Mesa Floating-Point Is Merged!