1Name 2 3 EXT_create_context_robustness 4 5Name Strings 6 7 EGL_EXT_create_context_robustness 8 9Contributors 10 11 Daniel Koch, TransGaming 12 Contributors to EGL_KHR_create_context 13 14Contact 15 16 Greg Roth (groth 'at' nvidia.com) 17 18Status 19 20 Complete. 21 22Version 23 24 Version 3, 2011/10/31 25 26Number 27 28 EGL Extension #37 29 30Dependencies 31 32 Requires EGL 1.4 33 34 Written against the EGL 1.4 specification. 35 36 An OpenGL implementation supporting GL_ARB_robustness, an OpenGL ES 37 implementation supporting GL_EXT_robustness, or an implementation 38 supporting equivalent functionality is required. 39 40Overview 41 42 This extension allows creating an OpenGL or OpenGL ES context 43 supporting robust buffer access behavior and a specified graphics 44 reset notification behavior. 45 46New Procedures and Functions 47 48 None 49 50New Tokens 51 52 Accepted as an attribute name in the <*attrib_list> argument to 53 eglCreateContext: 54 55 EGL_CONTEXT_OPENGL_ROBUST_ACCESS_EXT 0x30BF 56 EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_EXT 0x3138 57 58 Accepted as an attribute value for EGL_CONTEXT_RESET_NOTIFICATION_- 59 STRATEGY_EXT in the <*attrib_list> argument to eglCreateContext: 60 61 EGL_NO_RESET_NOTIFICATION_EXT 0x31BE 62 EGL_LOSE_CONTEXT_ON_RESET_EXT 0x31BF 63 64Additions to the EGL 1.4 Specification 65 66 Replace section 3.7.1 "Creating Rendering Contexts" from the 67 fifth paragraph through the seventh paragraph: 68 69 <attrib_list> specifies a list of attributes for the context. The 70 list has the same structure as described for eglChooseConfig. If an 71 attribute is not specified in <attrib_list>, then the default value 72 specified below is used instead. <attrib_list> may be NULL or empty 73 (first attribute is EGL_NONE), in which case attributes assume their 74 default values as described below. Most attributes are only meaningful 75 for specific client APIs, and will generate an EGL_BAD_ATTRIBUTE 76 error when specified to create for another client API context. 77 78 Context Versions 79 ---------------- 80 81 EGL_CONTEXT_CLIENT_VERSION determines which version of an OpenGL ES 82 context to create. This attribute may only be specified when creating 83 an OpenGL ES context (e.g. when the current rendering API is 84 EGL_OPENGL_ES_API). An attribute value of 1 specifies creation of an 85 OpenGL ES 1.x context. An attribute value of 2 specifies creation of an 86 Open GL ES 2.x context. The default value for EGL_CONTEXT_CLIENT_VERSION 87 is 1. 88 89 Context Robust Access 90 ------------- 91 92 EGL_CONTEXT_OPENGL_ROBUST_ACCESS_EXT indicates whether <robust buffer 93 access> should be enabled for the OpenGL ES context. Robust buffer 94 access is defined in the GL_EXT_robustness extension specification, 95 and the resulting context must support GL_EXT_robustness and robust 96 buffer access as described therein. The default value of 97 EGL_CONTEXT_OPENGL_ROBUST_ACCESS_EXT is EGL_FALSE. 98 99 Context Reset Notification 100 -------------------------- 101 102 The attribute name EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_- 103 EXT specifies the <reset notification behavior> of the rendering 104 context. This attribute is only meaningful for OpenGL ES contexts, 105 and specifying it for other types of contexts will generate an 106 EGL_BAD_ATTRIBUTE error. 107 108 Reset notification behavior is defined in the GL_EXT_robustness 109 extension for OpenGL ES, and the resulting context must support 110 GL_EXT_robustness and the specified reset strategy. The attribute 111 value may be either EGL_NO_RESET_NOTIFICATION_EXT or EGL_LOSE_- 112 CONTEXT_ON_RESET_EXT, which respectively result in disabling 113 delivery of reset notifications or the loss of all context state 114 upon reset notification as described by the GL_EXT_robustness. The 115 default value for EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_EXT 116 is EGL_NO_RESET_NOTIFICATION_EXT. 117 118 Add to the eglCreateContext context creation errors: 119 120 * If <config> does not support a client API context compatible 121 with the requested context flags and context reset notification 122 behavior (for client API types where these attributes are 123 supported), then an EGL_BAD_CONFIG error is generated. 124 125 * If the reset notification behavior of <share_context> and the 126 newly created context are different then an EGL_BAD_MATCH error is 127 generated. 128 129 130Errors 131 132 EGL_BAD_CONFIG is generated if EGL_CONTEXT_OPENGL_ROBUST_ACCESS_- 133 EXT is set to EGL_TRUE and no GL context supporting the GL_EXT_- 134 robustness extension and robust access as described therein can be 135 created. 136 137 EGL_BAD_CONFIG is generated if no GL context supporting the 138 GL_EXT_robustness extension and the specified reset notification 139 behavior (the value of attribute EGL_CONTEXT_RESET_NOTIFICATION_- 140 STRATEGY_EXT) can be created. 141 142 BAD_MATCH is generated if the reset notification behavior of 143 <share_context> does not match the reset notification behavior of 144 the context being created. 145 146New State 147 148 None 149 150Conformance Tests 151 152 TBD 153 154Sample Code 155 156 TBD 157 158Issues 159 160 None 161 162Revision History 163 164 Rev. Date Author Changes 165 ---- ------------ --------- ---------------------------------------- 166 3 31 Oct 2011 groth Reverted to attribute for robust access. Now it's a 167 companion to rather than subset of KHR_create_context 168 2 11 Oct 2011 groth Merged ANGLE and NV extensions. 169 1 15 July 2011 groth Initial version 170