• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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