The Khronos Group, an open consortium of leading hardware and software companies, today announced significantly expanded scope and momentum for its family of open standard 3D graphics APIs. Vulkan™, the new generation API for high-efficiency access to graphics and compute on modern GPUs, is on track for implementation and specifications later this year. It has received support from Android, SteamOS, Tizen, and multiple Linux distributions, including Ubuntu and Red Hat. The new OpenGL® ES 3.2 specification absorbs AEP (Android Extension Pack) functionality to enhance pervasive graphics capabilities across mobile, consumer, and automotive devices. A set of OpenGL extensions will also expose the very latest capabilities of desktop hardware.
Vulkan gives applications direct control over GPU acceleration for maximized performance and predictability, and uses Khronos’ new SPIR-V™ intermediate language specification for shading language flexibility. Vulkan minimizes driver overhead and enables multi-threaded performance on mobile, desktop, console, and embedded platforms. In parallel with finalizing the Vulkan specification, Khronos is working to drive an in-depth Vulkan ecosystem to:
[li]Reach out to key non-Khronos developers for feedback during specification drafting;[/li][li]Construct an open source Vulkan conformance test suite leveraging and merging with the Android Open Source Project (AOSP) drawElements Quality Program (dEQP) framework to enable direct feedback and contributions from developers to resolve cross-vendor inconsistencies;[/li][li]Develop a Vulkan tools architecture that can load code validation, debugging and profiling layers during development, without impacting production performance. The first open source, cross-vendor Vulkan SDK is being developed by Valve working with LunarG;[/li][/ul]
[li]Build key SPIR-V tools in open source, including translators from GLSL, OpenCL C and C++, a validator to check the correctness of any SPIR-V file and a SPIR-V assembler/disassembler.[/li][/ul]
About OpenGL ES 3.2
The new OpenGL ES 3.2 and OpenGL ES Shading Language 3.20 specifications bring AEP, plus additional functionality, into core OpenGL ES. AEP is a set of OpenGL ES extensions announced last year to bring console-class gaming to Android. OpenGL ES 3.2 will drive the pervasive availability of advanced desktop-class graphics functionality on a large class of mobile, consumer and automotive hardware, and will be adopted by Android. OpenGL ES 3.2 capabilities include:
[li]Geometry and tessellation shaders to efficiently process complex scenes on the GPU;[/li][li]Floating point render targets for increased flexibility in higher precision compute operations;[/li][li]ASTC compression to reduce the memory footprint and bandwidth used to process textures;[/li][li]Enhanced blending for sophisticated compositing and handling of multiple color attachments;[/li][li]Advanced texture targets such as texture buffers, multisample 2D array and cube map arrays;[/li][li]Debug and robustness features for easier code development and secure execution.[/li][/ul]
About OpenGL Extensions
The OpenGL extensions released today expose cutting-edge desktop graphics capabilities and pave the way for new versions of OpenGL when this functionality is pervasively available, including:
[li]Streamlined sparse texture functionality to more effectively manage multisample sparse textures and uncommitted and unpopulated texture areas;[/li][li]Enhanced shader functionality including interlocks to efficiently ensure proper execution order for multi-pass algorithms, 64-bit integer handling, control of coverage results in sample masks for early fragment testing, enhanced atomic counter capabilities and a 64-bit monotonically incrementing counter to derive local timing information;[/li][li]Control over the number of threads used to compile shaders to accelerate compilation time;[/li][li]Modifiable locations of samples within a pixel to increase multisample antialiasing quality;[/li][/ul]
Lastly, the OpenGL ES 3.2 compatibility extension enables the use of desktop OpenGL to develop mobile applications.