1Name 2 3 ANGLE_robust_resource_initialization 4 5Name Strings 6 7 EGL_ANGLE_robust_resource_initialization 8 9Contributors 10 11 Geoff Lang, Google 12 Ken Russell, Google 13 14Contacts 15 16 Shannon Woods, Google (shannonwoods 'at' google.com) 17 18Status 19 20 Draft 21 22Version 23 24 Version 4, September 19, 2017 25 26Number 27 28 EGL Extension TBD 29 30Dependencies 31 32 This extension is written against the wording of the EGL 1.5 33 specification. 34 35 An OpenGL ES implementation supporting ANGLE_robust_resource_initialization 36 or an implementation supporting equivalent functionality is required. 37 38Overview 39 40 This extension allows creating an OpenGL ES context or EGL surface 41 supporting robust resource initialization. 42 43New Types 44 45 None 46 47New Procedures and Functions 48 49 None 50 51New Tokens 52 53 Accepted as an attribute name by eglCreateContext, eglQueryContext, 54 eglCreateWindowSurface, eglCreatePbufferSurface, eglCreatePixmapSurface, 55 and eglQuerySurface: 56 57 EGL_ROBUST_RESOURCE_INITIALIZATION_ANGLE 0x3453 58 59Additions to the EGL 1.5 Specification 60 61 Add a new section entitled "OpenGL ES Robust Resource Initialization" 62 to section 3.7.1: 63 64 "If the attribute EGL_ROBUST_RESOURCE_INITIALIZATION_ANGLE 65 is set to EGL_TRUE, a context supporting <robust resource initialization> 66 will be created. OpenGL ES contexts must support the 67 ANGLE_robust_resource_initialization extension, or equivalent core API 68 functionality. This attribute is supported only for OpenGL ES contexts. 69 The default value of EGL_ROBUST_RESOURCE_INITIALIZATION_ANGLE 70 is EGL_FALSE." 71 72 Add a new paragraph to section 3.7.4 "Context Queries" under 73 eglQueryContext: 74 75 "Querying EGL_ROBUST_RESOURCE_INITIALIZATION_ANGLE returns if 76 the context was created using robust initialization." 77 78 Add a new paragrah to section 3.5.1 "Creating On-Screen Rendering 79 Surfaces" and section 3.5.2 "Creating Off-Screen Rendering Surfaces": 80 81 "EGL_ROBUST_RESOURCE_INITIALIZATION_ANGLE specifies if the pixel values of 82 the surface are initialized. If its value is EGL_TRUE then all pixel and 83 stencil values in the surface are initialized to zero, depth values are 84 initialized to 1.0. Otherwise the contents are undefined. The default value 85 of EGL_ROBUST_RESOURCE_INITIALIZATION_ANGLE is EGL_FALSE." 86 87 Add a new paragrah to section 3.5.6 "Surface Attributes" under 88 eglQuerySurface: 89 90 "Querying EGL_CONTEXT_ROBUST_RESOURCE_INITIALIZATION_ANGLE returns if 91 the surface was created using robust initialization." 92 93 Modify the 2nd paragraph of section 3.10.1 "Posting to a Window": 94 95 "... If EGL_ROBUST_RESOURCE_INITIALIZATION_ANGLE is EGL_TRUE, following 96 conditions apply. If EGL_SWAP_BEHAVIOR attribute is not 97 EGL_BUFFER_PRESERVED, color and stencil buffer values are set to zero, depth 98 buffer values are set to 1.0. Otherwise, color and ancillary buffer values 99 preserved. 100 101 If EGL_ROBUST_RESOURCE_INITIALIZATION_ANGLE is EGL_FALSE, the contents of 102 ancillary buffers are always undefined after calling eglSwapBuffers. ... 103 " 104 105Issues 106 107 (1) Should this be a Display or Context creation extension? 108 109 RESOLVED (3): Making this a Context creation extension has complications in 110 the implementation - what happens to resources shared between Contexts 111 with and without the extension enabled? Also for display-created resources, 112 such as those used in the D3D11 SwapChain, there's no way to specify if 113 we want them robustly initialized. Hence it is clearer to specify this 114 extension as a Display extension. 115 116 RESOLVED (4): This extension has been moved back to a context/surface 117 creation attribute. This makes the extension much easier to detect before 118 the GL context is created. 119 120Revision History 121 122 Version 1, 2015/01/07 - first draft. 123 Version 2, 2017/03/01 - renamed extension and enum. 124 Version 3, 2017/05/31 - renamed extension and made into display extension. 125 Version 4, 2017/09/19 - renamed extension and changed into a 126 context/surface creation attribute. 127 Version 5, 2024/09/21 - specified that depth values are initialized to 1.0 128 specified that stencil values are initialized to 0.0 129