blob: 92b0d1ad938963e89ed83b9ec19121e8f73f305e [file] [log] [blame]
Name
ANGLE_external_objects_fuchsia
Name Strings
GL_ANGLE_memory_object_fuchsia
GL_ANGLE_semaphore_fuchsia
Contributors
Michael Spang, Google
Contact
Michael Spang, Google (spang 'at' google.com)
Status
Draft
Version
Last Modified Date: Feb 19, 2020
Revision: 1
Number
TBD
Dependencies
Written against the OpenGL 4.5 and OpenGL ES 3.2 specifications
GL_ANGLE_memory_object_fuchsia requires GL_EXT_memory_object
GL_ANGLE_semaphore_fuchsia requires GL_EXT_semaphore
Overview
Building upon the OpenGL memory object and semaphore framework
defined in EXT_external_objects, this extension enables an OpenGL
application to import a memory object or semaphore from Zircon
external handles.
New Procedures and Functions
If the GL_ANGLE_memory_object_fuchsia string is reported, the following
commands are added:
void ImportMemoryZirconHandleANGLE(uint memory,
uint64 size,
enum handleType,
uint handle);
If the GL_ANGLE_semaphore_fuchsia string is reported, the following commands
are added:
void ImportSemaphoreZirconHandleANGLE(uint semaphore,
enum handleType,
uint handle);
New Tokens
If the GL_ANGLE_memory_object_fuchsia string is reported, the following
tokens are added:
Accepted by the <handleType> parameter of ImportMemoryZirconHandleANGLE().
HANDLE_TYPE_ZIRCON_VMO_ANGLE 0x93AE
If the GL_ANGLE_semaphore_fuchsia string is reported, the following
tokens are added:
Accepted by the <handleType> parameter of ImportSemaphoreZirconHandleANGLE().
HANDLE_TYPE_ZIRCON_EVENT_ANGLE 0x93AF
Additions to Chapter 4 of the OpenGL 4.5 Specification (Event Model)
Add the following entry to table 4.2 "Commands for importing
external semaphore handles."
| Handle Type | Import command |
+--------------------------------+----------------------------------+
| HANDLE_TYPE_ZIRCON_EVENT_ANGLE | ImportSemaphoreZirconHandleANGLE |
+--------------------------------+----------------------------------+
Replace the paragraph in section 4.2.1 beginning "External handles
are often defined..." with the following
The command
ImportSemaphoreZirconHandleANGLE(uint semaphore,
enum handleType,
uint handle);
imports a semaphore from the zircon handle <handle>. What type of
handle <handle> refers to is determined by <handleType>. A successful
import operation transfers ownership of <handle> to the GL
implementation, and performing any operation on <handle> in the
application after an import results in undefined behavior.
Additions to Chapter 6 of the OpenGL 4.5 Specification (Memory Objects)
Add the following entry to table 6.2 "Commands for importing
external memory handles."
| Handle Type | Import command |
+------------------------------+-------------------------------+
| HANDLE_TYPE_ZIRCON_VMO_ANGLE | ImportMemoryZirconHandleANGLE |
+------------------------------+-------------------------------+
Replace the paragraph in section 6.1 beginning "External handles are
often defined..." with the following
The command
void ImportMemoryZirconHandleANGLE(uint memory,
uint64 size,
enum handleType,
uint handle);
imports a memory object of length <size> from the handle
<handle>. What type of object <handle> refers to is determined by
<handleType>. A successful import operation transfers ownership
of <handle> to the GL implementation, and performing any operation on
<handle> in the application after an import results in undefined
behavior.
Revision History
Revision 1, 2020-02-19 (Michael Spang)
- Initial draft based closely on EXT_external_objects_fd.