OpenGL @ SIGGRAPH 2015: OpenGL ES 3.2 & OpenGL Extensions Announcedby Ryan Smith on August 10, 2015 2:50 PM EST
Kicking off this week in Los Angeles is SIGGRAPH 2015, the computer graphics industry’s annual professional conference. As the biggest graphics event of the year this show has become the Khronos Group’s favorite venue for delivering news about the state and development of OpenGL, and this year’s show is no exception. This week will see Khronos delivering news on both OpenGL and OpenGL ES, along with the formation of the OpenGL SC 2.0 working group.
OpenGL ES 3.2
Starting things off, we have the announcement of OpenGL ES 3.2. The latest version of OpenGL’s embedded variant is receiving a new revision this week, bringing the API up to version 3.2.
With OpenGL ES 3.2, Khronos will officially be rolling the feature set of the Android Extension Pack into the core API. Until now these features have been available as optional extensions – which Google conveniently rolled into the AEP for Android developers – as not all original GPUs capable of supporting OpenGL ES 3.1 could also support the AEP, preventing those features from being rolled into OpenGL ES core.
Via these features, OpenGL ES 3.2 will bring support for tessellation, geometry shaders, compute shaders, and ASTC texture compression in to the core OpenGL ES standard. These are major features already found in desktop GPUs for some number of years now, and these days are found in all of the major mobile GPUs as well. Of particular interest here, this means that ASTC is finally part of the OpenGL ES core standard, and while it will take some time to filter out to new OSes and devices, this finally solves the problem with the lack of a standard texture compression format in the mobile space.
Meanwhile, as Khronos likes to note in their announcement, the inclusion of these features brings mobile GPUs much closer to parity with their desktop counterparts. At this point there are very few major OpenGL 4.x class (DirectX 11) features not accounted for in mobile GPUs in some form, so the gap between mobile and desktop has been further closed. And of course this means developers can push the envelope even harder on certain classes of graphical effects – especially geometry and compute-based physics simulations – though on a smaller scale more fitting of mobile hardware.
As far as OS support goes, Khronos and Google are also announcing today that OpenGL ES 3.2 will be adopted by a future version of Android – presumably 2016’s Android release – at which point OpenGL ES 3.2 will have effectively supplanted the AEP. Meanwhile we haven’t heard anything from the Apple camp about OpenGL ES in some time. iOS never received OpenGL ES 3.1 support, and with Apple gung-ho on Metal there’s no immediate reason to believe this will change with OpenGL ES 3.2.
OpenGL SC 2.0
Along with the release of OpenGL ES 3.2, Khronos is also announcing that they are forming a working group for OpenGL SC 2.0, which will be based on OpenGL ES 3.
OpenGL SC is a little-known subset of OpenGL ES that is focused on what Khronos and its members call “safety critical” systems, such as automotive and avionics systems. OpenGL SC in turn is essentially a trimmed down version of OpenGL ES that removes some of OpenGL’s flexibility in order to allow easier driver validation and ultimately more reliable operation than what is accepted for OpenGL ES.
OpenGL SC was originally created in 2005 and based off of Open GL ES 1.0, the last fixed function version of OpenGL ES. With even time-tested hardware now well outstripping the capabilities of OpenGL SC 1.0, Khronos is forming a new working group to develop OpenGL SC 2.0. 2.0 in turn will be taking OpenGL GL ES 3.x and stripping it down in a similar manner as the original specification in order to produce a pared down version of the API that is more up to date. Khronos is looking to release OpenGL ES 2.0 in 2016.
Desktop OpenGL: No New Version, But New Extensions
Finally, on the desktop OpenGL front, Khronos will not be announcing a new version of OpenGL this year, making this the first SIGGRAPH in several years where Khronos doesn’t update their venerable graphics API. Citing that OpenGL has largely caught up with desktop hardware as of OpenGL 4.5 – and with attention no doubt split by Vulkan – the consortium is instead going to release several new extensions to unlock new features. These extensions represent features that are expected to be useful for developers and worth having under Khronos control, but are not universally supported by all desktop hardware, making their inclusion into an OpenGL core standard a thorny issue.
Of particular interest on these extensions, one of the extensions will add support for multi-threaded shader compilation in OpenGL, with the goal of cutting down on loading times on shader-heavy workloads. Improved 64-bit integer support will also be coming to OpenGL as part of this extension set; 64-bit integers are still fairly rare in graphics workloads, but with many GPUs now supporting them, there are times where the extra precision is useful. And last but not least of course, as has been the case for the last few iterations of OpenGL, there will also be extensions to enable full OpenGL ES 3.2 interoperability, primarily to support developers in creating OpenGL ES applications.
Though it is interesting to note that some of the latest GPU features as exposed by Direct3D feature level 12_1 aren’t included in the extension sets, such as conservative rasterization. Right now a lot of resources are going into developing Vulkan, and while Khronos is committed to continuing to develop OpenGL separate from Vulkan, it may be that more extensive feature additions for OpenGL will have to wait until after Vulkan is done, and/or after all three major desktop vendors support these latest features.