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 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.
The Khronos Group is an open consortium of over 100 companies that have an interest in graphics and compute APIs. Along with OpenGL and OpenGL ES, it also manages OpenCL, OpenVG, EGL, WebGL, COLLADA and number of other media, sensor and vision-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 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, but both types of member get a single working group vote. 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, progress specification development and 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 other’s 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 straw polls 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 starts writing the specifications, creating 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 submit the final specification (along with the associated extension documents) for membership review as a potential new version of the specification.
Once submitted, the members have a defined period of time to conduct an 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 strict reciprocal licensing agreement that states that if you don’t withdraw a patent you own from a Khronos specification as ratified, you’re not allowed to then turn around and sue any other member over any un-withdrawn patent you own for a conformant implementation of that specification. In return, all other members agree to not use their IP portfolio to sue you for implementing the specification either. This is what allows OpenGL to remain open and royalty free. During the IP review period, member companies may notify Khronos that they are withdrawing specific patents from the reciprocal license. If this happens, the other members review the patent 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, the Khronos board of directors votes to ratify it, which makes it an official Khronos specification which is ready for release. 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, compute and multimedia technology, that isn’t already a member, see if your company can join. The 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. You can also meet Khronos members and other people interested in the standards at various social events organized by Khronos. Upcoming Khronos events are listed at the Khronos events page, and include Meetups, Birds of a Feather events, and educational sessions known as DevU.
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!