| Name |
| |
| ANGLE_robust_resource_initialization |
| |
| Name Strings |
| |
| EGL_ANGLE_robust_resource_initialization |
| |
| Contributors |
| |
| Geoff Lang, Google |
| Ken Russell, Google |
| |
| Contacts |
| |
| Shannon Woods, Google (shannonwoods 'at' google.com) |
| |
| Status |
| |
| Draft |
| |
| Version |
| |
| Version 4, September 19, 2017 |
| |
| Number |
| |
| EGL Extension TBD |
| |
| Dependencies |
| |
| This extension is written against the wording of the EGL 1.5 |
| specification. |
| |
| An OpenGL ES implementation supporting ANGLE_robust_resource_initialization |
| or an implementation supporting equivalent functionality is required. |
| |
| Overview |
| |
| This extension allows creating an OpenGL ES context or EGL surface |
| supporting robust resource initialization. |
| |
| New Types |
| |
| None |
| |
| New Procedures and Functions |
| |
| None |
| |
| New Tokens |
| |
| Accepted as an attribute name by eglCreateContext, eglQueryContext, |
| eglCreateWindowSurface, eglCreatePbufferSurface, eglCreatePixmapSurface, |
| and eglQuerySurface: |
| |
| EGL_ROBUST_RESOURCE_INITIALIZATION_ANGLE 0x3453 |
| |
| Additions to the EGL 1.5 Specification |
| |
| Add a new section entitled "OpenGL ES Robust Resource Initialization" |
| to section 3.7.1: |
| |
| "If the attribute EGL_ROBUST_RESOURCE_INITIALIZATION_ANGLE |
| is set to EGL_TRUE, a context supporting <robust resource initialization> |
| will be created. OpenGL ES contexts must support the |
| ANGLE_robust_resource_initialization extension, or equivalent core API |
| functionality. This attribute is supported only for OpenGL ES contexts. |
| The default value of EGL_ROBUST_RESOURCE_INITIALIZATION_ANGLE |
| is EGL_FALSE." |
| |
| Add a new paragraph to section 3.7.4 "Context Queries" under |
| eglQueryContext: |
| |
| "Querying EGL_ROBUST_RESOURCE_INITIALIZATION_ANGLE returns if |
| the context was created using robust initialization." |
| |
| Add a new paragrah to section 3.5.1 "Creating On-Screen Rendering |
| Surfaces" and section 3.5.2 "Creating Off-Screen Rendering Surfaces": |
| |
| "EGL_ROBUST_RESOURCE_INITIALIZATION_ANGLE specifies if the pixel |
| values of the surface are initialized. If its value is EGL_TRUE then all |
| pixel values in the surface are initialized to zero, otherwise the contents |
| are undefined. The default value of |
| EGL_ROBUST_RESOURCE_INITIALIZATION_ANGLE is EGL_FALSE." |
| |
| Add a new paragrah to section 3.5.6 "Surface Attributes" under |
| eglQuerySurface: |
| |
| "Querying EGL_CONTEXT_ROBUST_RESOURCE_INITIALIZATION_ANGLE returns if |
| the surface was created using robust initialization." |
| |
| Modify the 2nd paragraph of section 3.10.1 "Posting to a Window": |
| |
| "... The contents of the color buffer are undefined if the value of the |
| EGL_SWAP_BEHAVIOR attribute of surface is not EGL_BUFFER_PRESERVED and |
| the value of the EGL_ROBUST_RESOURCE_INITIALIZATION_ANGLE is |
| EGL_FALSE. ..." |
| |
| Issues |
| |
| (1) Should this be a Display or Context creation extension? |
| |
| RESOLVED (3): Making this a Context creation extension has complications in |
| the implementation - what happens to resources shared between Contexts |
| with and without the extension enabled? Also for display-created resources, |
| such as those used in the D3D11 SwapChain, there's no way to specify if |
| we want them robustly initialized. Hence it is clearer to specify this |
| extension as a Display extension. |
| |
| RESOLVED (4): This extension has been moved back to a context/surface |
| creation attribute. This makes the extension much easier to detect before |
| the GL context is created. |
| |
| Revision History |
| |
| Version 1, 2015/01/07 - first draft. |
| Version 2, 2017/03/01 - renamed extension and enum. |
| Version 3, 2017/05/31 - renamed extension and made into display extension. |
| Version 4, 2017/09/19 - renamed extension and changed into a |
| context/surface creation attribute. |