Name ANGLE_webgpu_texture_client_buffer Name Strings EGL_ANGLE_webgpu_texture_client_buffer Contributors Geoff Lang Contacts Geoff Lang, Google Inc. (geofflang 'at' google.com) Status Draft Version Version 1, May 15, 2025 Number EGL Extension #?? Dependencies This extension is written against the wording of the EGL 1.2 Specification. References the EGL_ANGLE_device_webgpu and EGL_KHR_image_base extensions. Overview This extension allows creating EGL surfaces and EGL images from D3D texture objects. New Types None New Procedures and Functions None New Tokens Accepted by the parameter of eglCreateImageKHR and parameter of eglCreatePbufferFromClientBuffer: EGL_WEBGPU_TEXTURE_ANGLE 0x34F5 Accepted in the parameter of eglCreateImageKHR and eglCreatePbufferFromClientBuffer: EGL_TEXTURE_TYPE_ANGLE 0x345C EGL_TEXTURE_INTERNAL_FORMAT_ANGLE 0x345D 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 are listed in Table aaa, below. +----------------------------+-----------------------------------------+ | | Notes | +----------------------------+-----------------------------------------+ | EGL_WEBGPU_TEXTURE_ANGLE | Used for WebGPU texture objects | +----------------------------+-----------------------------------------+ Table aaa. Legal values for eglCreateImageKHR parameter ... If is EGL_WEBGPU_TEXTURE_ANGLE, must be a valid display, must be EGL_NO_CONTEXT, must be a pointer to a valid WGPUTexture handle (cast into the type EGLClientBuffer), and attributes other than EGL_TEXTURE_INTERNAL_FORMAT_ANGLE or EGL_TEXTURE_TYPE_ANGLE are ignored. The width and height of the pbuffer are determined by the width and height of . If EGL_TEXTURE_INTERNAL_FORMAT_ANGLE and EGL_TEXTURE_TYPE_ANGLE is specified, they are used to interpret according to the provided internal format. If EGL_TEXTURE_INTERNAL_FORMAT_ANGLE is a sized internal format, EGL_TEXTURE_TYPE_ANGLE is not required. If either EGL_TEXTURE_INTERNAL_FORMAT_ANGLE or EGL_TEXTURE_TYPE_ANGLE is provided and they are not a valid texture format or the texture format is not a valid reinterpretation of the provided texture, EGL_BAD_PARAMETER is generated. If the EGL_ANGLE_device_webgpu extension is present, the provided WGPUTexture handle must have been created by the same WGPUDevice queried from the display. It is undefined behaviour to import a WGPUTexture created on a different WGPUDevice. The image may later be used as a GL_TEXTURE_2D or GL_TEXTURE_EXTERNAL_OES target sibling based on the availability of GL_OES_EGL_image and/or GL_OES_EGL_image_external extensions." Additions to Chapter 3 of the EGL 1.2 Specification (EGL Functions and Errors) Replace the last sentence of paragraph 1 of Section 3.5.3 with the following text. "Currently, the only client API resources which may be bound in this fashion are OpenVG VGImage objects and Direct3D texture objects." Replace the last sentence of paragraph 2 ("To bind a client API...") of Section 3.5.3 with the following text. "When is EGL_OPENVG_IMAGE or EGL_WEBGPU_TEXTURE_ANGLE, the width and height of the pbuffer are determined by the width and height of ." Replace the third paragraph of Section 3.5.3 with the following text. " specifies the type of buffer to be bound. The only allowed values of are EGL_OPENVG_IMAGE and EGL_WEBGPU_TEXTURE_ANGLE". Append the following text to the fourth paragraph of Section 3.5.3. "When is EGL_WEBGPU_TEXTURE_ANGLE, must be a valid D3D texture object, cast into the type EGLClientBuffer. If the EGL_ANGLE_device_webgpu extension is present, the provided WGPUTexture handle must have been created by the same WGPUDevice queried from the display. It is undefined behaviour to import a WGPUTexture created on a different WGPUDevice." Append to the end of Section 3.5.3. "When a pbuffer is created with type EGL_WEBGPU_TEXTURE_ANGLE, the contents of the associated WGPUTexture are undefined while the pbuffer is the current read surface, draw surface or bound to a client texture." Issues None Revision History Version 1, May 15, 2025 (Geoff Lang) - Initial Draft