Commit 18168286 by Brandon Jones Committed by Commit Bot

Add initial specification for EGL_ANGLE_explicit_context Extension

Adds formal specification for the unimplemented EGL_ANGLE_explicit_context extension. This extension will introduce alternate entry points that allow us to specify the context during the gl function call, so we can avoid looking it up in TLS. Bug: angleproject:1395 Change-Id: I6060c02b8edf586dc2443b563e2d292c00e4fbb7 Reviewed-on: https://chromium-review.googlesource.com/1033577 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org> Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org>
parent fa7cc9da
Name
ANGLE_explicit_context
Name Strings
GL_ANGLE_explicit_context
Contributors
Brandon Jones, Intel
Contacts
Brandon Jones, Intel (brandon1.jones 'at' intel 'dot' com)
Status
Complete.
Version
Version 1, 2018-5-22
Number
GL Extension XXX
Dependencies
OpenGL ES 3.1 is required.
EGL_ANGLE_explicit_context is required.
Overview
This extension adds new OpenGL ES entry points that allow the user to pass the current EGL
context as a function parameter. This allows users to skip lookup of the thread's current
context upon entry.
New Types
typedef void* GLeglContextANGLE
New Procedures and Functions
For every OpenGL ES entry point available in OpenGL ES 2.0, 3.0 and 3.1, an additional entry
point is made available. The entry points have the form of:
<return value> gl<entry point name>ContextANGLE(GLeglContextANGLE context, <entry point parameters>)
If a function already has an extension suffix, this form still applies.
New Tokens
None.
Additions to Chapter 2 of the OpenGL ES 3.1 Specification (OpenGL ES Fundamentals)
The ContextANGLE entry points allow the user to pass the current EGL context as a function
parameter to provide better performance than looking up the current EGL context at every GL
entry point.
Calls made with an explicit context provide no additional validation for the passed context
parameter.
Calls made with an explicit context will generate errors under the same conditions as they
would without an explicit context. Any instances of undefined behaviour without specifying
an explicit context are still undefined when specifying an explicit context.
When an EGL context that is not current is explicitly passed, the resulting behavior is
undefined.
Issues
None.
Revision History
Version 1, 2018-5-22 (Brandon Jones)
- Initial draft
\ No newline at end of file
Name
ANGLE_explicit_context_gles1
Name Strings
GL_ANGLE_explicit_context_gles1
Contributors
Brandon Jones, Intel
Contacts
Brandon Jones, Intel (brandon1.jones 'at' intel 'dot' com)
Status
Complete.
Version
Version 1, 2018-5-22
Number
GL Extension XXX
Dependencies
OpenGL ES 1.0 is required.
EGL_ANGLE_explicit_context is required.
Overview
This extension adds new OpenGL ES entry points that allow the user to pass the current EGL
context as a function parameter. This allows users to skip lookup of the thread's current
context upon entry.
New Types
typedef void* GLeglContextANGLE
New Procedures and Functions
For every OpenGL ES entry point available in OpenGL ES 1.0, an additional entry point is made
available. The entry points have the form of:
<return value> gl<entry point name>ContextANGLE(GLeglContextANGLE context, <entry point parameters>)
If a function already has an extension suffix, this form still applies.
New Tokens
None.
Additions to Chapter 2 of the OpenGL ES 1.0 Specification (OpenGL ES Operation)
The ContextANGLE entry points allow the user to pass the current EGL context as a function
parameter to provide better performance than looking up the current EGL context at every GL
entry point.
Calls made with an explicit context provide no additional validation for the passed context
parameter.
Calls made with an explicit context will generate errors under the same conditions as they
would without an explicit context. Any instances of undefined behaviour without specifying
an explicit context are still undefined when specifying an explicit context.
When an EGL context that is not current is explicitly passed, the resulting behavior is
undefined.
Issues
None.
Revision History
Version 1, 2018-5-22 (Brandon Jones)
- Initial draft
\ No newline at end of file
Name
ANGLE_explicit_context
Name Strings
EGL_ANGLE_explicit_context
Contributors
Brandon Jones, Intel
Contacts
Brandon Jones, Intel (brandon1.jones 'at' intel 'dot' com)
Status
Complete.
Version
Version 1, 2018-5-22
Number
EGL Extension XXX
Extension Type
EGL Client Extension
Dependencies
OpenGL ES 3.1 is required.
EGL_KHR_get_all_proc_addresses is required.
EGL_EXT_client_extensions is required.
Overview
This extension adds new OpenGL ES entry points that allow the user to pass the current EGL
context as a function parameter. This allows users to skip lookup of the thread's current
context upon entry.
New Types
None.
New Procedures and Functions
For every OpenGL ES entry point available through eglGetProcAddress, an additional entry point
is made available. The entry points have the form of:
<return value> gl<entry point name>ContextANGLE(GLeglContextANGLE context, <entry point parameters>)
If a function already has an extension suffix, this form still applies.
New Tokens
None.
Additions to the EGL Specification
When using OpenGL ES as a client library, the ContextANGLE entry points allow the user to
pass the current EGL context as a function parameter to provide better performance than
looking up the current EGL context at every GL entry point.
Calls made with an explicit context provide no additional validation for the passed context
parameter.
Calls made with an explicit context will generate errors under the same conditions as they
would without an explicit context. Any instances of undefined behaviour without specifying
an explicit context are still undefined when specifying an explicit context.
When an EGL context that is not current is explicitly passed, the resulting behavior is
undefined.
Issues
None.
Revision History
Version 1, 2018-5-22 (Brandon Jones)
- Initial draft
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment