| Name |
| |
| KHR_create_context_no_error |
| |
| Name Strings |
| |
| EGL_KHR_create_context_no_error |
| |
| Contributors |
| |
| Maurice Ribble |
| Dominik Witczak |
| Christophe Riccio |
| Piers Daniell |
| Jon Leech |
| James Jones |
| Daniel Kartch |
| Steve Hill |
| Jan-Harald Fredriksen |
| |
| Contact |
| |
| Maurice Ribble (mribble 'at' qti.qualcomm.com) |
| |
| Status |
| |
| Complete. |
| Approved by the Khronos Board of Promoters on May 8, 2015. |
| |
| Version |
| |
| Version 6, May 8, 2015 |
| |
| Number |
| |
| EGL Extension #91 |
| |
| Dependencies |
| |
| Requires EGL 1.4. |
| |
| Written against the EGL 1.4 specification. |
| |
| This spec interacts with GL_KHR_no_error (or equivalent) extension. |
| |
| Overview |
| |
| This extension allows the creation of an OpenGL or OpenGL ES context that |
| doesn't generate errors if the context supports a no error mode. The |
| implications of this feature are discussed in the GL_KHR_no_error |
| extension. |
| |
| New Procedures and Functions |
| |
| None |
| |
| New Tokens |
| |
| Accepted as an attribute name in the <*attrib_list> argument to |
| eglCreateContext: |
| |
| EGL_CONTEXT_OPENGL_NO_ERROR_KHR 0x31B3 |
| |
| Additions to the EGL 1.4 Specification |
| |
| Add the following to section 3.7.1 "Creating Rendering Contexts": |
| |
| EGL_CONTEXT_OPENGL_NO_ERROR_KHR indicates whether a faster and lower power |
| mode should be enabled for the OpenGL ES context. In this mode instead of |
| GL errors occurring as defined in the OpenGL ES spec those errors will |
| result in undefined behavior. The default value of |
| EGL_CONTEXT_OPENGL_NO_ERROR_KHR is EGL_FALSE. |
| |
| Errors |
| |
| BAD_MATCH is generated if the value of EGL_CONTEXT_OPENGL_NO_ERROR_KHR |
| used to create <share_context> does not match the value of |
| EGL_CONTEXT_OPENGL_NO_ERROR_KHR for the context being created. |
| |
| BAD_MATCH is generated if the EGL_CONTEXT_OPENGL_NO_ERROR_KHR is TRUE at |
| the same time as a debug or robustness context is specified. |
| |
| New State |
| |
| None |
| |
| Conformance Tests |
| |
| TBD |
| |
| Issues |
| |
| (1) How does this extension interact with debug and robust contexts? |
| |
| RESOLVED: We decided it is an error in EGL if these bits were set at the same |
| time. |
| |
| (2) Can a EGL_CONTEXT_OPENGL_NO_ERROR_KHR contexts share resources with |
| normal contexts? |
| |
| RESOLVED: To join a share group all the contexts in that share group must |
| have this set the same or creation of the context fails. |
| |
| (3) Can we also do this on GLX/WGL? |
| |
| RESOLVED: This is an EGL extension. GLX/WGL should be handled with separate |
| extensions. |
| |
| (4) Should this extension also expose a "no thread safety" mode? For example |
| to do the rendering on one thread but uploading data or compiling shaders |
| from others threads without having the cost of threaded safety kicking in |
| because none of these tasks overlap so we can handle with sync objects. |
| Compiling shaders, loading data and rendering are areas that removed |
| threading may help. |
| |
| RESOLVED: No, this should be done as a separate extension. |
| |
| (5) Should this be GL specific? |
| |
| RESOLVED: Yes, because other context creation tokens have been API specific. |
| This is also the safer path since it's unknown if other APIs might want to do |
| this slightly differently. |
| |
| (6) Should creating a context fail if the context created context does not |
| support a no error mode? |
| |
| RESOLVED: No. Expect context creation to succeed even if the implementation |
| can't honor the request for a no error context. This reduces the number of |
| reasons creating a context can fail and seems to be a more forward looking |
| resolution considering context flags allow GL apps to query what context |
| flags are set. |
| |
| Revision History |
| |
| Rev. Date Author Changes |
| ---- ------------ --------- ---------------------------------------- |
| 1 Jan 28, 2015 ribble Initial version |
| 2 Jan 29, 2015 ribble Added issues list |
| 3 Jan 30, 2015 ribble Split into separate GL and EGL extensions |
| 4 Feb 18, 2015 ribble Resolved issues and cleanup |
| 5 Feb 25, 2015 ribble Rename, better define errors and cleanup |
| 6 May 8, 2015 Jon Leech Assign enum value and release. |