| Name |
| |
| ANGLE_metal_texture_client_buffer |
| |
| Name Strings |
| |
| EGL_ANGLE_metal_texture_client_buffer |
| |
| Contributors |
| |
| Le Hoang Quyen |
| Dan Glastonbury |
| |
| Contacts |
| |
| Jamie Madill, Google (jmadill 'at' google 'dot' com) |
| Le Hoang Quyen (lehoangq 'at' gmail.com) |
| Dan Glastonbury, Apple (djg 'at' apple 'dot' com) |
| |
| Status |
| |
| Draft |
| |
| Version |
| Version 3, Feb 20, 2024 |
| |
| Number |
| |
| EGL Extension #?? |
| |
| Dependencies |
| |
| This extension is written against the wording of the EGL 1.4 |
| Specification. |
| |
| References the EGL_ANGLE_iosurface_client_buffer extension. |
| |
| Overview |
| |
| This extension allows creating EGL images from external metal texture objects. |
| |
| New Types |
| |
| None |
| |
| New Procedures and Functions |
| |
| None |
| |
| New Tokens |
| |
| Accepted in the <target> parameter of eglCreateImageKHR: |
| |
| EGL_METAL_TEXTURE_ANGLE 0x34A7 |
| |
| Accepted as an attribute in the <attrib_list> parameter of |
| eglCreateImageKHR: |
| |
| EGL_METAL_TEXTURE_ARRAY_SLICE_ANGLE 0x34DD |
| |
| Additions to Chapter 2 of the EGL 1.2 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_METAL_TEXTURE_ANGLE | Used for Metal texture objects | |
| +--------------------------------------+-----------------------------------------+ |
| Table aaa. Legal values for eglCreateImageKHR <target> parameter |
| |
| ... |
| |
| Attribute names accepted in <attrib_list> are shown in Table bbb, |
| together with the <target> for which each attribute name is valid, and |
| the default value used for each attribute if it is not included in |
| <attrib_list>. |
| |
| +-------------------------------------+-------------------------+-------------------------+---------------+ |
| | Attribute | Description | Valid | Default Value | |
| | | | <target>s | | |
| +-------------------------------------+-------------------------+-------------------------+---------------+ |
| | EGL_METAL_TEXTURE_ARRAY_SLICE_ANGLE | Select which 2d texture | EGL_METAL_TEXTURE_ANGLE | 0 | |
| | | array slice to use | | | |
| +-------------------------------------+-------------------------+-------------------------+---------------+ |
| | EGL_TEXTURE_INTERNAL_FORMAT_ANGLE | Override the intended | EGL_METAL_TEXTURE_ANGLE | GL_NONE | |
| | | internal format | | | |
| +-------------------------------------+-------------------------+-------------------------+---------------+ |
| Table bbb. Legal attributes for eglCreateImageKHR <attrib_list> parameter |
| |
| If <target> is EGL_METAL_TEXTURE_ANGLE, <dpy> must be a valid display, <ctx> |
| must be EGL_NO_CONTEXT, <buffer> must be a pointer to a valid MTLTexture |
| object (cast into the type EGLClientBuffer), and attributes are ignored. |
| The width and height of the pbuffer are determined by the width and height |
| of <buffer>." |
| |
| If EGL_METAL_TEXTURE_ARRAY_SLICE_ANGLE is specified, it is used to access |
| the specified array slice of the texture array <buffer>. In case the <target> |
| MTLTexture textureType property is MTLTextureType2DArray and arrayLength |
| property is smaller or equal to the value, EGL_BAD_ATTRIBUTE error |
| is generated. In case the target MTLTexture textureType property is not |
| MTLTextureType2DArray, value other than 0 generates EGL_BAD_ATTRIBUTE. |
| |
| If EGL_TEXTURE_INTERNAL_FORMAT_ANGLE is specified, it is used to interpret |
| <buffer> according to the provided internal format. If the MTLPixelFormat for |
| the internal format is incompatible with that of the texture <buffer>, an |
| EGL_BAD_PARAMETER error is generated. |
| |
| If the EGL_ANGLE_device_metal extension is present, the provided Metal texture |
| object must have been created by the same Metal device queried from the |
| display. If these requirements are not met, an EGL_BAD_PARAMETER error is |
| generated." |
| |
| Revision History |
| |
| Version 1, 2020-07-19 - First draft |
| Version 2, 2024-02-12 - Add EGL_METAL_TEXTURE_ARRAY_SLICE_ANGLE |
| Version 3, 2024-02-20 - Add EGL_TEXTURE_INTERNAL_FORMAT_ANGLE |
| |