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