xref: /aosp_15_r20/external/angle/scripts/egl_angle_ext.xml (revision 8975f5c5ed3d1c378011245431ada316dfb6f244)
1<?xml version="1.0" encoding="UTF-8"?>
2<registry>
3    <comment>
4    Copyright 2018 The ANGLE Project Authors. All rights reserved.
5    Use of this source code is governed by a BSD-style license that can be
6    found in the LICENSE file.
7
8    egl_angle_ext.xml
9        Includes data used to auto-generate ANGLE classes.
10    </comment>
11
12    <!-- SECTION: EGL type definitions. -->
13    <types>
14        <type requires="khrplatform">typedef khronos_uint64_t <name>EGLFrameTokenANGLE</name>;</type>
15    </types>
16
17    <!-- SECTION: EGL command definitions. -->
18    <commands namespace="EGL">
19        <command>
20            <proto><ptype>EGLDeviceEXT</ptype> <name>eglCreateDeviceANGLE</name></proto>
21            <param><ptype>EGLint</ptype> <name>device_type</name></param>
22            <param>void *<name>native_device</name></param>
23            <param>const <ptype>EGLAttrib</ptype> *<name>attrib_list</name></param>
24        </command>
25        <command>
26            <proto><ptype>EGLBoolean</ptype> <name>eglReleaseDeviceANGLE</name></proto>
27            <param><ptype>EGLDeviceEXT</ptype> <name>device</name></param>
28        </command>
29        <command>
30            <proto><ptype>EGLBoolean</ptype> <name>eglCreateStreamProducerD3DTextureANGLE</name></proto>
31            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
32            <param><ptype>EGLStreamKHR</ptype> <name>stream</name></param>
33            <param>const <ptype>EGLAttrib</ptype> *<name>attrib_list</name></param>
34        </command>
35        <command>
36            <proto><ptype>EGLBoolean</ptype> <name>eglStreamPostD3DTextureANGLE</name></proto>
37            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
38            <param><ptype>EGLStreamKHR</ptype> <name>stream</name></param>
39            <param>void *<name>texture</name></param>
40            <param>const <ptype>EGLAttrib</ptype> *<name>attrib_list</name></param>
41        </command>
42        <command>
43            <proto><ptype>EGLBoolean</ptype> <name>eglGetSyncValuesCHROMIUM</name></proto>
44            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
45            <param><ptype>EGLSurface</ptype> <name>surface</name></param>
46            <param><ptype>EGLuint64KHR</ptype> *<name>ust</name></param>
47            <param><ptype>EGLuint64KHR</ptype> *<name>msc</name></param>
48            <param><ptype>EGLuint64KHR</ptype> *<name>sbc</name></param>
49        </command>
50        <command>
51            <proto><ptype>EGLint</ptype> <name>eglProgramCacheGetAttribANGLE</name></proto>
52            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
53            <param><ptype>EGLenum</ptype> <name>attrib</name></param>
54        </command>
55        <command>
56            <proto>void <name>eglProgramCacheQueryANGLE</name></proto>
57            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
58            <param><ptype>EGLint</ptype> <name>index</name></param>
59            <param>void *<name>key</name></param>
60            <param><ptype>EGLint</ptype> *<name>keysize</name></param>
61            <param>void *<name>binary</name></param>
62            <param><ptype>EGLint</ptype> *<name>binarysize</name></param>
63        </command>
64        <command>
65            <proto>void <name>eglProgramCachePopulateANGLE</name></proto>
66            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
67            <param>const void *<name>key</name></param>
68            <param><ptype>EGLint</ptype> <name>keysize</name></param>
69            <param>const void *<name>binary</name></param>
70            <param><ptype>EGLint</ptype> <name>binarysize</name></param>
71        </command>
72        <command>
73            <proto><ptype>EGLint</ptype> <name>eglProgramCacheResizeANGLE</name></proto>
74            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
75            <param><ptype>EGLint</ptype> <name>limit</name></param>
76            <param><ptype>EGLint</ptype> <name>mode</name></param>
77        </command>
78        <command>
79            <proto>const char *<name>eglQueryStringiANGLE</name></proto>
80            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
81            <param><ptype>EGLint</ptype> <name>name</name></param>
82            <param><ptype>EGLint</ptype> <name>index</name></param>
83        </command>
84        <command>
85            <proto><ptype>EGLBoolean</ptype> <name>eglDisplayAttribANGLE</name></proto>
86            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
87            <param><ptype>EGLint</ptype> <name>attribute</name></param>
88            <param><ptype>EGLAttrib</ptype> *<name>value</name></param>
89        </command>
90        <command>
91            <proto>void <name>eglAcquireExternalContextANGLE</name></proto>
92            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
93            <param><ptype>EGLSurface</ptype> <name>drawAndRead</name></param>
94        </command>
95        <command>
96            <proto>void <name>eglReleaseExternalContextANGLE</name></proto>
97            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
98        </command>
99        <command>
100            <proto><ptype>EGLBoolean</ptype> <name>eglSwapBuffersWithFrameTokenANGLE</name></proto>
101            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
102            <param><ptype>EGLSurface</ptype> <name>surface</name></param>
103            <param><ptype>EGLFrameTokenANGLE</ptype> <name>frametoken</name></param>
104        </command>
105        <command>
106            <proto><ptype>EGLBoolean</ptype> <name>eglPrepareSwapBuffersANGLE</name></proto>
107            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
108            <param><ptype>EGLSurface</ptype> <name>surface</name></param>
109        </command>
110        <command>
111            <proto>void <name>eglReleaseHighPowerGPUANGLE</name></proto>
112            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
113            <param><ptype>EGLContext</ptype> <name>ctx</name></param>
114        </command>
115        <command>
116            <proto>void <name>eglReacquireHighPowerGPUANGLE</name></proto>
117            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
118            <param><ptype>EGLContext</ptype> <name>ctx</name></param>
119        </command>
120        <command>
121            <proto>void <name>eglHandleGPUSwitchANGLE</name></proto>
122            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
123        </command>
124        <command>
125            <proto>void <name>eglForceGPUSwitchANGLE</name></proto>
126            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
127            <param><ptype>EGLint</ptype> <name>gpuIDHigh</name></param>
128            <param><ptype>EGLint</ptype> <name>gpuIDLow</name></param>
129        </command>
130        <command>
131            <proto><ptype>EGLBoolean</ptype> <name>eglQueryDisplayAttribANGLE</name></proto>
132            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
133            <param><ptype>EGLint</ptype> <name>attribute</name></param>
134            <param><ptype>EGLAttrib</ptype> *<name>value</name></param>
135        </command>
136        <command>
137            <proto><ptype>EGLBoolean</ptype> <name>eglExportVkImageANGLE</name></proto>
138            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
139            <param><ptype>EGLImage</ptype> <name>image</name></param>
140            <param>void *<name>vk_image</name></param>
141            <param>void *<name>vk_image_create_info</name></param>
142        </command>
143        <command>
144            <proto>void *<name>eglCopyMetalSharedEventANGLE</name></proto>
145            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
146            <param><ptype>EGLSyncKHR</ptype> <name>sync</name></param>
147        </command>
148        <command>
149            <proto>void <name>eglWaitUntilWorkScheduledANGLE</name></proto>
150            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
151        </command>
152        <command>
153            <proto>void <name>eglSetValidationEnabledANGLE</name></proto>
154            <param><ptype>EGLBoolean</ptype> <name>validationState</name></param>
155        </command>
156    </commands>
157    <!-- SECTION: ANGLE extension interface definitions -->
158    <extensions>
159        <extension name="EGL_ANGLE_device_creation" supported="egl">
160            <require>
161                <command name="eglCreateDeviceANGLE"/>
162                <command name="eglReleaseDeviceANGLE"/>
163            </require>
164        </extension>
165        <extension name="EGL_ANGLE_feature_control" supported="egl">
166            <require>
167                <command name="eglQueryStringiANGLE"/>
168                <command name="eglQueryDisplayAttribANGLE"/>
169                <enum name="EGL_FEATURE_NAME_ANGLE"/>
170                <enum name="EGL_FEATURE_CATEGORY_ANGLE"/>
171                <enum name="EGL_FEATURE_STATUS_ANGLE"/>
172                <enum name="EGL_FEATURE_COUNT_ANGLE"/>
173                <enum name="EGL_FEATURE_OVERRIDES_ENABLED_ANGLE"/>
174                <enum name="EGL_FEATURE_OVERRIDES_DISABLED_ANGLE"/>
175                <enum name="EGL_FEATURE_ALL_DISABLED_ANGLE"/>
176            </require>
177        </extension>
178        <extension name="EGL_ANGLE_external_context_and_surface" supported="egl">
179            <require>
180                <command name="eglAcquireExternalContextANGLE"/>
181                <command name="eglReleaseExternalContextANGLE"/>
182                <enum name="EGL_EXTERNAL_CONTEXT_ANGLE"/>
183                <enum name="EGL_EXTERNAL_SURFACE_ANGLE"/>
184            </require>
185        </extension>
186        <extension name="EGL_ANGLE_stream_producer_d3d_texture" supported="egl">
187            <require>
188                <command name="eglCreateStreamProducerD3DTextureANGLE"/>
189                <command name="eglStreamPostD3DTextureANGLE"/>
190                <enum name="EGL_D3D_TEXTURE_SUBRESOURCE_ID_ANGLE"/>
191            </require>
192        </extension>
193        <extension name="EGL_CHROMIUM_sync_control" supported="egl">
194            <require>
195                <command name="eglGetSyncValuesCHROMIUM"/>
196            </require>
197        </extension>
198        <extension name="EGL_ANGLE_program_cache_control" supported="egl">
199            <require>
200                <command name="eglProgramCacheGetAttribANGLE"/>
201                <command name="eglProgramCacheQueryANGLE"/>
202                <command name="eglProgramCachePopulateANGLE"/>
203                <command name="eglProgramCacheResizeANGLE"/>
204                <enum name="EGL_PROGRAM_CACHE_SIZE_ANGLE"/>
205                <enum name="EGL_PROGRAM_CACHE_KEY_LENGTH_ANGLE"/>
206                <enum name="EGL_PROGRAM_CACHE_RESIZE_ANGLE"/>
207                <enum name="EGL_PROGRAM_CACHE_TRIM_ANGLE"/>
208                <enum name="EGL_CONTEXT_PROGRAM_BINARY_CACHE_ENABLED_ANGLE"/>
209            </require>
210        </extension>
211        <extension name="EGL_ANGLE_wait_until_work_scheduled" supported="egl">
212            <require>
213                <command name="eglWaitUntilWorkScheduledANGLE"/>
214            </require>
215        </extension>
216        <extension name="EGL_ANGLE_swap_with_frame_token" supported="egl">
217            <require>
218                <command name="eglSwapBuffersWithFrameTokenANGLE"/>
219            </require>
220        </extension>
221        <extension name="EGL_ANGLE_prepare_swap_buffers" supported="egl">
222            <require>
223                <command name="eglPrepareSwapBuffersANGLE"/>
224            </require>
225        </extension>
226        <extension name="EGL_ANGLE_power_preference" supported="egl">
227            <require>
228                <command name="eglReleaseHighPowerGPUANGLE"/>
229                <command name="eglReacquireHighPowerGPUANGLE"/>
230                <command name="eglHandleGPUSwitchANGLE"/>
231                <command name="eglForceGPUSwitchANGLE"/>
232                <enum name="EGL_POWER_PREFERENCE_ANGLE"/>
233                <enum name="EGL_LOW_POWER_ANGLE"/>
234                <enum name="EGL_HIGH_POWER_ANGLE"/>
235            </require>
236        </extension>
237        <extension name="EGL_ANGLE_display_semaphore_share_group" supported="egl">
238            <require>
239                <enum name="EGL_DISPLAY_SEMAPHORE_SHARE_GROUP_ANGLE"/>
240            </require>
241        </extension>
242        <extension name="EGL_ANGLE_display_texture_share_group" supported="egl">
243            <require>
244                <enum name="EGL_DISPLAY_TEXTURE_SHARE_GROUP_ANGLE"/>
245            </require>
246        </extension>
247        <extension name="EGL_ANGLE_vulkan_image" supported="egl">
248            <require>
249                <command name="eglExportVkImageANGLE"/>
250                <enum name="EGL_VULKAN_IMAGE_ANGLE"/>
251                <enum name="EGL_VULKAN_IMAGE_CREATE_INFO_HI_ANGLE"/>
252                <enum name="EGL_VULKAN_IMAGE_CREATE_INFO_LO_ANGLE"/>
253            </require>
254        </extension>
255        <extension name="EGL_ANGLE_metal_create_context_ownership_identity" supported="egl">
256            <require>
257                <enum name="EGL_CONTEXT_METAL_OWNERSHIP_IDENTITY_ANGLE"/>
258            </require>
259        </extension>
260        <extension name="EGL_ANGLE_colorspace_attribute_passthrough" supported="egl" />
261        <extension name="EGL_ANGLE_context_virtualization" supported="egl">
262            <require>
263                <enum name="EGL_CONTEXT_VIRTUALIZATION_GROUP_ANGLE"/>
264            </require>
265        </extension>
266        <extension name="EGL_ANGLE_create_context_backwards_compatible" supported="egl">
267            <require>
268                <enum name="EGL_CONTEXT_OPENGL_BACKWARDS_COMPATIBLE_ANGLE"/>
269            </require>
270        </extension>
271        <extension name="EGL_ANGLE_create_context_client_arrays" supported="egl">
272            <require>
273                <enum name="EGL_CONTEXT_CLIENT_ARRAYS_ENABLED_ANGLE"/>
274            </require>
275        </extension>
276        <extension name="EGL_ANGLE_create_context_extensions_enabled" supported="egl">
277            <require>
278                <enum name="EGL_EXTENSIONS_ENABLED_ANGLE"/>
279            </require>
280        </extension>
281        <extension name="EGL_ANGLE_create_context_webgl_compatibility" supported="egl">
282            <require>
283                <enum name="EGL_CONTEXT_WEBGL_COMPATIBILITY_ANGLE"/>
284            </require>
285        </extension>
286        <extension name="EGL_ANGLE_create_surface_swap_interval" supported="egl">
287            <require>
288                <enum name="EGL_SWAP_INTERVAL_ANGLE"/>
289            </require>
290        </extension>
291        <extension name="EGL_ANGLE_d3d_share_handle_client_buffer" supported="egl">
292            <require>
293                <enum name="EGL_D3D_TEXTURE_2D_SHARE_HANDLE_ANGLE"/>
294            </require>
295        </extension>
296        <extension name="EGL_ANGLE_device_cgl" supported="egl">
297            <require>
298                <enum name="EGL_CGL_CONTEXT_ANGLE"/>
299                <enum name="EGL_CGL_PIXEL_FORMAT_ANGLE"/>
300            </require>
301        </extension>
302        <extension name="EGL_ANGLE_device_d3d9" supported="egl">
303            <require>
304                <enum name="EGL_D3D9_DEVICE_ANGLE"/>
305            </require>
306        </extension>
307        <extension name="EGL_ANGLE_device_d3d11" supported="egl">
308            <require>
309                <enum name="EGL_D3D11_DEVICE_ANGLE"/>
310            </require>
311        </extension>
312        <extension name="EGL_ANGLE_device_eagl" supported="egl">
313            <require>
314                <enum name="EGL_EAGL_CONTEXT_ANGLE"/>
315            </require>
316        </extension>
317        <extension name="EGL_ANGLE_device_metal" supported="egl">
318            <require>
319                <enum name="EGL_METAL_DEVICE_ANGLE"/>
320            </require>
321        </extension>
322        <extension name="EGL_ANGLE_device_vulkan" supported="egl">
323            <require>
324                <enum name="EGL_VULKAN_VERSION_ANGLE"/>
325                <enum name="EGL_VULKAN_INSTANCE_ANGLE"/>
326                <enum name="EGL_VULKAN_INSTANCE_EXTENSIONS_ANGLE"/>
327                <enum name="EGL_VULKAN_PHYSICAL_DEVICE_ANGLE"/>
328                <enum name="EGL_VULKAN_DEVICE_ANGLE"/>
329                <enum name="EGL_VULKAN_DEVICE_EXTENSIONS_ANGLE"/>
330                <enum name="EGL_VULKAN_FEATURES_ANGLE"/>
331                <enum name="EGL_VULKAN_QUEUE_ANGLE"/>
332                <enum name="EGL_VULKAN_QUEUE_FAMILIY_INDEX_ANGLE"/>
333                <enum name="EGL_VULKAN_GET_INSTANCE_PROC_ADDR"/>
334            </require>
335        </extension>
336        <extension name="EGL_ANGLE_direct_composition" supported="egl">
337            <require>
338                <enum name="EGL_DIRECT_COMPOSITION_ANGLE"/>
339            </require>
340        </extension>
341        <extension name="EGL_ANGLE_display_power_preference" supported="egl">
342            <require>
343                <enum name="EGL_POWER_PREFERENCE_ANGLE"/>
344                <enum name="EGL_LOW_POWER_ANGLE"/>
345                <enum name="EGL_HIGH_POWER_ANGLE"/>
346            </require>
347        </extension>
348        <extension name="EGL_ANGLE_experimental_present_path" supported="egl">
349            <require>
350                <enum name="EGL_EXPERIMENTAL_PRESENT_PATH_ANGLE"/>
351                <enum name="EGL_EXPERIMENTAL_PRESENT_PATH_FAST_ANGLE"/>
352                <enum name="EGL_EXPERIMENTAL_PRESENT_PATH_COPY_ANGLE"/>
353            </require>
354        </extension>
355        <extension name="EGL_ANGLE_ggp_stream_descriptor" supported="egl">
356            <require>
357                <enum name="EGL_GGP_STREAM_DESCRIPTOR_ANGLE"/>
358            </require>
359        </extension>
360        <extension name="EGL_ANGLE_iosurface_client_buffer" supported="egl">
361            <require>
362                <enum name="EGL_IOSURFACE_ANGLE"/>
363                <enum name="EGL_IOSURFACE_PLANE_ANGLE"/>
364                <enum name="EGL_TEXTURE_RECTANGLE_ANGLE"/>
365                <enum name="EGL_TEXTURE_TYPE_ANGLE"/>
366                <enum name="EGL_TEXTURE_INTERNAL_FORMAT_ANGLE"/>
367                <enum name="EGL_IOSURFACE_USAGE_HINT_ANGLE"/>
368                <enum name="EGL_BIND_TO_TEXTURE_TARGET_ANGLE"/>
369            </require>
370        </extension>
371        <extension name="EGL_ANGLE_keyed_mutex" supported="egl">
372            <require>
373                <enum name="EGL_DXGI_KEYED_MUTEX_ANGLE"/>
374            </require>
375        </extension>
376        <extension name="EGL_ANGLE_metal_create_context_ownership_identity" supported="egl">
377            <require>
378                <enum name="EGL_CONTEXT_METAL_OWNERSHIP_IDENTITY_ANGLE"/>
379            </require>
380        </extension>
381        <extension name="EGL_ANGLE_metal_texture_client_buffer" supported="egl">
382            <require>
383                <enum name="EGL_METAL_TEXTURE_ANGLE"/>
384                <enum name="EGL_METAL_TEXTURE_ARRAY_SLICE_ANGLE"/>
385            </require>
386        </extension>
387        <extension name="EGL_ANGLE_platform_angle" supported="egl">
388            <require>
389                <enum name="EGL_PLATFORM_ANGLE_ANGLE"/>
390                <enum name="EGL_PLATFORM_ANGLE_TYPE_ANGLE"/>
391                <enum name="EGL_PLATFORM_ANGLE_MAX_VERSION_MAJOR_ANGLE"/>
392                <enum name="EGL_PLATFORM_ANGLE_MAX_VERSION_MINOR_ANGLE"/>
393                <enum name="EGL_PLATFORM_ANGLE_DEBUG_LAYERS_ENABLED"/>
394                <enum name="EGL_PLATFORM_ANGLE_NATIVE_PLATFORM_TYPE_ANGLE"/>
395                <enum name="EGL_PLATFORM_ANGLE_TYPE_DEFAULT_ANGLE"/>
396                <enum name="EGL_PLATFORM_ANGLE_DEVICE_TYPE_HARDWARE_ANGLE"/>
397                <enum name="EGL_PLATFORM_ANGLE_DEVICE_TYPE_NULL_ANGLE"/>
398            </require>
399        </extension>
400        <extension name="EGL_ANGLE_platform_angle_d3d" supported="egl">
401            <require>
402                <enum name="EGL_PLATFORM_ANGLE_TYPE_D3D9_ANGLE"/>
403                <enum name="EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE"/>
404                <enum name="EGL_PLATFORM_ANGLE_DEVICE_TYPE_ANGLE"/>
405                <enum name="EGL_PLATFORM_ANGLE_ENABLE_AUTOMATIC_TRIM_ANGLE"/>
406                <enum name="EGL_PLATFORM_ANGLE_DEVICE_TYPE_D3D_WARP_ANGLE"/>
407                <enum name="EGL_PLATFORM_ANGLE_DEVICE_TYPE_D3D_REFERENCE_ANGLE"/>
408            </require>
409        </extension>
410        <extension name="EGL_ANGLE_platform_angle_d3d11on12" supported="egl">
411            <require>
412                <enum name="EGL_PLATFORM_ANGLE_D3D11ON12_ANGLE"/>
413            </require>
414        </extension>
415        <extension name="EGL_ANGLE_platform_angle_d3d_luid" supported="egl">
416            <require>
417                <enum name="EGL_PLATFORM_ANGLE_D3D_LUID_HIGH_ANGLE"/>
418                <enum name="EGL_PLATFORM_ANGLE_D3D_LUID_LOW_ANGLE"/>
419            </require>
420        </extension>
421        <extension name="EGL_ANGLE_platform_angle_device_context_volatile_cgl" supported="egl">
422            <require>
423                <enum name="EGL_PLATFORM_ANGLE_DEVICE_CONTEXT_VOLATILE_CGL_ANGLE"/>
424            </require>
425        </extension>
426        <extension name="EGL_ANGLE_platform_angle_device_context_volatile_eagl" supported="egl">
427            <require>
428                <enum name="EGL_PLATFORM_ANGLE_DEVICE_CONTEXT_VOLATILE_EAGL_ANGLE"/>
429            </require>
430        </extension>
431        <extension name="EGL_ANGLE_platform_angle_device_id" supported="egl">
432            <require>
433                <enum name="EGL_PLATFORM_ANGLE_DEVICE_ID_HIGH_ANGLE"/>
434                <enum name="EGL_PLATFORM_ANGLE_DEVICE_ID_LOW_ANGLE"/>
435                <enum name="EGL_PLATFORM_ANGLE_DISPLAY_KEY_ANGLE"/>
436            </require>
437        </extension>
438        <extension name="EGL_ANGLE_platform_angle_device_type_egl" supported="egl">
439            <require>
440                <enum name="EGL_PLATFORM_ANGLE_DEVICE_TYPE_EGL_ANGLE"/>
441            </require>
442        </extension>
443        <extension name="EGL_ANGLE_platform_angle_device_type_swiftshader" supported="egl">
444            <require>
445                <enum name="EGL_PLATFORM_ANGLE_DEVICE_TYPE_SWIFTSHADER_ANGLE"/>
446            </require>
447        </extension>
448        <extension name="EGL_ANGLE_platform_angle_metal" supported="egl">
449            <require>
450                <enum name="EGL_PLATFORM_ANGLE_TYPE_METAL_ANGLE"/>
451            </require>
452        </extension>
453        <extension name="EGL_ANGLE_platform_angle_null" supported="egl">
454            <require>
455                <enum name="EGL_PLATFORM_ANGLE_TYPE_NULL_ANGLE"/>
456            </require>
457        </extension>
458        <extension name="EGL_ANGLE_platform_angle_webgpu" supported="egl">
459            <require>
460                <enum name="EGL_PLATFORM_ANGLE_TYPE_WEBGPU_ANGLE"/>
461            </require>
462        </extension>
463        <extension name="EGL_ANGLE_platform_angle_opengl" supported="egl">
464            <require>
465                <enum name="EGL_PLATFORM_ANGLE_TYPE_OPENGL_ANGLE"/>
466                <enum name="EGL_PLATFORM_ANGLE_TYPE_OPENGLES_ANGLE"/>
467                <enum name="EGL_PLATFORM_ANGLE_EGL_HANDLE_ANGLE"/>
468            </require>
469        </extension>
470        <extension name="EGL_ANGLE_platform_angle_vulkan" supported="egl">
471            <require>
472                <enum name="EGL_PLATFORM_ANGLE_TYPE_VULKAN_ANGLE"/>
473            </require>
474        </extension>
475        <extension name="EGL_ANGLE_robust_resource_initialization" supported="egl">
476            <require>
477                <enum name="EGL_ROBUST_RESOURCE_INITIALIZATION_ANGLE"/>
478            </require>
479        </extension>
480        <extension name="EGL_ANGLE_surface_orientation" supported="egl">
481            <require>
482                <enum name="EGL_OPTIMAL_SURFACE_ORIENTATION_ANGLE"/>
483                <enum name="EGL_SURFACE_ORIENTATION_ANGLE"/>
484                <enum name="EGL_SURFACE_ORIENTATION_INVERT_X_ANGLE"/>
485                <enum name="EGL_SURFACE_ORIENTATION_INVERT_Y_ANGLE"/>
486            </require>
487        </extension>
488        <extension name="EGL_ANGLE_surface_orientation" supported="egl">
489            <require>
490                <enum name="EGL_OPTIMAL_SURFACE_ORIENTATION_ANGLE"/>
491                <enum name="EGL_SURFACE_ORIENTATION_ANGLE"/>
492                <enum name="EGL_SURFACE_ORIENTATION_INVERT_X_ANGLE"/>
493                <enum name="EGL_SURFACE_ORIENTATION_INVERT_Y_ANGLE"/>
494            </require>
495        </extension>
496        <extension name="EGL_ANGLE_vulkan_display" supported="egl">
497            <require>
498                <enum name="EGL_PLATFORM_VULKAN_DISPLAY_MODE_SIMPLE_ANGLE"/>
499                <enum name="EGL_PLATFORM_VULKAN_DISPLAY_MODE_HEADLESS_ANGLE"/>
500            </require>
501        </extension>
502        <extension name="EGL_ANGLE_metal_shared_event_sync" supported="egl">
503            <require>
504                <command name="eglCopyMetalSharedEventANGLE"/>
505                <enum name="EGL_SYNC_METAL_SHARED_EVENT_ANGLE"/>
506                <enum name="EGL_SYNC_METAL_SHARED_EVENT_OBJECT_ANGLE"/>
507                <enum name="EGL_SYNC_METAL_SHARED_EVENT_SIGNAL_VALUE_LO_ANGLE"/>
508                <enum name="EGL_SYNC_METAL_SHARED_EVENT_SIGNAL_VALUE_HI_ANGLE"/>
509                <enum name="EGL_SYNC_METAL_SHARED_EVENT_SIGNALED_ANGLE" />
510            </require>
511        </extension>
512        <extension name="EGL_ANGLE_global_fence_sync" supported="egl">
513            <require>
514                <enum name="EGL_SYNC_GLOBAL_FENCE_ANGLE"/>
515            </require>
516        </extension>
517        <extension name="EGL_ANGLE_x11_visual" supported="egl">
518            <require>
519                <enum name="EGL_X11_VISUAL_ID_ANGLE"/>
520            </require>
521        </extension>
522        <extension name="EGL_ANGLE_d3d_texture_client_buffer" supported="egl">
523            <require>
524                <enum name="EGL_D3D_TEXTURE_ANGLE"/>
525            </require>
526        </extension>
527        <extension name="EGL_ANGLE_no_error" supported="egl">
528            <require>
529                <command name="eglSetValidationEnabledANGLE"/>
530            </require>
531        </extension>
532    </extensions>
533
534    <!-- SECTION: EGL enumerant (token) definitions. -->
535    <enums namespace="EGL" start="0x3202" end="0x320F" vendor="ANGLE">
536        <enum value="0x3202" name="EGL_PLATFORM_ANGLE_ANGLE"/>
537        <enum value="0x3203" name="EGL_PLATFORM_ANGLE_TYPE_ANGLE"/>
538        <enum value="0x3204" name="EGL_PLATFORM_ANGLE_MAX_VERSION_MAJOR_ANGLE"/>
539        <enum value="0x3205" name="EGL_PLATFORM_ANGLE_MAX_VERSION_MINOR_ANGLE"/>
540        <enum value="0x3206" name="EGL_PLATFORM_ANGLE_TYPE_DEFAULT_ANGLE"/>
541        <enum value="0x3207" name="EGL_PLATFORM_ANGLE_TYPE_D3D9_ANGLE"/>
542        <enum value="0x3208" name="EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE"/>
543        <enum value="0x3209" name="EGL_PLATFORM_ANGLE_DEVICE_TYPE_ANGLE"/>
544        <enum value="0x320A" name="EGL_PLATFORM_ANGLE_DEVICE_TYPE_HARDWARE_ANGLE"/>
545        <enum value="0x320B" name="EGL_PLATFORM_ANGLE_DEVICE_TYPE_D3D_WARP_ANGLE"/>
546        <enum value="0x320C" name="EGL_PLATFORM_ANGLE_DEVICE_TYPE_D3D_REFERENCE_ANGLE"/>
547        <enum value="0x320D" name="EGL_PLATFORM_ANGLE_TYPE_OPENGL_ANGLE"/>
548        <enum value="0x320E" name="EGL_PLATFORM_ANGLE_TYPE_OPENGLES_ANGLE"/>
549        <enum value="0x320F" name="EGL_PLATFORM_ANGLE_ENABLE_AUTOMATIC_TRIM_ANGLE"/>
550    </enums>
551    <enums namespace="EGL" start="0x322F" end="0x322F" vendor="ANGLE">
552        <enum value="0x322F" name="EGL_SWAP_INTERVAL_ANGLE" alias="EGL_SWAP_INTERVAL_EXT"/>
553    </enums>
554    <enums namespace="EGL" start="0x33A0" end="0x33AF" vendor="ANGLE">
555        <!-- 0x33A0-0x33A1 are defined in egl.xml already -->
556        <enum value="0x33A2" name="EGL_DXGI_KEYED_MUTEX_ANGLE"/>
557        <enum value="0x33A3" name="EGL_X11_VISUAL_ID_ANGLE"/>
558        <enum value="0x33A3" name="EGL_D3D_TEXTURE_ANGLE"/>
559        <enum value="0x33A4" name="EGL_EXPERIMENTAL_PRESENT_PATH_ANGLE"/>
560        <enum value="0x33A5" name="EGL_DIRECT_COMPOSITION_ANGLE"/>
561        <enum value="0x33A7" name="EGL_OPTIMAL_SURFACE_ORIENTATION_ANGLE"/>
562        <enum value="0x33A8" name="EGL_SURFACE_ORIENTATION_ANGLE"/>
563        <enum value="0x33A9" name="EGL_EXPERIMENTAL_PRESENT_PATH_FAST_ANGLE"/>
564        <enum value="0x33AA" name="EGL_EXPERIMENTAL_PRESENT_PATH_COPY_ANGLE"/>
565        <enum value="0x33AB" name="EGL_D3D_TEXTURE_SUBRESOURCE_ID_ANGLE"/>
566        <enum value="0x33AC" name="EGL_CONTEXT_WEBGL_COMPATIBILITY_ANGLE"/>
567        <enum value="0x33AE" name="EGL_PLATFORM_ANGLE_TYPE_NULL_ANGLE"/>
568        <enum value="0x33AF" name="EGL_DISPLAY_TEXTURE_SHARE_GROUP_ANGLE"/>
569    </enums>
570    <enums namespace="EGL" start="0x3450" end="0x345F" vendor="ANGLE">
571        <enum value="0x3450" name="EGL_PLATFORM_ANGLE_TYPE_VULKAN_ANGLE"/>
572        <enum value="0x3451" name="EGL_PLATFORM_ANGLE_DEBUG_LAYERS_ENABLED"/>
573        <enum value="0x3452" name="EGL_CONTEXT_CLIENT_ARRAYS_ENABLED_ANGLE"/>
574        <enum value="0x3453" name="EGL_ROBUST_RESOURCE_INITIALIZATION_ANGLE"/>
575        <enum value="0x3454" name="EGL_IOSURFACE_ANGLE"/>
576        <enum value="0x3455" name="EGL_PROGRAM_CACHE_SIZE_ANGLE"/>
577        <enum value="0x3456" name="EGL_PROGRAM_CACHE_KEY_LENGTH_ANGLE"/>
578        <enum value="0x3457" name="EGL_PROGRAM_CACHE_RESIZE_ANGLE"/>
579        <enum value="0x3458" name="EGL_PROGRAM_CACHE_TRIM_ANGLE"/>
580        <enum value="0x3459" name="EGL_CONTEXT_PROGRAM_BINARY_CACHE_ENABLED_ANGLE"/>
581        <enum value="0x345A" name="EGL_IOSURFACE_PLANE_ANGLE"/>
582        <enum value="0x345B" name="EGL_TEXTURE_RECTANGLE_ANGLE"/>
583        <enum value="0x345C" name="EGL_TEXTURE_TYPE_ANGLE"/>
584        <enum value="0x345D" name="EGL_TEXTURE_INTERNAL_FORMAT_ANGLE"/>
585        <enum value="0x345E" name="EGL_PLATFORM_ANGLE_DEVICE_TYPE_NULL_ANGLE"/>
586        <enum value="0x345F" name="EGL_EXTENSIONS_ENABLED_ANGLE"/>
587    </enums>
588    <enums namespace="EGL" start="0x3460" end="0x346F" vendor="ANGLE">
589        <enum value="0x3460" name="EGL_FEATURE_NAME_ANGLE"/>
590        <enum value="0x3461" name="EGL_FEATURE_CATEGORY_ANGLE"/>
591        <enum value="0x3464" name="EGL_FEATURE_STATUS_ANGLE"/>
592        <enum value="0x3465" name="EGL_FEATURE_COUNT_ANGLE"/>
593        <enum value="0x3466" name="EGL_FEATURE_OVERRIDES_ENABLED_ANGLE"/>
594        <enum value="0x3467" name="EGL_FEATURE_OVERRIDES_DISABLED_ANGLE"/>
595        <enum value="0x3469" name="EGL_FEATURE_ALL_DISABLED_ANGLE"/>
596    </enums>
597    <enums namespace="EGL" start="0x3480" end="0x348F" vendor="ANGLE">
598        <enum value="0x3480" name="EGL_PLATFORM_ANGLE_EGL_HANDLE_ANGLE"/>
599        <enum value="0x3481" name="EGL_CONTEXT_VIRTUALIZATION_GROUP_ANGLE"/>
600        <enum value="0x3482" name="EGL_POWER_PREFERENCE_ANGLE"/>
601        <enum value="0x3483" name="EGL_CONTEXT_OPENGL_BACKWARDS_COMPATIBLE_ANGLE"/>
602        <enum value="0x3485" name="EGL_CGL_CONTEXT_ANGLE"/>
603        <enum value="0x3486" name="EGL_CGL_PIXEL_FORMAT_ANGLE"/>
604        <enum value="0x3487" name="EGL_PLATFORM_ANGLE_DEVICE_TYPE_SWIFTSHADER_ANGLE"/>
605        <enum value="0x3488" name="EGL_PLATFORM_ANGLE_D3D11ON12_ANGLE"/>
606        <enum value="0x3489" name="EGL_PLATFORM_ANGLE_TYPE_METAL_ANGLE"/>
607        <enum value="0x348A" name="EGL_IOSURFACE_USAGE_HINT_ANGLE"/>
608        <enum value="0x348B" name="EGL_GGP_STREAM_DESCRIPTOR_ANGLE"/>
609        <enum value="0x348C" name="EGL_EAGL_CONTEXT_ANGLE"/>
610
611        <!-- NOTE: Yes, these two values are the same according to the extension specs. -->
612        <enum value="0x348D" name="EGL_DISPLAY_SEMAPHORE_SHARE_GROUP_ANGLE"/>
613        <enum value="0x348D" name="EGL_BIND_TO_TEXTURE_TARGET_ANGLE"/>
614
615        <!-- NOTE: More duplicates!. -->
616        <enum value="0x348E" name="EGL_PLATFORM_ANGLE_DEVICE_TYPE_EGL_ANGLE"/>
617        <enum value="0x348E" name="EGL_EXTERNAL_CONTEXT_ANGLE"/>
618
619        <!-- NOTE: More duplicates!. -->
620        <enum value="0x348F" name="EGL_PLATFORM_ANGLE_NATIVE_PLATFORM_TYPE_ANGLE"/>
621        <enum value="0x348F" name="EGL_EXTERNAL_SURFACE_ANGLE"/>
622    </enums>
623    <enums namespace="EGL" start="0x34A0" end="0x34AF" vendor="ANGLE">
624        <enum value="0x34A0" name="EGL_PLATFORM_ANGLE_D3D_LUID_HIGH_ANGLE"/>
625        <enum value="0x34A1" name="EGL_PLATFORM_ANGLE_D3D_LUID_LOW_ANGLE"/>
626        <enum value="0x34A2" name="EGL_PLATFORM_ANGLE_DEVICE_CONTEXT_VOLATILE_EAGL_ANGLE"/>
627        <enum value="0x34A3" name="EGL_PLATFORM_ANGLE_DEVICE_CONTEXT_VOLATILE_CGL_ANGLE"/>
628        <enum value="0x34A4" name="EGL_PLATFORM_VULKAN_DISPLAY_MODE_SIMPLE_ANGLE"/>
629        <enum value="0x34A5" name="EGL_PLATFORM_VULKAN_DISPLAY_MODE_HEADLESS_ANGLE"/>
630        <enum value="0x34A6" name="EGL_METAL_DEVICE_ANGLE"/>
631        <enum value="0x34A7" name="EGL_METAL_TEXTURE_ANGLE"/>
632        <enum value="0x34A8" name="EGL_VULKAN_VERSION_ANGLE"/>
633        <enum value="0x34A9" name="EGL_VULKAN_INSTANCE_ANGLE"/>
634        <enum value="0x34AA" name="EGL_VULKAN_INSTANCE_EXTENSIONS_ANGLE"/>
635        <enum value="0x34AB" name="EGL_VULKAN_PHYSICAL_DEVICE_ANGLE"/>
636        <enum value="0x34AC" name="EGL_VULKAN_DEVICE_ANGLE"/>
637        <enum value="0x34AD" name="EGL_VULKAN_DEVICE_EXTENSIONS_ANGLE"/>
638        <enum value="0x34AE" name="EGL_VULKAN_FEATURES_ANGLE"/>
639        <enum value="0x34AF" name="EGL_VULKAN_QUEUE_ANGLE"/>
640    </enums>
641    <enums namespace="EGL" start="0x34D0" end="0x34DF" vendor="ANGLE">
642        <enum value="0x34D0" name="EGL_VULKAN_QUEUE_FAMILIY_INDEX_ANGLE"/>
643        <enum value="0x34D1" name="EGL_VULKAN_GET_INSTANCE_PROC_ADDR"/>
644        <enum value="0x34D2" name="EGL_CONTEXT_METAL_OWNERSHIP_IDENTITY_ANGLE"/>
645        <enum value="0x34D3" name="EGL_VULKAN_IMAGE_ANGLE"/>
646        <enum value="0x34D4" name="EGL_VULKAN_IMAGE_CREATE_INFO_HI_ANGLE"/>
647        <enum value="0x34D5" name="EGL_VULKAN_IMAGE_CREATE_INFO_LO_ANGLE"/>
648        <enum value="0x34D6" name="EGL_PLATFORM_ANGLE_DEVICE_ID_HIGH_ANGLE"/>
649        <enum value="0x34D7" name="EGL_PLATFORM_ANGLE_DEVICE_ID_LOW_ANGLE"/>
650        <enum value="0x34D8" name="EGL_SYNC_METAL_SHARED_EVENT_ANGLE"/>
651        <enum value="0x34D9" name="EGL_SYNC_METAL_SHARED_EVENT_OBJECT_ANGLE"/>
652        <enum value="0x34DA" name="EGL_SYNC_METAL_SHARED_EVENT_SIGNAL_VALUE_LO_ANGLE"/>
653        <enum value="0x34DB" name="EGL_SYNC_METAL_SHARED_EVENT_SIGNAL_VALUE_HI_ANGLE"/>
654        <enum value="0x34DC" name="EGL_SYNC_METAL_SHARED_EVENT_SIGNALED_ANGLE" />
655        <enum value="0x34DC" name="EGL_PLATFORM_ANGLE_DISPLAY_KEY_ANGLE" />
656        <enum value="0x34DD" name="EGL_METAL_TEXTURE_ARRAY_SLICE_ANGLE"/>
657        <enum value="0x34DE" name="EGL_SYNC_GLOBAL_FENCE_ANGLE"/>
658        <enum value="0x34DF" name="EGL_PLATFORM_ANGLE_TYPE_WEBGPU_ANGLE"/>
659    </enums>
660    <enums namespace="EGL" vendor="ANGLE">
661        <enum value="0x0001" name="EGL_LOW_POWER_ANGLE"/>
662        <enum value="0x0002" name="EGL_HIGH_POWER_ANGLE"/>
663        <enum value="0x0001" name="EGL_SURFACE_ORIENTATION_INVERT_X_ANGLE"/>
664        <enum value="0x0002" name="EGL_SURFACE_ORIENTATION_INVERT_Y_ANGLE"/>
665    </enums>
666</registry>
667