Khronos Group, the consortium behind the OpenGL and OpenCL graphics and compute APIs, announced today that it will begin working on a next-generation OpenGL specification that's meant to improve performance and streamline the portability to new hardware. The new "OpenGL NG," as they are calling it right now, will be a clean break from the current OpenGL, which is a first in the 22 years since its creation.
This isn't the first time Khronos has attempted such a move. Back in 2007, it tried to do so with "Longs Peak," the codename they gave for OpenGL 3.0 when it wanted to start fresh after OpenGL 2.1. However, things didn't go as well as planned, and Khronos settled with only some minor improvements for the next version, which they ended up calling OpenGL 3.0 anyway, instead of delivering the promised overhaul.
This time, Khronos is hoping it won't repeat the same mistake. To make sure of that, it has tried to gather as many hardware and software companies to get everyone's input and help it design the next-generation OpenGL API. It seems that just about everyone is on board, including Nvidia, AMD, Intel, ARM, Apple, Google, Epic Games, Unity and so on.
OpenGL has existed for 22 years, so why start fresh now? For one reason, the OpenGL design is just too old, and it was never built for some of the things that exist today in modern GPUs and CPUs. It's also the reason why we've seen new initiatives such as AMD's Mantle, Apple's Metal, and even Microsoft's DirectX12, which bring new lower-level APIs that can more directly control the hardware for better performance, as opposed to having a thick layer between the hardware and the program or game being run, which reduces performance. OpenGL was getting long in the tooth, and alternatives were starting to pop-up, so either OpenGL had to be redesigned now, or it risked being made obsolete.
Another reason for the redesign is that there are a wide variety of devices today, and not all of them run the same version of OpenGL. Some run the full OpenGL, some OpenGL ES for mobile devices, and some run a more custom version of OpenGL with their own proprietary extensions. Khronos wants to unify the OpenGL versions so that when developers write an OpenGL game, it works smoothly from low-end mobile devices (by scaling back the graphics) to high-end PCs that can perform more complex tasks.
Porting OpenGL to new chips has become a very complex task, especially for the full version of OpenGL, and the Khronos Group wanted to fix this problem, too. That's one of the reasons we can see mobile GPU vendors claim they have DirectX11 support but not full OpenGL support. The one exception here is Nvidia's Tegra K1, and that's only because Nvidia obtained full OpenGL compatibility by putting its desktop GPU architecture in a mobile chip.
The others are still stuck at OpenGL ES 3.1 for now (although Google has tried to reduce that gap with the new Android Extension Pack in Android L). The new OpenGL NG initiative hopes to make it a lot easier for GPU vendors to support and test the latest version of OpenGL.
The hard part about creating this new API is most likely going to be deciding what features it should have so as to make every member of the consortium happy. Each member will have different needs and vision for the future of graphics, so it might not be very easy to reach a consensus. But everyone in the Khronos Group must realize that this is an important project, and it needs to happen sooner rather than later. Once they've decided on OpenGL NG's specifications, actually implementing them should be the easy part.