Khronos Updates OpenGL and OpenCL SPIR
August 11, 2014, Siggraph—Neil Trevett from Khronos announced the latest releases of the OpenGL, OpenGL ESTM and WebGLTM to provide portable access to graphics and compute capabilities across multiple platforms, including Android, iOS, Linux, OS X, Windows and the Web. These standards are used for 3-D media across numerous mobile and desktop devices.
The OpenGL ES 3.1 now has a number of vendors who have achieved full compliance with the latest version. Leading GPU vendors, including ARM, Imagination Technologies, Intel, NVIDIA and Vivante, achieved full conformance with the latest version of OpenGL ES. A conformance submission from Qualcomm is currently under review, with more to follow. More information on the conformance tests is available at https://www.khronos.org/conformance/adopters/conformant-products#opengles.
A parallel development is that Google announced support for OpenGL ES 3.1 in the Android L Developer Preview together with the Android Extension Pack (AEP). AEP is a new set of extensions to OpenGL ES that brings additional desktop-class graphics functionality to Android and enables games to take advantage of tessellation and geometry shaders, and use ASTC texture compression. Now AAA-class graphics are possible on mobile devices with the latest specifications. One early implementer is Unreal 4. See: https://www.khronos.org/registry/gles/extensions/ANDROID/ANDROID_extension_pack_es31a.txt.
OpenGL 4.5 offers new functions for operations and control which include direct state access, flush control, robustness, OpenGL 3.1 shader and API compatibility, and DX 11 emulation. More details are available at https://www.opengl.org/registry.
WebGL is now on all major browsers including Chrome, Firefox, Safari and Internet Explorer, and brings HTML5 functionality and portability to every desktop and mobile platform: https://www.khronos.org/webgl/.
Now that the OpenGL graphics standards are in production, the next step is to start on the following generation standards. The changes in hardware are going to require a new GL to address the newest architectures and APIs. The next generation standards will have to address high-efficiency access in modern GPUs, CPUs, and APUs. The effort will take a clean slate approach to provide explicit GPU-CPU control. There is a possibility for an intermediate representation language for drivers.
The driving motivation is to have the first cross-platform API to enable more 3-D platforms. Additional work will go into developing a rigorous set of conformance tests, and finding ways to make the conformance testing better. Detailed proposals and designs are already underway, and any company interested to participate is strongly encouraged to join Khronos for a voice and a vote in the development process: http://www.khronos.org/members/join.
Not to forget the parallel universe, OpenCL released SPIR 2.0 as a provisional standard for parallel heterogeneous programming. This SPIR (Standard Portable Intermediate Representation) is an open, cross-platform Intermediate Representation standard for portable heterogeneous parallel computing and is based on LLVM IR. The underlying framework is being incorporated into other frameworks as a background process. Now, any OpenCL run-time can ingest any OpenCL run-time.
In OpenCL 2.0, host and device kernels can directly share complex, pointer-containing data structures such as trees and linked lists, providing significant programming flexibility and eliminating costly data transfers between host and devices. SPIR 2.0 includes new functionality to fully support new features released in OpenCL C 2.0, including:
– Generic address space – Device side kernel enqueue- C++11 atomics and Pipes. OpenCL 2.0 provides built-in functions for kernels to read from or write to a pipe, providing straightforward programming of pipe data structures that can be highly optimized by OpenCL implementers.
The SPIR 2.0 provisional has been released to enable the growing community of OpenCL developers to provide feedback before the specification is finalized. Comments are welcome at the Khronos forum here: https://www.khronos.org/opencl/spir2_0_feedback_forum.


