blob: 37b0ff5a2ba8c194b5174e7dc4a106565965acea [file] [log] [blame]
Name
ANGLE_vulkan_image
Name Strings
EGL_ANGLE_vulkan_image
Contributors
Peng Huang
Contacts
Peng Huang, Google Inc. (penghuang 'at' chromium.org)
Status
Draft
Version
Version 2, Dec 10, 2021
Number
EGL Extension #??
Dependencies
This extension is written against the wording of the EGL 1.4
Specification.
References the EGL_ANGLE_device_vulkan and EGL_KHR_image_base extensions.
Overview
This extension allows exporting VkImage from EGL images.
New Types
None
New Procedures and Functions
EGLBoolean eglExportVkImageANGLE(
EGLDisplay dpy,
EGLImageKHR image,
void* vk_image,
void* vk_image_create_info);
New Tokens
EGL_VULKAN_IMAGE_ANGLE 0x34D3
EGL_VULKAN_IMAGE_CREATE_INFO_HI_ANGLE 0x34D4
EGL_VULKAN_IMAGE_CREATE_INFO_LO_ANGLE 0x34D5
Additions to Chapter 2 of the EGL 1.4 Specification (EGL Operation)
Add to section 2.5.1 "EGLImage Specification" (as defined by the
EGL_KHR_image_base specification), in the description of
eglCreateImageKHR:
"Values accepted for <target> are listed in Table aaa, below.
+----------------------------+-----------------------------------------+
| <target> | Notes |
+----------------------------+-----------------------------------------+
| EGL_VULKAN_IMAGE_ANGLE | Used for VkImage objects |
+----------------------------+-----------------------------------------+
Table aaa. Legal values for eglCreateImageKHR <target> parameter
...
If <target> is EGL_VULKAN_IMAGE_ANGLE, <dpy> must be a valid display, <ctx>
must be EGL_NO_CONTEXT, <buffer> must be a pointer to a valid VkImage
(cast into the type EGLClientBuffer), the VkImage must be created with the
same VkDevice used by GL implementation and attributes other than
EGL_VULKAN_IMAGE_CREATE_INFO_HI_ANGLE or
EGL_VULKAN_IMAGE_CREATE_INFO_LO_ANGLE are ignored.
EGL_VULKAN_IMAGE_CREATE_INFO_HI_ANGLE and
EGL_VULKAN_IMAGE_CREATE_INFO_LO_ANGLE must be specified. They contain
hi 32bits and lo 32bits of a pointer to the memory stores a valid
VkImageCreateInfo structure. The GL implementation will get all necessary
info of the VkImage from it. All supported structures in the pNext structure
chain will be parsed, not supported structures will be ignored.
Additions to the EGL 1.4 Specification:
To export VkImage from an EGLImage, a new API is required.
The new entrypoint
EGLBoolean eglExportVkImageANGLE(
EGLDisplay dpy,
EGLImageKHR image,
void* vk_image,
void* vk_image_create_info);
is used to retrieve the VkImage and VkImageCreateInfo of the EGLImage.
The VkImage is stored into <vk_image> pointed memory, and VkImageCreateInfo
is filled into <vk_image_create_info> pointed memory.
Issues
None
Revision History
Version 1, 2021/11/17 - first draft.
Version 2, 2021/12/10 - add support for creating EGLImageKHR from VkImage.