Path: blob/main_old/extensions/ANGLE_external_objects_fuchsia.txt
1693 views
Name12ANGLE_external_objects_fuchsia34Name Strings56GL_ANGLE_memory_object_fuchsia7GL_ANGLE_semaphore_fuchsia89Contributors1011Michael Spang, Google1213Contact1415Michael Spang, Google (spang 'at' google.com)1617Status1819Draft2021Version2223Last Modified Date: Feb 19, 202024Revision: 12526Number2728TBD2930Dependencies3132Written against the OpenGL 4.5 and OpenGL ES 3.2 specifications3334GL_ANGLE_memory_object_fuchsia requires GL_EXT_memory_object3536GL_ANGLE_semaphore_fuchsia requires GL_EXT_semaphore3738Overview3940Building upon the OpenGL memory object and semaphore framework41defined in EXT_external_objects, this extension enables an OpenGL42application to import a memory object or semaphore from Zircon43external handles.4445New Procedures and Functions4647If the GL_ANGLE_memory_object_fuchsia string is reported, the following48commands are added:4950void ImportMemoryZirconHandleANGLE(uint memory,51uint64 size,52enum handleType,53uint handle);5455If the GL_ANGLE_semaphore_fuchsia string is reported, the following commands56are added:5758void ImportSemaphoreZirconHandleANGLE(uint semaphore,59enum handleType,60uint handle);616263New Tokens6465If the GL_ANGLE_memory_object_fuchsia string is reported, the following66tokens are added:6768Accepted by the <handleType> parameter of ImportMemoryZirconHandleANGLE().6970HANDLE_TYPE_ZIRCON_VMO_ANGLE 0x93AE7172If the GL_ANGLE_semaphore_fuchsia string is reported, the following73tokens are added:7475Accepted by the <handleType> parameter of ImportSemaphoreZirconHandleANGLE().7677HANDLE_TYPE_ZIRCON_EVENT_ANGLE 0x93AF7879Additions to Chapter 4 of the OpenGL 4.5 Specification (Event Model)8081Add the following entry to table 4.2 "Commands for importing82external semaphore handles."8384| Handle Type | Import command |85+--------------------------------+----------------------------------+86| HANDLE_TYPE_ZIRCON_EVENT_ANGLE | ImportSemaphoreZirconHandleANGLE |87+--------------------------------+----------------------------------+8889Replace the paragraph in section 4.2.1 beginning "External handles90are often defined..." with the following9192The command9394ImportSemaphoreZirconHandleANGLE(uint semaphore,95enum handleType,96uint handle);9798imports a semaphore from the zircon handle <handle>. What type of99handle <handle> refers to is determined by <handleType>. A successful100import operation transfers ownership of <handle> to the GL101implementation, and performing any operation on <handle> in the102application after an import results in undefined behavior.103104Additions to Chapter 6 of the OpenGL 4.5 Specification (Memory Objects)105106Add the following entry to table 6.2 "Commands for importing107external memory handles."108109| Handle Type | Import command |110+------------------------------+-------------------------------+111| HANDLE_TYPE_ZIRCON_VMO_ANGLE | ImportMemoryZirconHandleANGLE |112+------------------------------+-------------------------------+113114Replace the paragraph in section 6.1 beginning "External handles are115often defined..." with the following116117The command118119void ImportMemoryZirconHandleANGLE(uint memory,120uint64 size,121enum handleType,122uint handle);123124imports a memory object of length <size> from the handle125<handle>. What type of object <handle> refers to is determined by126<handleType>. A successful import operation transfers ownership127of <handle> to the GL implementation, and performing any operation on128<handle> in the application after an import results in undefined129behavior.130131Revision History132133Revision 1, 2020-02-19 (Michael Spang)134- Initial draft based closely on EXT_external_objects_fd.135136137