EGL_EXT_create_context_robustness#

Supported Hardware#

Series6, Series6XE, Series6XT

Valid APIs#

EGL 1.4

Description#

Several recent trends in how OpenGL integrates into modern computer systems have created new requirements for robustness and security for OpenGL rendering contexts. This extension introduces the concept of robust contexts for OpenGL ES, by providing context reset strategies on hardware resets, and concessions for robust buffer access.

The extension adds two new attributes for context creation:

  • EGL_CONTEXT_OPENGL_ROBUST_ACCESS_EXT: This guarantees a level of safety for all buffer accesses in the context, so that attempting to access data outside of a buffer’s bounds will result in undefined values being returned but must not result in program termination. The exact behaviour of this is defined in the GL_EXT_robustness extension.

  • EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_EXT: This allows users to force a context to be deleted in the event of it causing a hardware reset, notifying the application of such an event.

More information on what happens with these strategies is contained within the GL_EXT_robustness specification.

Note#

This functionality is core to EGL 1.5, so the extension is no longer needed.

Example#

// Create a robust context with hardware notifications
EGLint contextAttribs[] =
{
    EGL_CONTEXT_OPENGL_ROBUST_ACCESS_EXT, EGL_TRUE,
    EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_EXT, EGL_LOSE_CONTEXT_ON_RESET_EXT,
    EGL_NONE
};
EGLContext context = eglCreateContext(display, config, NULL, contextAttribs);