The Khronos Group, arbiters of the OpenGL 3D specification and a series of related specifications, has announced version 3.1 of OpenGL ES, the 3D API aimed at mobile systems.
The main feature of the new specification is support for compute shaders. OpenGL and OpenGL ES are built around a graphics pipeline that inputs geometry (lines and dots) and textures at one end and outputs pixels at the other end. Compute shaders break out of that graphics orientation by providing a model for GPU-based computations that aren’t tied to any specific part of that pipeline.
Compute shaders can still be used graphically, for example to manipulate or produce geometry, but they can also be used for non-graphical things, such as physical calculations.
ES 3.1 also adds support for indirect drawing, which allows the GPU to draw objects pulled from a buffer in GPU memory instead of CPU memory. This is especially important in conjunction with compute shaders, as those shaders can be used to create objects in GPU memory. Indirect drawing is more efficient, as it can reduce the amount of CPU involvement.
The new specification makes shaders more flexible by allowing different types of shaders to be programmed separately. It also adds new texture options and makes the shader language more powerful, with new bitfield and arithmetic operations.
OpenGL ES is a subset of the full OpenGL specification used on the desktop. The previous version, OpenGL ES 3.0, largely inherited features from OpenGL 3.x. This new update uses OpenGL 4.4 to provide the menu of potential features, with the selection determined by developer demand and mobile suitability.
Khronos plans to make further announcements at the GDC gaming conference later this week. It starts with the release of GL ES 3.1 as many mobile vendors want to talk to GDC about their plans for OpenGL ES 3.1. The new features may or may not require new hardware. While some mobile GPUs, such as NVIDIA’s Tegra K1, support 3.1 with nothing more than driver updates, other GPU families may require new chips.