1Name 2 3 ANGLE_vulkane_image 4 5Name Strings 6 7 GL_ANGLE_vulkane_image 8 9Contributors 10 11 Peng Huang, Google 12 13Contact 14 15 Peng Huang, Google (penghuang 'at' chromium.com) 16 17Status 18 19 Draft 20 21Version 22 23 Last Modified Date: Nov 19, 2021 24 Revision: 1 25 26Number 27 28 TBD 29 30Dependencies 31 32 Written against the OpenGL 4.5 and OpenGL ES 3.2 specifications 33 34 GL_ANGLE_vulkane_image requires GL_EXT_external_objects 35 36Overview 37 38 Building upon the OpenGL memory object and semaphore framework 39 defined in EXT_external_objects, this extension enables an OpenGL 40 application to share textures with an external API. 41 42New Procedures and Functions 43 44 If the GL_ANGLE_vulkane_image string is reported, the following commands 45 are added: 46 47 void AcquireTexturesANGLE(uint numTextures, 48 const uint *textures, 49 const GLenum *layouts); 50 51 void ReleaseTexturesANGLE(uint numTextures, 52 const uint *textures, 53 GLenum *layouts); 54 55New Tokens 56 57 None 58 59Additions to Chapter 4 of the OpenGL 4.5 Specification (Event Model) 60 61 The command 62 void AcquireTexturesANGLE(uint numTextures, 63 const uint *textures, 64 const GLenum *layouts); 65 will acquire ownership of textures. Since the texture layout state is 66 managed internally by the GL, but may have been modified by an external API, 67 the current layout of the textures must be specified to initialize internal 68 GL state prior to correspond to those specified by the Vulkan API as 69 described in table 4.4. However, the layouts do not necessarily correspond 70 to an optimal state for any particular GL operation. The GL will simply 71 perform appropriate transitions internally as necessary based on the 72 specified current layout of the texture. 73 74 The command 75 void ReleaseTexturesANGLE(uint numTextures, 76 const uint *textures, 77 GLenum *layouts); 78 will release ownership of textures. The current texture layouts will be 79 returned, so an external API can perform appropriate transitions as 80 necessary based on the returned current layout of the textures. 81 82Revision History 83 84 Revision 1, 2021-11-19 (Peng Huang) 85 - Initial draft based closely on EXT_external_objects_fd. 86