EGL is an interface between Khronos rendering APIs such as OpenGL ES and the underlying native platform window system. It handles graphics context management, surface/buffer binding, and rendering synchronization and enables high-performance, accelerated, mixed-mode, 2D and 3D rendering using other Khronos APIs.
EGL Specifications
This product supports the Khronos Native Platform Graphics Interface (EGL Version 1.5 - August 27, 2014)
EGL Extensions
There are some EGL extensions that are supported on the prececessor NVIDIA® Tegra® processors that are unsupported on this NVIDIA® Tegra® processor. For a list of those unsupported extensions and work-around advice, see the "OpenGL
ES Porting Guide" topic in the "Graphics Guide" chapter in the Development Guide.
EGL Extensions
NVIDIA DRIVE® product supports the Khronos Native Platform Graphics Interface (EGL 1.5 Specification). The OpenGL ES driver in this release supports the following EGL extensions.
- Attention
- Some NVIDIA DRIVE® releases support a subset of the extensions documented here. To ensure your release supports a given extension, you must query the driver. For example, the following code snippet determines whether the driver supports the
EGL_EXT_platform_wayland
EGL extension: // Create an EGL context before you call this function.
extensionString = (const char*)eglQueryString(EGL_NO_DISPLAY, EGL_EXTENSIONS);
if (strstr(extensionString,
"EGL_EXT_platform_wayland")) {
// The extension is available. Do something with it.
}
else {
// The extension is not available.
// Use a workaround that produces results that are similar
// to the EGL extension.
}
- HERE | URL EGL_EXT_buffer_age — Exposes how the driver manages the set of front and back buffers associated with a given surface.
- HERE | URL EGL_EXT_client_extensions — Introduces the concept of extension type, requires that each EGL extension belong to exactly one type, and defines two types: display and client.
- HERE | URL EGL_EXT_create_context_robustness — Allows creating contexts for robust buffer access and graphics reset handling.
- HERE | URL EGL_EXT_device_base — Allows the initialization of EGL displays and surfaces directly on top of native GPU or device objects rather than native window system objects.
- HERE | URL EGL_EXT_device_drm — Allows mapping of device between EGL and DRM/KMS.
- HERE | URL EGL_EXT_output_base — Creates demand for a method to initialize EGL displays and surfaces directly on top of native GPU or device objects rather than native window system objects.
- HERE | URL EGL_EXT_output_drm — Allows mapping of output handles between EGL and DRM/KMS.
- HERE | URL EGL_EXT_platform_base — Allows EGL implementation to support multiple platforms at runtime.
- HERE | URL EGL_EXT_platform_device — Creates an EGLDisplay from an EGLDeviceEXT.
- HERE | URL EGL_EXT_platform_wayland — Defines how to create EGL resources from native Wayland resources using functions defined by EGL_EXT_platform_base.
- HERE | URL EGL_EXT_platform_x11 — Defines how to create EGL resources from native X11 resources using the functions defined by EGL_EXT_platform_base.
- HERE | URL EGL_EXT_stream_consumer_egloutput — Allows the binding of EGLOutputLayerEXTs as stream consumers.
- HERE | N/A EGL_EXT_stream_consumer_qnxscreen_window — Allows a QNX screen window to be connected to an EGLStream as its consumer.
- HERE | URL EGL_IMG_context_priority — Allows an EGLContext to be created with a priority hint.
- HERE | URL EGL_KHR_config_attribs — Adds support for creating an onscreen EGLSurface containing multiple color buffers.
- HERE | URL EGL_KHR_create_context — Adds context creation attributes for specifying context API version.
- HERE | URL EGL_KHR_fence_sync — Introduces sync objects (synchronization primitives) into EGL.
- HERE | URL EGL_KHR_get_all_proc_addresses — Allows application to query both core and extension functions.
- HERE | URL EGL_KHR_gl_renderbuffer_image — Creates an EGLImage from a render buffer.
- HERE | URL EGL_KHR_gl_texture_2D_image — Creates an EGLImage from a 2d texture.
- HERE | URL EGL_KHR_gl_texture_cubemap_image — Creates an EGLImage from a cubemap texture.
- HERE | URL EGL_KHR_image — Provides legacy support for original EGLImage specification, plus the
EGL_IMAGE_PRESERVED_KHR
attribute.
- HERE | URL EGL_KHR_image_base — Provides base support for EGLImage.
- HERE | URL EGL_KHR_image_pixmap — Creates an EGLImage from a native pixmap.
- HERE | URL EGL_KHR_reusable_sync — Provides synchronization objects between threads or API contexts.
- HERE | URL EGL_KHR_stream — Transfers a sequence of images from one rendering API to another.
- HERE | URL EGL_KHR_stream_consumer_gltexture — Allows OpenGL ES texture as an EGLStream consumer. Previously called EGL_NV_stream_consumer_gltexture.
- HERE | URL EGL_KHR_stream_cross_process_fd — Allows an EGLStreamKHR object handle to be duplicated into another process so that the EGLStream producer can be in one process while the EGLStream consumer can be in another process.
- HERE | URL EGL_KHR_stream_fifo — Allows an EGLStream to act as a FIFO.
- HERE | URL EGL_KHR_stream_producer_eglsurface — Allows EGLSurface as an EGLStream producer. Previously called EGL_NV_stream_producer_eglsurface.
- HERE | URL EGL_KHR_surfaceless_context — Allows context EGL_NV_stream_syncts without a current EGLSurface.
- HERE EGL_NV_stream_metadata — Provides a means for an application (or application suite in the cross-process cases) to associate arbitrary metadata with a stream.
- HERE | URL EGL_NV_stream_remote — Provides an attribute-based framework for creating EGLStream pairs.
- HERE | URL EGL_NV_stream_cross_process — Provides cross-process EGLStream functionality using EGL_NV_stream_remote framework.
- HERE | URL EGL_NV_stream_cross_partition — Provides cross-partition EGLStream functionality across Virtual Machine boundaries.
- HERE | URL EGL_NV_stream_socket — Provides base attributes for creating socket-based communication in EGLStream pairs.
- HERE | URL EGL_NV_stream_socket_unix — Provides UNIX domain socket support for EGLStreams using EGL_NV_stream_remote framework.
- HERE | URL EGL_NV_stream_socket_inet — Provides Internet protocol socket support for EGLStreams.
- HERE | URL EGL_NV_stream_fifo_synchronous — Configures FIFO EGLStreams to only present completely rendered frames to consumers.
- HERE | URL EGL_NV_stream_sync — Extends
EGL_KHR_reusable_sync
for signaling new image frames in an EGLStream.
- HERE | URL EGL_NV_sync — Synchronizes primitives.
- HERE | URL EGL_NV_system_time — Gets the system time from the driver, instead of from the operating system.
- HERE | URL NV_post_sub_buffer — Provides a function that posts a sub-rectangle of a window surface and preserves the back-buffer contents.