OpenGL SC - Safety Critical Profile

/api/openglsc

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.
Safety Critical Applications for OpenGL SC

OpenGL SC 1.0 in Detail

How OpenGL SC 1.0 differs from the OpenGL ES 1.0 Common Profile

The Safety Critical Profile

General

  • 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

Features Added

  • 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.

Features Removed

  • Texture matrix
  • Compressed textures
  • Multisampling
  • Copy tex image
  • Fog
  • Dithering

Features Limited

  • Texturing
  • Alpha func
  • Blend func
  • Depth func