1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/gfx/angle/extensions/EGL_EXT_create_context_robustness.txt Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,169 @@ 1.4 +Name 1.5 + 1.6 + EXT_create_context_robustness 1.7 + 1.8 +Name Strings 1.9 + 1.10 + EGL_EXT_create_context_robustness 1.11 + 1.12 +Contributors 1.13 + 1.14 + Daniel Koch, TransGaming 1.15 + Contributors to EGL_KHR_create_context 1.16 + 1.17 +Contact 1.18 + 1.19 + Greg Roth (groth 'at' nvidia.com) 1.20 + 1.21 +Status 1.22 + 1.23 + Complete. 1.24 + 1.25 +Version 1.26 + 1.27 + Version 3, 2011/10/31 1.28 + 1.29 +Number 1.30 + 1.31 + EGL Extension #37 1.32 + 1.33 +Dependencies 1.34 + 1.35 + Requires EGL 1.4 1.36 + 1.37 + Written against the EGL 1.4 specification. 1.38 + 1.39 + An OpenGL implementation supporting GL_ARB_robustness, an OpenGL ES 1.40 + implementation supporting GL_EXT_robustness, or an implementation 1.41 + supporting equivalent functionality is required. 1.42 + 1.43 +Overview 1.44 + 1.45 + This extension allows creating an OpenGL or OpenGL ES context 1.46 + supporting robust buffer access behavior and a specified graphics 1.47 + reset notification behavior. 1.48 + 1.49 +New Procedures and Functions 1.50 + 1.51 + None 1.52 + 1.53 +New Tokens 1.54 + 1.55 + Accepted as an attribute name in the <*attrib_list> argument to 1.56 + eglCreateContext: 1.57 + 1.58 + EGL_CONTEXT_OPENGL_ROBUST_ACCESS_EXT 0x30BF 1.59 + EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_EXT 0x3138 1.60 + 1.61 + Accepted as an attribute value for EGL_CONTEXT_RESET_NOTIFICATION_- 1.62 + STRATEGY_EXT in the <*attrib_list> argument to eglCreateContext: 1.63 + 1.64 + EGL_NO_RESET_NOTIFICATION_EXT 0x31BE 1.65 + EGL_LOSE_CONTEXT_ON_RESET_EXT 0x31BF 1.66 + 1.67 +Additions to the EGL 1.4 Specification 1.68 + 1.69 + Replace section 3.7.1 "Creating Rendering Contexts" from the 1.70 + fifth paragraph through the seventh paragraph: 1.71 + 1.72 + <attrib_list> specifies a list of attributes for the context. The 1.73 + list has the same structure as described for eglChooseConfig. If an 1.74 + attribute is not specified in <attrib_list>, then the default value 1.75 + specified below is used instead. <attrib_list> may be NULL or empty 1.76 + (first attribute is EGL_NONE), in which case attributes assume their 1.77 + default values as described below. Most attributes are only meaningful 1.78 + for specific client APIs, and will generate an EGL_BAD_ATTRIBUTE 1.79 + error when specified to create for another client API context. 1.80 + 1.81 + Context Versions 1.82 + ---------------- 1.83 + 1.84 + EGL_CONTEXT_CLIENT_VERSION determines which version of an OpenGL ES 1.85 + context to create. This attribute may only be specified when creating 1.86 + an OpenGL ES context (e.g. when the current rendering API is 1.87 + EGL_OPENGL_ES_API). An attribute value of 1 specifies creation of an 1.88 + OpenGL ES 1.x context. An attribute value of 2 specifies creation of an 1.89 + Open GL ES 2.x context. The default value for EGL_CONTEXT_CLIENT_VERSION 1.90 + is 1. 1.91 + 1.92 + Context Robust Access 1.93 + ------------- 1.94 + 1.95 + EGL_CONTEXT_OPENGL_ROBUST_ACCESS_EXT indicates whether <robust buffer 1.96 + access> should be enabled for the OpenGL ES context. Robust buffer 1.97 + access is defined in the GL_EXT_robustness extension specification, 1.98 + and the resulting context must support GL_EXT_robustness and robust 1.99 + buffer access as described therein. The default value of 1.100 + EGL_CONTEXT_OPENGL_ROBUST_ACCESS_EXT is EGL_FALSE. 1.101 + 1.102 + Context Reset Notification 1.103 + -------------------------- 1.104 + 1.105 + The attribute name EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_- 1.106 + EXT specifies the <reset notification behavior> of the rendering 1.107 + context. This attribute is only meaningful for OpenGL ES contexts, 1.108 + and specifying it for other types of contexts will generate an 1.109 + EGL_BAD_ATTRIBUTE error. 1.110 + 1.111 + Reset notification behavior is defined in the GL_EXT_robustness 1.112 + extension for OpenGL ES, and the resulting context must support 1.113 + GL_EXT_robustness and the specified reset strategy. The attribute 1.114 + value may be either EGL_NO_RESET_NOTIFICATION_EXT or EGL_LOSE_- 1.115 + CONTEXT_ON_RESET_EXT, which respectively result in disabling 1.116 + delivery of reset notifications or the loss of all context state 1.117 + upon reset notification as described by the GL_EXT_robustness. The 1.118 + default value for EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_EXT 1.119 + is EGL_NO_RESET_NOTIFICATION_EXT. 1.120 + 1.121 + Add to the eglCreateContext context creation errors: 1.122 + 1.123 + * If <config> does not support a client API context compatible 1.124 + with the requested context flags and context reset notification 1.125 + behavior (for client API types where these attributes are 1.126 + supported), then an EGL_BAD_CONFIG error is generated. 1.127 + 1.128 + * If the reset notification behavior of <share_context> and the 1.129 + newly created context are different then an EGL_BAD_MATCH error is 1.130 + generated. 1.131 + 1.132 + 1.133 +Errors 1.134 + 1.135 + EGL_BAD_CONFIG is generated if EGL_CONTEXT_OPENGL_ROBUST_ACCESS_- 1.136 + EXT is set to EGL_TRUE and no GL context supporting the GL_EXT_- 1.137 + robustness extension and robust access as described therein can be 1.138 + created. 1.139 + 1.140 + EGL_BAD_CONFIG is generated if no GL context supporting the 1.141 + GL_EXT_robustness extension and the specified reset notification 1.142 + behavior (the value of attribute EGL_CONTEXT_RESET_NOTIFICATION_- 1.143 + STRATEGY_EXT) can be created. 1.144 + 1.145 + BAD_MATCH is generated if the reset notification behavior of 1.146 + <share_context> does not match the reset notification behavior of 1.147 + the context being created. 1.148 + 1.149 +New State 1.150 + 1.151 + None 1.152 + 1.153 +Conformance Tests 1.154 + 1.155 + TBD 1.156 + 1.157 +Sample Code 1.158 + 1.159 + TBD 1.160 + 1.161 +Issues 1.162 + 1.163 + None 1.164 + 1.165 +Revision History 1.166 + 1.167 + Rev. Date Author Changes 1.168 + ---- ------------ --------- ---------------------------------------- 1.169 + 3 31 Oct 2011 groth Reverted to attribute for robust access. Now it's a 1.170 + companion to rather than subset of KHR_create_context 1.171 + 2 11 Oct 2011 groth Merged ANGLE and NV extensions. 1.172 + 1 15 July 2011 groth Initial version