The Khronos Group has released the OpenGL ES 3.1 specification, bringing closer the day when handheld devices match mainstream desktops and laptops in graphics performance.
"The OpenGL family of APIs including OpenGL ES, OpenGL and WebGL have proven themselves as the foundation for 3D graphics on mobile devices, PCs and the Web," said Khronos Group president and Nvidia VP of mobile ecosystem Neal Trevett in a statement.
"This OpenGL ES release is yet another graphical milestone that will enable billions of users to experience new levels of realism and interactivity on pervasive, mainstream devices."
As its name implies, OpenGL ES (Embedded Systems) is a royalty-free standard, available to any and all developers who want to spruce up the graphics performance of their mobile apps. Version 3.1 adds a number of enhancements that programmers can port for use across a wide variety of handheld and embedded platforms.
The new spec continues the OpenGL ES working group's effort to move features down from the mainstream OpenGL 4.4 spec and into the rapidly expanding low-power space.
"OpenGL ES 3.1 provides the most desired features of desktop OpenGL 4.4 in a form suitable for mobile devices, the working group's chair Tom Olson said. "It provides developers with the ability to use cutting-edge graphics techniques on devices that are shipping today."
From the release announcement, the key features of the OpenGL ES 3.1 specification include:
- Compute shaders – applications can use the GPU to perform general computing tasks, tightly coupled with graphics rendering. Compute shaders are written in the GLSL ES shading language, and can share data with the graphics pipeline;
- Separate shader objects – applications can program the vertex and fragment shader stages of the GPU independently, and can mix and match vertex and fragment programs without an explicit linking step;
- Indirect draw commands – the GPU can be instructed to take draw commands from its memory rather than waiting for commands from the CPU. For example, this allows a compute shader running on the GPU to perform a physics simulation and then generate the draw commands needed to display the results, without CPU intervention;
- Enhanced texturing functionality – including multisample textures, stencil textures, and texture gather;
- Shading language improvements – new arithmetic and bitfield operations, and features to enable modern styles of shader programming;
- Optional extensions – per-sample shading, advanced blending modes, and more;
- Backward compatibility with OpenGL ES 2.0 and 3.0 – programmers can add ES 3.1 functionality incrementally to working ES 2.0 and 3.0 applications.
The Khronos Group's announcement lacks specifics about exactly which mobile and embedded GPUs are capable of taking advantage of its enhancements, but a glance at some of the quotes in the press release provides hints. ARM's VP of technology Jem Davies weighed in, for example, so it's a mortal lock that the Mali IP will be supported.
Imagination Technologies marketing headman Tony King-Smith also had good things to say about "the full feature set of OpenGL ES 3.1," so you can click the checkbox next to his company's Rogue architecture, as well.
Qualcomm senior director of product management Tim Leland's positive comments indicate that Adreno will join the party, and Nvidia's director of mobile graphics Barthold Lichtenbelt was quite specific. "The Nvidia Tegra K1 processor brings desktop graphics capabilities to mobile and can naturally support OpenGL ES 3.1 as well as full desktop OpenGL 4.4," he said – count Kepler as a player, as well.