xref: /aosp_15_r20/external/angle/extensions/ANGLE_vulkan_image.txt (revision 8975f5c5ed3d1c378011245431ada316dfb6f244)
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