The latest release of the OpenGL API brings with it some shiny new features to turn up the pressure on Microsoft's Direct3D.
The Khronos Group, the organisation behind the OpenGL graphics API, has announced the launch of new specifications for OpenGL and OpenGL ES as well as new APIs for augmented reality.
The leading - and by leading, we mean pretty much only - alternative to Microsoft's Direct3D API, OpenGL has been around for a very long time: the standard is celebrating its 20th anniversary this year. Despite having only released OpenGL 4.2 last year, the Khronos Group has announced OpenGL 4.3 which brings with it some major new functionality designed to bring the fight to Microsoft's DirectX 11.1.
First up is a new set of compute shaders, designed to allow programmers access to the highly-parallel processors in modern graphics card for tasks such as image, volume and geometry processing directly within the context of the graphics pipeline, along with shader storage buffer objects which enable vertex, tessellation, geometry, fragment and compute shaders to read and write large amounts of data and pass big chunks between shader stages.
Addressing a big hole in OpenGL's feature set is the announcement of ETC2/EAC texture compression as a standard facility, meaning developers will no longer have to produce a different set of textures for each target platform. Additional programmer-friendly features introduced in OpenGL 4.3 include texture parameter queries for discovering the supported texture parameter limits on the current platform, an enhanced debug capability for receiving messages during development, texture views for interpreting textures in multiple ways without duplicating the texture data, and a multi-application robustness extension designed to ensure than an application causing a GPU reset won't affect any other running apps.
Finally, the update adds an indirect multi-draw facility, enabling the GPU to compute and store parameters for multiple draw commands in a buffer object and re-use those parameters with a single draw command - resulting, the Khronos Group claims, in serious efficiency gains for the rendering of large low-triangle object quantities.
'Developer feedback has been key to creating a faster, more capable API that meets emerging needs, such as providing a secure platform for GPU-accelerated web applications using WebGL and compute shaders that harness GPU parallelism for advanced computation,
' claimed Barthold Lichtenbelt, working group chair of the OpenGL ARB and director of Tegra graphics at Nvidia. 'Nvidia released beta OpenGL 4.3 drivers today, so developers can immediately use this new functionality on Nvidia desktop GPUs.
As well as the OpenGL 4.3 update, the Khronos Group also announced an update for the mobile-centric OpenGL ES API at the Siggraph event. Bringing the standard to version 3.0, this latest release adds in the same ETC2/EAC texture compression functionality as OpenGL 4.3, while bringing significant improvements to the rendering pipeline including occlusion queries, transform feedback, instanced rendering and support for four or more rendering targets.
OpenGL ES 3.0 also brings a new version of the GLSL ES shading language with full support for both integer and 32-bit floating point operations, boosted texturing facilities including guaranteed support for floating-point textures, 3D textures, depth textures, vertex textures, NPOT textures, R/RG textures, immutable textures, 2D array textures, swizzles - which is totally a real thing - LOD and mip level clamps, seamless cube maps and sampler objects. Apparently.
Finally, the standard brings with it an extensive set of required, explicitly-sized texture and render buffer formats, meaning a reduction in implementation variability which should make it easier to write portable applications - potentially spelling an end to mobile games written with a specific chipset, like Nvidia's Tegra, in mind.
With ARM announcing its latest high-performance Mali graphics designs and game publishing giant Valve working hard to port its Source engine and Steam digital distribution platform to Linux, the news that OpenGL is continuing to evolve thanks to developer feedback will be welcomed by all - except, possibly, the DirectX team at Microsoft.