Safety Critical Working Group
The Khronos Safety Critical working group is working to develop open graphics and compute acceleration standards for markets that require system safety certification. The OpenGL® SC 1.0 specification defines a safety critical subset of OpenGL ES 1.0. The safety critical working group is now working to adapt more recent Khronos standards including OpenGL ES with programmable shaders, and the new generation Vulkan™ API for high-efficiency graphics and compute.
“Visual computing acceleration will be a vital component of many emerging safety critical market opportunities including Advanced Driver Assistance Systems (ADAS), autonomous vehicles and new generation avionics systems,” said Neil Trevett, president of the Khronos Group and vice president at NVIDIA. “The new Safety Critical working group will build on the experience of shipping OpenGL SC, but now can adapt the latest open standards in the Khronos ecosystem for markets with demanding system certification requirements.”
Press Release - August 10 2015
Call for participation to create OpenGL SC 2.0 and future APIs!
OpenGL SC 1.0
For Safety Critial applications: OpenGL SC 1.0 is defined relative to the OpenGL 1.3 specification and is designed to meet the needs of the safety critical market in Avionics, Industrial, Military and Automotive applications including D0178-B certification. Learn More...
OpenGL SC 1.0 at a glance
The Safety Critical Profile for OpenGL is defined to meet the unique requirements of the for safety-critical applications such as avionics and automotive instrumentation displays. OpenGL SC 1.0 removes functionality from OpenGL ES 1.0 to minimize implementation and safety certification costs. It also adds functionality, such as display lists, that are required to support legacy and auto-generated display applications in safety critical markets.
For Safety Critical applications: OpenGL SC 1.0 is defined relative to the OpenGL 1.3 specification and is designed to meet the needs of the safety critical market in Avionics, Industrial, Military and Automotive applications including D0178-B certification.
OpenGL SC Registry
The OpenGL SC 1.0 core API specification and header file, as well as the guiding philosophy document, are in the OpenGL SC API Registry
- OpenGL SC API Registry: Core API Specification and Headers
OpenGL SC 1.0 Target Applications
- Avionics - The FAA Mandated DO-178B certification process for software airplane cockpits demands 100% reliable graphics drivers for instrumentation, navigation and controls
- Automotive - Integrated dashboard applications will need OpenGL SC safety-critical reliability
- Industrial - Equipment for power plant instrumentation, transportation monitoring and control, networking, surveillance, etc., will all eventually be updated with COTS graphics that meets safety-critical certification
- Medical - Real-time display of medical data requiring 100% reliability for surgery
- Military - Primarily Avionics but increasingly embedded training and visualization on handheld devices.
OpenGL SC 1.0 in Detail
How OpenGL SC 1.0 differs from the OpenGL ES 1.0 Common Profile
The Safety Critical Profile
- OES_single_precision as core extension
- EXT_paletted_texture as required extension
EXT_shared_texture_palette as an optional extension with limitations
- These two extensions are critical to most Avionics 2D mapping applications. They separate color table from the texture data to allow rapid colour table change and permit palettes to be shared between multiple textures.
- Uses only float, int, and unsigned byte types
- Begin/End paradigm is supported (in addition to vertex arrays)
- A majority of 2D Safety Critical certifiable/qualifiable applications and tools rely on this mechanism. It enables a melding of program and data in such a way as to allow a certifying authority to more clearly understand an application.
- Display lists are supported (but not deletion)
- Safety Critical applications using the Begin/End paradigm also use display lists to improve performance. On a system with multiple applications running simultaneously, drivers are implemented in such a way that one application cannot damage another. The drivers are rendering in indirect mode, which has a penalty on bandwidth. Using display lists allows to reduce bandwidth requirements to gain back performance
- DrawPixels and Bitmap are supported
- Safety Critical applications require the ability to draw images directly in window coordinates, but with the constraint of minimizing the certification burden.
- Line antialiasing is supported for high-quality 2D applications
- Antialiasing is important for visual quality, an important issue in many safety critical applications. Some antialiasing can be implemented within the application using 2D textures, but antialiasing is used by enough applications that it should be in the profile rather than something left to the application.
- Texture matrix
- Compressed textures
- Copy tex image
- Alpha func
- Blend func
- Depth func