gfx/angle/extensions/EGL_EXT_create_context_robustness.txt

Sat, 03 Jan 2015 20:18:00 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Sat, 03 Jan 2015 20:18:00 +0100
branch
TOR_BUG_3246
changeset 7
129ffea94266
permissions
-rw-r--r--

Conditionally enable double key logic according to:
private browsing mode or privacy.thirdparty.isolate preference and
implement in GetCookieStringCommon and FindCookie where it counts...
With some reservations of how to convince FindCookie users to test
condition and pass a nullptr when disabling double key logic.

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

mercurial