The history of OpenGL is quite well covered. This post is not about the past, however; it’s about the future. How do features make it into OpenGL? Who decides what the what functions should be called? What goes in the core specification and what remains an extension? In this post, I’ll talk about the process at Khronos — the standards body that produces the OpenGL specification, its members, the process of creating and publishing and suggest how you, as a user, can contribute.
Khronos Group is an open consortium of companies that have an interest in multimedia APIs. Along with OpenGL and OpenGL ES, it also manages OpenCL, OpenVG, EGL, WebGL, COLLADA and large number of other media-centric standards. There are several tiers of membership. The highest level of membership is known as a Promoter member, of which there are currently 12. They are listed here, and are AMD, Apple, ARM, Epic Games, Imagination Technologies, Intel, Nokia, NVIDIA, Qualcomm, Samsung, Sony and Vivante. Promoter members may hold a seat on the board of directors at Khronos. This board has final sign off on new specifications, and determines things such as funding for working groups and the general direction of Khronos itself.
The next level of membership is the Contributor member. The complete list of current contributors is available here. Contributor members participate in the working groups which define the standards and can vote on the features that might make it into those standards. There are many more contributors than promoters. There is also a level of membership specifically for academic institutions (the Academic member), which is substantially less costly, but doesn’t come with any voting rights. However, academic members do get early access to draft specifications, are welcome to join conference calls and face-to-face meetings, and to provide feedback and advice.
In addition to marketing efforts and an online presence, Khronos organizes educational events, in-person conferences and social events. The Khronos members get together several times a year to discuss new technologies, and to build working relationships with each other.
OpenGL is overseen by the OpenGL working group at Khronos. This group is sometimes known as the ARB, or the Architecture Review Board, which is the name by which it was known when the specification was managed by SGI. Over time, hardware vendors (generally companies that implement OpenGL) ship new features as extensions. On occasion, they will work with each other or with software developers or other groups that don’t necessarily implement OpenGL to define those extensions and ensure they’re useful and well written. In addition to multi-vendor extensions, the hardware vendors may also ship each others’ extensions.
Roughly once a year (usually after a big specification update), the OpenGL working group gets together and puts existing extensions and new feature ideas together in a candidate list for the next version of OpenGL. In addition to shipping extensions from various implementations, these ideas include features that users, developers and commentators may have suggested. At this point in the process, the group strawpolls its members to discover the level of motivation to push each feature idea forward, and to find volunteers to write the specification language and accompanying extension document and to be the owner for bug reports and other issues related to it.
Once volunteers have been identified to own particular features, each goes off and starts drafting specification edits, function prototypes and so on. Each new feature is drafted as an extension at first. If the feature is entirely new, the extension document is written from scratch. If it is the promotion of an existing single- or multi-vendor extension, then the group gathers feedback on that version of the extension and updates are incorporated for the candidate for the OpenGL core. At this point, the features are still somewhat in flux and might get pulled if they’re not moving in the right direction.
Once the feature specifications are in reasonable shape, the specification editor (the person that maintains the actual OpenGL specification) will start making edits to the OpenGL specification itself, folding the new features into the core. Eventually, the extensions and features are fully fleshed out, folded into the main specifications and ready to go. At this point, the eligible members of the working group vote to send the final specification (along with the associated extension documents) to the Khronos board of directors with a recommendation that it be submitted as a new version of the specification.
Assuming the board approves the specification, it goes out for IP (Intellectual Property) review. This is a time period that all member companies have to review the specification, and to raise any objections to folding specific technologies into an open standard. Khronos has a fairly strict reciprocal licensing agreement that states that if you allow a technology to go into a Khronos specification, you’re not allowed to then turn around and sue anyone for implementing it. In return, no one else is entitled to sue you for implementing that specification. This is what allows OpenGL to remain open and free. During the IP review period, member companies may notify others that they don’t want something that they lay claim to to end up in the specification because it may infringe on their intellectual property. If this happens, the other members review the claims and decide whether to include the feature or not. If there is concern, the feature gets pulled.
Once the specification has cleared IP review, it is returned to the Khronos board of directors with a recommendation to ratify it, which makes it an official Khronos specification. For the past few years, this has happened in the run-up to the SIGGRAPH conference where the existence of the specification has been announced. However, Khronos has no official ties with SIGGRAPH, and may release a new specification at any time.
Contributing to OpenGL
So, how can you contribute to OpenGL? Well, if you’re an employee of an existing member company or institution, step up, find out who your Khronos representative is and find out if you can join in. If you’re an employee of a company that has an interest in graphics, multimedia and technology, that isn’t already a member, see if you can join. Same goes if you’re affiliated with an academic institution — find out if your institution will join Khronos. If none of that applies to you, start contacting people. You can get in touch with Khronos on Twitter (@thekhronosgroup), file bugs on the public Khronos Bugzilla, visit the specification feedback forums at opengl.org, or get in touch with individual members. Most of the extension specifications have contact names at the top. If you have a question about a feature or a suggestion for improvement, mail the person responsible for that feature.
OpenGL is an Open Standard. It evolves though the contributions of member companies, academic researchers, software developers and interested individuals. The more that you contribute, the stronger it becomes. Get involved!