OpenGL ES 3.2 and Vulkan – everything you need to know
Today, the Khronos Group, an open consortium of leading hardware and software companies, has announced its new OpenGL ES 3.2 specification and more details on its cross platform Vulkan graphics API. So here is everything that you need to know about the group’s latest graphics APIs and features.
OpenGL ES 3.2
Starting with the new specification, OpenGL ES 3.2 aims to bring another step forward in mobile graphics capabilities and quality by absorbing Google’s Android Extension Pack (AEP) functionality into the core of OpenGL ES..
If you recall, the AEP was announced with the launch of Android 5.0 Lollipop and brought along a selection of graphical technologies to the mobile OS via extensions to OpenGL ES 3.1. The introduction of OpenGL ES 3.2 builds on the previous release to open up new graphics functionality to make full use of future mobile and automotive hardware.
From the AEP, OpenGL ES 3.2 compliant hardware will support Tessellation for additional geometry detail, new geometry shaders, ASTC texture compression for a smaller memory bandwidth footprint, floating point render targets for high accuracy compute processes, and new debugging features for developers. These high-end features are already found in the group’s full OpenGL 4 specification.
High quality graphics effects are also part of the standard, with Deferred Rendering, physically-based shading, HDR tone mapping, and Global Illumination and reflections made available, bring desktop-class graphics to the core of OpenGL ES and mobile devices.
Jargon aside, this essentially allows for better looking mobile titles on supported hardware, including but not limited to the features seen in the impressive looking Rivalry Demo built in Epic’s Unreal Engine 4 (above).
Vulkan – the cross platform API
If you have been following desktop graphics technology lately, you’ve probably heard a lot about the low-level hardware access and performance improvements being touted by next generation graphics API’s like Microsoft’s DirectX12 and Khronos’ Vulkan.
By reducing driver overheads and improving multi-threaded CPU usage, Vulkan is promising notable performance improvements alongside the latest graphics features. The growth of multi-core mobile SoC designs could lead to notable performance gains in the mobile market.
The other part of Vulcan development is to offer a single unified API for desktop, mobile, consoles and other embedded applications. Vulkan supports Windows 7, 8 and 10, SteamOS, Android, Samsung’s Tizen spin-off, and a selection of desktop Linux distributions.
The introduction of Vulcan will do away with ES and desktop versions of the API by unifying the two, simplifying cross platform development and opening up new possibilities for developers and gamers alike. The most recent versions of OpenGL ES are pretty much considered a subset of the main OpenGL API now, making cross compatibility much more feasible.
“Hardware and software companies need an open 3D API to maximize market reach and minimize porting costs, and Vulkan is being forged by a broad consortium of industry leaders to do exactly that,” – Neil Trevett, president of the Khronos Group.
Vulkan will support hardware that is compatible with at least the mobile OpenGL ES 3.1 API through to the desktop OpenGL 4.5 specification and higher. However, hardware across these different platforms have different capabilities and API support levels, so we won’t necessarily see complete feature sets shared across all platforms.
Instead, Vulkan defines and implements features at device creation time, and platform profiles can be specified by Khronos and other parties. This will allow developers to target specific platforms using the same API, with features being split up depending on the hardware. For consumers, this will hopefully increase the availability of cross platform titles, as development costs will fall.
Vulkan open source tools
Along with the new graphics features, Khronos is introducing its SPIR-V intermediate language for shading language flexibility. The key SPIR-V tools are open source, which includes translators for GLSL, OpenCL C and C++ and an SPIR-V assembler/disassembler.
The open source Vulkan test suite is leveraging and merging with the Android Open Source Project (AOSP) drawElements Quality Program (dEQP) framework and is designed to allow developers to offers a greater level of feedback and to be able to make contributions to resolve cross-vendor inconsistencies.
In summary, the introduction of OpenGL ES 3.2 and Vulkan will bring performance and graphical improvements to Android gamers, as well as opening the door for new compute solutions for more complex processing tasks. There’s an equally large focus on making cross-platform development less expensive and less time consuming to implemented too, which also trickles down to benefit us customers.
Unfortunately, we are going to have to wait for new mobile hardware before users and developers can make the most of many of these enhancements. The first specifications and implementations of Vulkan are expected later this year.