It's not often that really interesting mailing list messages come through on the weekend, but this Sunday there is a very interesting message that was posted to the Mesa development list. A Belgian developer has offered to write an OpenGL 4.1 state tracker for Gallium3D this summer. Not only that, but that this state tracker to support the latest OpenGL specification would be free of using Mesa. This would also mean parts of the OpenGL 3.x API, EGL context-creation, LLVMpipe support, OpenVG state tracker support, and possibly even Clover capabilities for OpenCL.
Denis Steckelmacher is this developer living in the land of Chimay that has proposed this OpenGL 4.1 state tracker. He wants to make it for this year's Google Summer of Code
. It's a mighty ambitious project to create an OpenGL 4.x state tracker by a new student developer over the course of a summer, especially when the Mesa / Gallium3D support is currently at OpenGL 2.1 and it's taken years already to just implement parts of the OpenGL 3.0+ specification.
Denis wrote this message to the Mesa developers
describing his proposed plans and how he would achieve this state tracker. Some key points from his email are listed below.
- This 18 year old Belgian developer has been following Mesa for approximately two years, particularly as it concerns the R300g and LLVMpipe drivers (he uses an ATI Radeon X1270 as his graphics card).
- Denis saw the "OpenGL 3.1 state tracker" proposal from GSoC proposals in previous years, but he wants OpenGL 4.1 support and to also write it from scratch rather than extending Mesa to fully support OpenGL 3/4.
- By writing this state tracker from scratch he believes it can be more future-proof and make it easier to provide compatibility with OpenGL ES 2.0 and OpenCL. However, some parts of Mesa would be copied, like its new GLSL compiler.
- The OGL3 core API would be implemented with this state tracker while building up to OpenGL 4.1 support. EGL would be initially supported while GLX may come later, but EGL is targeted since it's easier to implement and is also used by the Wayland Display Server.
- LLVMpipe would be the Gallium3D driver initially targeted for compatibility with this state tracker. Denis does not have any OpenGL 4.1 compatible graphics cards.
- The OpenVG and Clover (OpenCL) state trackers may also hook-up with this proposed state tracker
- Not being focused on this summer would be OpenGL 1.x/2.x support and the OpenGL compatibility profile. DRM drivers also wouldn't be directly targeted nor the GLX indirect mode.
- By the end of the summer he's looking to have this state tracker in a shape where users can "run some example programs that use only a subset of the OpenGL Core profile, for example KWin, compatible with OpenGL ES 2, OpenGL 3 Core and which can use EGL)."