Comparison with EGL

Developers familiar with NVIDIA's non-safety SDK may have experience with EGL, which also provides objects (EGLImage, EGLSync, and EGLStream) for sharing resources between libraries. NVIDIA continues to support EGL, but EGL is not suitable for the rigorous requirements of a safety-certified system. Some reasons:

  • Resources are allocated using one library. That library has no knowledge that resources will be shared with another library. There is therefore no guarantee that resources will be allocated in a way that meets the requirements of the other library. Mapping them may not be possible.
  • EGL understands only two-dimensional image data. It cannot handle tensors or other non-image sensor data.
  • The EGL interfaces were not designed with safety in mind and have failure modes not allowed in a safety-certified system.

Porting EGL applications to NvStreams requires more than a simple one-to-one replacement of functions. NvStreams requires the application to be more directly involved than EGL in determining resource requirements, allocating resources, and exchanging resources.