• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1<?xml version="1.0" encoding="UTF-8"?>
2<registry>
3    <comment>
4Copyright (c) 2013-2020 The Khronos Group Inc.
5
6Licensed under the Apache License, Version 2.0 (the "License");
7you may not use this file except in compliance with the License.
8You may obtain a copy of the License at
9
10    http://www.apache.org/licenses/LICENSE-2.0
11
12Unless required by applicable law or agreed to in writing, software
13distributed under the License is distributed on an "AS IS" BASIS,
14WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15See the License for the specific language governing permissions and
16limitations under the License.
17
18---- Exceptions to the Apache 2.0 License: ----
19
20As an exception, if you use this Software to generate code and portions of
21this Software are embedded into the generated code as a result, you may
22redistribute such product without providing attribution as would otherwise
23be required by Sections 4(a), 4(b) and 4(d) of the License.
24
25In addition, if you combine or link code generated by this Software with
26software that is licensed under the GPLv2 or the LGPL v2.0 or 2.1
27("`Combined Software`") and if a court of competent jurisdiction determines
28that the patent provision (Section 3), the indemnity provision (Section 9)
29or other Section of the License conflicts with the conditions of the
30applicable GPL or LGPL license, you may retroactively and prospectively
31choose to deem waived or otherwise exclude such Section(s) of the License,
32but only in their entirety and only with respect to the Combined Software.
33    </comment>
34
35    <comment>
36This file, cl.xml, is the OpenCL API Registry. It is a critically important
37and normative part of the OpenCL API Specification, including a canonical
38machine-readable definition of the API, parameter and member validation
39language incorporated into the Specification and reference pages, and other
40material which is registered by Khronos.
41
42The authoritative public version of cl.xml is maintained in the master
43branch of the Khronos OpenCL-API GitHub repository. The authoritative
44private version is maintained in the master branch of the member gitlab
45server's OpenCL/api-docs repository.
46    </comment>
47
48    <types comment="OpenCL type definitions">
49            <comment>These are dependencies CL types require to be declared legally</comment>
50        <type category="include" name="stdint">#include &lt;stdint.h&gt;</type>
51
52            <comment>Windows headers and types</comment>
53        <type category="include" name="d3d10.h">#include &lt;d3d10.h&gt;</type>
54        <type category="include" name="d3d11.h">#include &lt;d3d11.h&gt;</type>
55        <type category="include" name="d3d9.h">#include &lt;d3d9.h&gt;</type>
56        <type category="include" name="d3d9types.h">#include &lt;d3d9types.h&gt;</type>
57        <type category="include" name="dxvahd.h">#include &lt;dxvahd.h&gt;</type>
58        <type category="include" name="wtypes.h">#include &lt;wtypes.h&gt;</type>
59        <type category="include" name="ID3D10Buffer" requires="d3d10.h"/>
60        <type category="include" name="ID3D10Texture2D" requires="d3d10.h"/>
61        <type category="include" name="ID3D10Texture3D" requires="d3d10.h"/>
62        <type category="include" name="ID3D11Buffer" requires="d3d11.h"/>
63        <type category="include" name="ID3D11Texture2D" requires="d3d11.h"/>
64        <type category="include" name="ID3D11Texture3D" requires="d3d11.h"/>
65        <type category="include" name="IDirect3DSurface9" requires="d3d9.h"/>
66        <type category="include" name="HANDLE" requires="d3d9types.h"/>
67        <type category="include" name="UINT" comment="Requires one of the D3D headers, which in turn probably pulls in windows.h"/>
68
69            <comment>Non-CL headers and types</comment>
70        <type category="include" name="va/va.h">#include &lt;va/va.h&gt;</type>
71        <type category="include" name="VASurfaceID" requires="va/va.h"/>
72
73            <comment>CL headers and types</comment>
74        <type category="include" name="CL/cl.h">#include &lt;CL/cl.h&gt;</type>
75        <type category="include" name="CL/cl_platform.h">#include &lt;CL/cl_platform.h&gt;</type>
76        <type category="include" name="CL/cl_gl.h">#include &lt;CL/cl_gl.h&gt;</type>
77        <type category="include" name="CL/cl_version.h">#include &lt;CL/cl_version.h&gt;</type>
78
79            <comment>Basic C types, pulled in via platform header in some cases</comment>
80        <type category="basetype" requires="CL/cl_platform.h" name="void"/>
81        <type category="basetype" requires="CL/cl_platform.h" name="char"/>
82        <type category="basetype" requires="CL/cl_platform.h" name="int"/>
83        <type category="basetype" requires="CL/cl_platform.h" name="unsigned char"/>
84        <type category="basetype" requires="CL/cl_platform.h" name="intptr_t"/>
85        <type category="basetype" requires="CL/cl_platform.h" name="size_t"/>
86        <type category="basetype" requires="CL/cl_platform.h" name="float"/>
87        <type category="basetype" requires="CL/cl_platform.h" name="double"/>
88        <type category="basetype" requires="CL/cl_platform.h" name="int8_t"/>
89        <type category="basetype" requires="CL/cl_platform.h" name="int16_t"/>
90        <type category="basetype" requires="CL/cl_platform.h" name="int32_t"/>
91        <type category="basetype" requires="CL/cl_platform.h" name="int64_t"/>
92        <type category="basetype" requires="CL/cl_platform.h" name="uint8_t"/>
93        <type category="basetype" requires="CL/cl_platform.h" name="uint16_t"/>
94        <type category="basetype" requires="CL/cl_platform.h" name="uint32_t"/>
95        <type category="basetype" requires="CL/cl_platform.h" name="uint64_t"/>
96
97            <comment>Scalar types</comment>
98        <type category="define" requires="stdint">typedef <type>double</type>   <name>cl_double</name> __attribute__((aligned(8)));</type>
99        <type category="define" requires="stdint">typedef <type>float</type>    <name>cl_float</name> __attribute__((aligned(4)));</type>
100        <type category="define" requires="stdint">typedef <type>int16_t</type>  <name>cl_short</name> __attribute__((aligned(2)));</type>
101        <type category="define" requires="stdint">typedef <type>int32_t</type>  <name>cl_int</name> __attribute__((aligned(4)));</type>
102        <type category="define" requires="stdint">typedef <type>int64_t</type>  <name>cl_long</name> __attribute__((aligned(8)));</type>
103        <type category="define" requires="stdint">typedef <type>int8_t</type>   <name>cl_char</name>;</type>
104        <type category="define" requires="stdint">typedef <type>uint8_t</type>  <name>cl_uchar</name>;</type>
105        <type category="define" requires="stdint">typedef <type>uint16_t</type> <name>cl_half</name> __attribute__((aligned(2)));</type>
106        <type category="define" requires="stdint">typedef <type>uint16_t</type> <name>cl_ushort</name> __attribute__((aligned(2)));</type>
107        <type category="define" requires="stdint">typedef <type>uint32_t</type> <name>cl_uint</name> __attribute__((aligned(4)));</type>
108        <type category="define" requires="stdint">typedef <type>uint64_t</type> <name>cl_ulong</name> __attribute__((aligned(8)));</type>
109        <type category="define">typedef <type>int</type>              <name>cl_GLint</name>;</type>
110        <type category="define">typedef <type>unsigned int</type>     <name>cl_GLenum</name>;</type>
111        <type category="define">typedef <type>unsigned int</type>     <name>cl_GLuint</name>;</type>
112        <type category="define">typedef <type>cl_uint</type>          <name>cl_d3d11_device_source_khr</name>;</type>
113        <type category="define">typedef <type>cl_uint</type>          <name>cl_d3d11_device_set_khr</name>;</type>
114        <type category="define">typedef <type>cl_uint</type>          <name>cl_dx9_media_adapter_type_khr</name>;</type>
115        <type category="define">typedef <type>cl_uint</type>          <name>cl_dx9_media_adapter_set_khr</name>;</type>
116        <type category="define">typedef <type>cl_uint</type>          <name>cl_d3d10_device_source_khr</name>;</type>
117        <type category="define">typedef <type>cl_uint</type>          <name>cl_d3d10_device_set_khr</name>;</type>
118        <type category="define">typedef <type>cl_uint</type>          <name>cl_dx9_device_source_intel</name>;</type>
119        <type category="define">typedef <type>cl_uint</type>          <name>cl_dx9_device_set_intel</name>;</type>
120        <type category="define">typedef struct _cl_accelerator_intel* <name>cl_accelerator_intel</name>;</type>
121        <type category="define">typedef <type>cl_uint</type>          <name>cl_accelerator_type_intel</name>;</type>
122        <type category="define">typedef <type>cl_uint</type>          <name>cl_accelerator_info_intel</name>;</type>
123        <type category="define">typedef <type>cl_uint</type>          <name>cl_diagnostics_verbose_level</name>;</type>
124        <type category="define">typedef <type>cl_uint</type>          <name>cl_va_api_device_source_intel</name>;</type>
125        <type category="define">typedef <type>cl_uint</type>          <name>cl_va_api_device_set_intel</name>;</type>
126        <type category="define">typedef struct __GLsync *             <name>cl_GLsync</name>;</type>
127        <type category="define">typedef <type>void</type>*            <name>CLeglImageKHR</name>;</type>
128        <type category="define">typedef <type>void</type>*            <name>CLeglDisplayKHR</name>;</type>
129        <type category="define">typedef <type>void</type>*            <name>CLeglSyncKHR</name>;</type>
130        <type category="define">typedef <type>intptr_t</type>         <name>cl_egl_image_properties_khr</name>;</type>
131        <type category="define">typedef <type>cl_ulong</type>         <name>cl_device_partition_property_ext</name>;</type>
132        <type category="define">typedef <type>cl_bitfield</type>      <name>cl_mem_migration_flags_ext</name>;</type>
133        <type category="define">typedef <type>cl_uint</type>          <name>cl_image_pitch_info_qcom</name>;</type>
134        <type category="define">typedef <type>cl_uint</type>          <name>cl_queue_priority_khr</name>;</type>
135        <type category="define">typedef <type>cl_uint</type>          <name>cl_queue_throttle_khr</name>;</type>
136        <type category="define">typedef <type>intptr_t</type>         <name>cl_import_properties_arm</name>;</type>
137        <type category="define">typedef <type>cl_bitfield</type>      <name>cl_svm_mem_flags_arm</name>;</type>
138        <type category="define">typedef <type>cl_uint</type>          <name>cl_kernel_exec_info_arm</name>;</type>
139        <type category="define">typedef <type>cl_bitfield</type>      <name>cl_device_svm_capabilities_arm</name>;</type>
140        <type category="define">typedef <type>cl_uint</type>          <name>cl_gl_context_info</name>;</type>
141        <type category="define">typedef <type>cl_uint</type>          <name>cl_gl_object_type</name>;</type>
142        <type category="define">typedef <type>cl_uint</type>          <name>cl_gl_texture_info</name>;</type>
143        <type category="define">typedef <type>cl_uint</type>          <name>cl_gl_platform_info</name>;</type>
144        <type category="define">typedef struct _cl_platform_id *      <name>cl_platform_id</name>;</type>
145        <type category="define">typedef struct _cl_device_id *        <name>cl_device_id</name>;</type>
146        <type category="define">typedef struct _cl_context *          <name>cl_context</name>;</type>
147        <type category="define">typedef struct _cl_command_queue *    <name>cl_command_queue</name>;</type>
148        <type category="define">typedef struct _cl_mem *              <name>cl_mem</name>;</type>
149        <type category="define">typedef struct _cl_program *          <name>cl_program</name>;</type>
150        <type category="define">typedef struct _cl_kernel *           <name>cl_kernel</name>;</type>
151        <type category="define">typedef struct _cl_event *            <name>cl_event</name>;</type>
152        <type category="define">typedef struct _cl_sampler *          <name>cl_sampler</name>;</type>
153        <type category="define" comment="Unlike cl_platform.h types, not guaranteed to be the same size as kernel bool">typedef <type>cl_uint</type>          <name>cl_bool</name>;</type>
154        <type category="define">typedef <type>cl_ulong</type>         <name>cl_bitfield</name>;</type>
155        <type category="define">typedef <type>cl_ulong</type>         <name>cl_properties</name>;</type>
156        <type category="define">typedef <type>cl_bitfield</type>      <name>cl_device_type</name>;</type>
157        <type category="define">typedef <type>cl_uint</type>          <name>cl_platform_info</name>;</type>
158        <type category="define">typedef <type>cl_uint</type>          <name>cl_device_info</name>;</type>
159        <type category="define">typedef <type>cl_bitfield</type>      <name>cl_device_fp_config</name>;</type>
160        <type category="define">typedef <type>cl_uint</type>          <name>cl_device_mem_cache_type</name>;</type>
161        <type category="define">typedef <type>cl_uint</type>          <name>cl_device_local_mem_type</name>;</type>
162        <type category="define">typedef <type>cl_bitfield</type>      <name>cl_device_exec_capabilities</name>;</type>
163        <type category="define">typedef <type>cl_bitfield</type>      <name>cl_device_svm_capabilities</name>;</type>
164        <type category="define">typedef <type>cl_bitfield</type>      <name>cl_command_queue_properties</name>;</type>
165        <type category="define">typedef <type>intptr_t</type>         <name>cl_device_partition_property</name>;</type>
166        <type category="define">typedef <type>cl_bitfield</type>      <name>cl_device_affinity_domain</name>;</type>
167        <type category="define">typedef <type>intptr_t</type>         <name>cl_context_properties</name>;</type>
168        <type category="define">typedef <type>cl_uint</type>          <name>cl_context_info</name>;</type>
169        <type category="define">typedef <type>cl_properties</type>    <name>cl_queue_properties</name>;</type>
170        <type category="define">typedef <type>cl_properties</type>    <name>cl_queue_properties_khr</name>;</type>
171        <type category="define">typedef <type>cl_uint</type>          <name>cl_command_queue_info</name>;</type>
172        <type category="define">typedef <type>cl_uint</type>          <name>cl_channel_order</name>;</type>
173        <type category="define">typedef <type>cl_uint</type>          <name>cl_channel_type</name>;</type>
174        <type category="define">typedef <type>cl_bitfield</type>      <name>cl_mem_flags</name>;</type>
175        <type category="define">typedef <type>cl_bitfield</type>      <name>cl_svm_mem_flags</name>;</type>
176        <type category="define">typedef <type>cl_uint</type>          <name>cl_mem_object_type</name>;</type>
177        <type category="define">typedef <type>cl_uint</type>          <name>cl_mem_info</name>;</type>
178        <type category="define">typedef <type>cl_bitfield</type>      <name>cl_mem_migration_flags</name>;</type>
179        <type category="define">typedef <type>cl_properties</type>    <name>cl_mem_properties</name>;</type>
180        <type category="define">typedef <type>cl_uint</type>          <name>cl_image_info</name>;</type>
181        <type category="define">typedef <type>cl_uint</type>          <name>cl_buffer_create_type</name>;</type>
182        <type category="define">typedef <type>cl_uint</type>          <name>cl_addressing_mode</name>;</type>
183        <type category="define">typedef <type>cl_uint</type>          <name>cl_filter_mode</name>;</type>
184        <type category="define">typedef <type>cl_uint</type>          <name>cl_sampler_info</name>;</type>
185        <type category="define">typedef <type>cl_bitfield</type>      <name>cl_map_flags</name>;</type>
186        <type category="define">typedef <type>intptr_t</type>         <name>cl_pipe_properties</name>;</type>
187        <type category="define">typedef <type>cl_uint</type>          <name>cl_pipe_info</name>;</type>
188        <type category="define">typedef <type>cl_uint</type>          <name>cl_program_info</name>;</type>
189        <type category="define">typedef <type>cl_uint</type>          <name>cl_program_build_info</name>;</type>
190        <type category="define">typedef <type>cl_uint</type>          <name>cl_program_binary_type</name>;</type>
191        <type category="define">typedef <type>cl_int</type>           <name>cl_build_status</name>;</type>
192        <type category="define">typedef <type>cl_uint</type>          <name>cl_kernel_info</name>;</type>
193        <type category="define">typedef <type>cl_uint</type>          <name>cl_kernel_arg_info</name>;</type>
194        <type category="define">typedef <type>cl_uint</type>          <name>cl_kernel_arg_address_qualifier</name>;</type>
195        <type category="define">typedef <type>cl_uint</type>          <name>cl_kernel_arg_access_qualifier</name>;</type>
196        <type category="define">typedef <type>cl_bitfield</type>      <name>cl_kernel_arg_type_qualifier</name>;</type>
197        <type category="define">typedef <type>cl_uint</type>          <name>cl_kernel_work_group_info</name>;</type>
198        <type category="define">typedef <type>cl_uint</type>          <name>cl_kernel_sub_group_info</name>;</type>
199        <type category="define">typedef <type>cl_uint</type>          <name>cl_event_info</name>;</type>
200        <type category="define">typedef <type>cl_uint</type>          <name>cl_command_type</name>;</type>
201        <type category="define">typedef <type>cl_uint</type>          <name>cl_profiling_info</name>;</type>
202        <type category="define">typedef <type>cl_properties</type>    <name>cl_sampler_properties</name>;</type>
203        <type category="define">typedef <type>cl_uint</type>          <name>cl_kernel_exec_info</name>;</type>
204        <type category="define">typedef <type>cl_bitfield</type>      <name>cl_device_unified_shared_memory_capabilities_intel</name>;</type>
205        <type category="define">typedef <type>cl_properties</type>    <name>cl_mem_properties_intel</name>;</type>
206        <type category="define">typedef <type>cl_bitfield</type>      <name>cl_mem_alloc_flags_intel</name>;</type>
207        <type category="define">typedef <type>cl_uint</type>          <name>cl_mem_info_intel</name>;</type>
208        <type category="define">typedef <type>cl_uint</type>          <name>cl_unified_shared_memory_type_intel</name>;</type>
209        <type category="define">typedef <type>cl_uint</type>          <name>cl_mem_advice_intel</name>;</type>
210        <type category="define">typedef <type>cl_bitfield</type>      <name>cl_device_atomic_capabilities</name>;</type>
211        <type category="define">typedef <type>cl_uint</type>          <name>cl_khronos_vendor_id</name>;</type>
212        <type category="define">typedef <type>cl_uint</type>          <name>cl_version</name>;</type>
213        <type category="define">typedef <type>cl_uint</type>          <name>cl_version_khr</name>;</type>
214        <type category="define">typedef <type>cl_bitfield</type>      <name>cl_device_device_enqueue_capabilities</name>;</type>
215        <type category="define">typedef <type>cl_uint</type>          <name>cl_mipmap_filter_mode_img</name>;</type>
216        <type category="define">typedef <type>cl_bitfield</type>      <name>cl_mem_alloc_flags_img</name>;</type>
217        <type category="define">typedef <type>cl_uint</type>          <name>cl_layer_info</name>;</type>
218        <type category="define">typedef <type>cl_uint</type>          <name>cl_layer_api_version</name>;</type>
219        <type category="define">typedef struct _cl_icd_dispatch       <name>cl_icd_dispatch</name>;</type>
220        <type category="define">typedef <type>cl_bitfield</type>      <name>cl_device_scheduling_controls_capabilities_arm</name>;</type>
221        <type category="define">typedef <type>cl_bitfield</type>      <name>cl_device_controlled_termination_capabilities_arm</name>;</type>
222        <type category="define">typedef <type>cl_bitfield</type>      <name>cl_command_queue_capabilities_intel</name>;</type>
223
224            <comment>Structure types</comment>
225        <type category="struct" name="cl_dx9_surface_info_khr">
226            <member><type>IDirect3DSurface9</type>*  <name>resource</name></member>
227            <member><type>HANDLE</type>              <name>shared_handle</name></member>
228        </type>
229        <type category="struct" name="cl_motion_estimation_desc_intel">
230            <member><type>cl_uint</type>             <name>mb_block_type</name></member>
231            <member><type>cl_uint</type>             <name>subpixel_mode</name></member>
232            <member><type>cl_uint</type>             <name>sad_adjust_mode</name></member>
233            <member><type>cl_uint</type>             <name>search_path_type</name></member>
234        </type>
235        <type category="struct" name="cl_mem_ext_host_ptr">
236            <member><type>cl_uint</type>             <name>allocation_type</name></member>
237            <member><type>cl_uint</type>             <name>host_cache_policy</name></member>
238        </type>
239        <type category="struct" name="cl_mem_ion_host_ptr">
240            <member><type>cl_mem_ext_host_ptr</type> <name>ext_host_ptr</name></member>
241            <member><type>int</type>                 <name>ion_filedesc</name></member>
242            <member><type>void</type>*               <name>ion_hostptr</name></member>
243        </type>
244        <type category="struct" name="cl_mem_android_native_buffer_host_ptr">
245            <member><type>cl_mem_ext_host_ptr</type> <name>ext_host_ptr</name></member>
246            <member><type>void</type>*               <name>anb_ptr</name></member>
247        </type>
248        <type category="struct" name="cl_image_format">
249            <member><type>cl_channel_order</type>    <name>image_channel_order</name></member>
250            <member><type>cl_channel_type</type>     <name>image_channel_data_type</name></member>
251        </type>
252        <type category="struct" name="cl_image_desc">
253            <member><type>cl_mem_object_type</type>  <name>image_type</name></member>
254            <member><type>size_t</type>              <name>image_width</name></member>
255            <member><type>size_t</type>              <name>image_height</name></member>
256            <member><type>size_t</type>              <name>image_depth</name></member>
257            <member><type>size_t</type>              <name>image_array_size</name></member>
258            <member><type>size_t</type>              <name>image_row_pitch</name></member>
259            <member><type>size_t</type>              <name>image_slice_pitch</name></member>
260            <member><type>cl_uint</type>             <name>num_mip_levels</name></member>
261            <member><type>cl_uint</type>             <name>num_samples</name></member>
262            <!-- Can't properly express this in XML schema yet - use name/ tag to align? -->
263            <member>union {
264        cl_mem buffer;
265        cl_mem mem_object;
266    }</member>
267        </type>
268        <type category="struct" name="cl_buffer_region">
269            <member><type>size_t</type>              <name>origin</name></member>
270            <member><type>size_t</type>              <name>size</name></member>
271        </type>
272        <type category="struct" name="cl_name_version">
273            <member><type>cl_version</type>          <name>version</name></member>
274            <member><type>char</type><name>name</name>[<enum>CL_NAME_VERSION_MAX_NAME_SIZE</enum>]</member>
275        </type>
276        <type category="struct" name="cl_name_version_khr">
277            <member><type>cl_version_khr</type>      <name>version</name></member>
278            <member><type>char</type><name>name</name>[<enum>CL_NAME_VERSION_MAX_NAME_SIZE_KHR</enum>]</member>
279        </type>
280        <type category="struct" name="cl_queue_family_properties_intel">
281            <member><type>cl_command_queue_properties</type>            <name>properties</name></member>
282            <member><type>cl_command_queue_capabilities_intel</type>    <name>capabilities</name></member>
283            <member><type>cl_uint</type>                                <name>count</name></member>
284            <member><type>char</type><name>name</name>[<enum>CL_QUEUE_FAMILY_MAX_NAME_SIZE_INTEL</enum>]</member>
285        </type>
286    </types>
287
288    <!-- SECTION: OpenCL enumerant (token) definitions. -->
289
290    <!-- There are a variety of namespaces corresponding to different
291         parameter types, including bitmasks in their own namespaces -->
292
293    <enums name="Constants" vendor="Khronos" comment="Miscellaneous API constants, in cl_platform.h">
294        <enum value="8"                                            name="CL_CHAR_BIT"/>
295        <enum value="127"                                          name="CL_SCHAR_MAX"/>
296        <enum value="(-127-1)"                                     name="CL_SCHAR_MIN"/>
297        <enum value="CL_SCHAR_MAX"                                 name="CL_CHAR_MAX"/>
298        <enum value="CL_SCHAR_MIN"                                 name="CL_CHAR_MIN"/>
299        <enum value="255"                                          name="CL_UCHAR_MAX"/>
300        <enum value="32767"                                        name="CL_SHRT_MAX"/>
301        <enum value="(-32767-1)"                                   name="CL_SHRT_MIN"/>
302        <enum value="65535"                                        name="CL_USHRT_MAX"/>
303        <enum value="2147483647"                                   name="CL_INT_MAX"/>
304        <enum value="(-2147483647-1)"                              name="CL_INT_MIN"/>
305        <enum value="0xffffffffU"                                  name="CL_UINT_MAX"/>
306        <enum value="((cl_long) 0x7FFFFFFFFFFFFFFFLL)"             name="CL_LONG_MAX"/>
307        <enum value="((cl_long) -0x7FFFFFFFFFFFFFFFLL - 1LL)"      name="CL_LONG_MIN"/>
308        <enum value="((cl_ulong) 0xFFFFFFFFFFFFFFFFULL)"           name="CL_ULONG_MAX"/>
309        <enum value="6"                                            name="CL_FLT_DIG"/>
310        <enum value="24"                                           name="CL_FLT_MANT_DIG"/>
311        <enum value="+38"                                          name="CL_FLT_MAX_10_EXP"/>
312        <enum value="+128"                                         name="CL_FLT_MAX_EXP"/>
313        <enum value="-37"                                          name="CL_FLT_MIN_10_EXP"/>
314        <enum value="-125"                                         name="CL_FLT_MIN_EXP"/>
315        <enum value="2"                                            name="CL_FLT_RADIX"/>
316        <enum value="340282346638528859811704183484516925440.0f"   name="CL_FLT_MAX"/>
317        <enum value="1.175494350822287507969e-38f"                 name="CL_FLT_MIN"/>
318        <enum value="1.1920928955078125e-7f"                       name="CL_FLT_EPSILON"/>
319        <enum value="3"                                            name="CL_HALF_DIG"/>
320        <enum value="11"                                           name="CL_HALF_MANT_DIG"/>
321        <enum value="+4"                                           name="CL_HALF_MAX_10_EXP"/>
322        <enum value="+16"                                          name="CL_HALF_MAX_EXP"/>
323        <enum value="-4"                                           name="CL_HALF_MIN_10_EXP"/>
324        <enum value="-13"                                          name="CL_HALF_MIN_EXP"/>
325        <enum value="2"                                            name="CL_HALF_RADIX"/>
326        <enum value="65504.0f"                                     name="CL_HALF_MAX"/>
327        <enum value="6.103515625e-05f"                             name="CL_HALF_MIN"/>
328        <enum value="9.765625e-04f"                                name="CL_HALF_EPSILON"/>
329        <enum value="15"                                           name="CL_DBL_DIG"/>
330        <enum value="53"                                           name="CL_DBL_MANT_DIG"/>
331        <enum value="+308"                                         name="CL_DBL_MAX_10_EXP"/>
332        <enum value="+1024"                                        name="CL_DBL_MAX_EXP"/>
333        <enum value="-307"                                         name="CL_DBL_MIN_10_EXP"/>
334        <enum value="-1021"                                        name="CL_DBL_MIN_EXP"/>
335        <enum value="2"                                            name="CL_DBL_RADIX"/>
336        <enum value="1.7976931348623158e+308"                      name="CL_DBL_MAX"/>
337        <enum value="2.225073858507201383090e-308"                 name="CL_DBL_MIN"/>
338        <enum value="2.220446049250313080847e-16"                  name="CL_DBL_EPSILON"/>
339        <enum value="2.7182818284590452354"                        name="CL_M_E"/>
340        <enum value="1.4426950408889634074"                        name="CL_M_LOG2E"/>
341        <enum value="0.43429448190325182765"                       name="CL_M_LOG10E"/>
342        <enum value="0.69314718055994530942"                       name="CL_M_LN2"/>
343        <enum value="2.30258509299404568402"                       name="CL_M_LN10"/>
344        <enum value="3.14159265358979323846"                       name="CL_M_PI"/>
345        <enum value="1.57079632679489661923"                       name="CL_M_PI_2"/>
346        <enum value="0.78539816339744830962"                       name="CL_M_PI_4"/>
347        <enum value="0.31830988618379067154"                       name="CL_M_1_PI"/>
348        <enum value="0.63661977236758134308"                       name="CL_M_2_PI"/>
349        <enum value="1.12837916709551257390"                       name="CL_M_2_SQRTPI"/>
350        <enum value="1.41421356237309504880"                       name="CL_M_SQRT2"/>
351        <enum value="0.70710678118654752440"                       name="CL_M_SQRT1_2"/>
352        <enum value="2.718281828f"                                 name="CL_M_E_F"/>
353        <enum value="1.442695041f"                                 name="CL_M_LOG2E_F"/>
354        <enum value="0.434294482f"                                 name="CL_M_LOG10E_F"/>
355        <enum value="0.693147181f"                                 name="CL_M_LN2_F"/>
356        <enum value="2.302585093f"                                 name="CL_M_LN10_F"/>
357        <enum value="3.141592654f"                                 name="CL_M_PI_F"/>
358        <enum value="1.570796327f"                                 name="CL_M_PI_2_F"/>
359        <enum value="0.785398163f"                                 name="CL_M_PI_4_F"/>
360        <enum value="0.318309886f"                                 name="CL_M_1_PI_F"/>
361        <enum value="0.636619772f"                                 name="CL_M_2_PI_F"/>
362        <enum value="1.128379167f"                                 name="CL_M_2_SQRTPI_F"/>
363        <enum value="1.414213562f"                                 name="CL_M_SQRT2_F"/>
364        <enum value="0.707106781f"                                 name="CL_M_SQRT1_2_F"/>
365        <enum value="(CL_INFINITY - CL_INFINITY)"                  name="CL_NAN"/>
366        <enum value="((cl_float) 1e50)"                            name="CL_HUGE_VALF"/>
367        <enum value="((cl_double) 1e500)"                          name="CL_HUGE_VAL"/>
368        <enum value="CL_FLT_MAX"                                   name="CL_MAXFLOAT"/>
369        <enum value="CL_HUGE_VALF"                                 name="CL_INFINITY"/>
370            <comment> These values are defined differently along the
371                        #if (defined (_WIN32) &amp;&amp; defined(_MSC_VER))
372                      compilation path, as follows:
373                &lt;enum value="179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0" name="CL_DBL_MAX"/>
374                #if defined( __GNUC__ )
375                   #define CL_HUGE_VALF     __builtin_huge_valf()
376                   #define CL_HUGE_VAL      __builtin_huge_val()
377                   #define CL_NAN           __builtin_nanf( "" )
378                #else
379                   #define CL_HUGE_VALF     ((cl_float) 1e50)
380                   #define CL_HUGE_VAL      ((cl_double) 1e500)
381                   float nanf( const char * );
382                   #define CL_NAN           nanf( "" )
383                #endif
384            </comment>
385    </enums>
386
387    <enums name="Constants.Versioning" vendor="Khronos" comment="Miscellaneous API constants, in cl.h">
388        <enum value="10"                                 name="CL_VERSION_MAJOR_BITS"/>
389        <enum value="10"                                 name="CL_VERSION_MINOR_BITS"/>
390        <enum value="12"                                 name="CL_VERSION_PATCH_BITS"/>
391        <enum value="64"                                 name="CL_NAME_VERSION_MAX_NAME_SIZE"/>
392    </enums>
393
394    <enums name="Constants.cl_khr_extended_versioning" vendor="Khronos" comment="cl_khr_extended_versioning, in cl_ext.h">
395        <enum value="10"                                 name="CL_VERSION_MAJOR_BITS_KHR"/>
396        <enum value="10"                                 name="CL_VERSION_MINOR_BITS_KHR"/>
397        <enum value="12"                                 name="CL_VERSION_PATCH_BITS_KHR"/>
398        <enum value="64"                                 name="CL_NAME_VERSION_MAX_NAME_SIZE_KHR"/>
399    </enums>
400
401    <enums name="Constants.cl_khr_device_uuid" vendor="Khronos" comment="cl_khr_device_uuid size constants, in cl_ext.h">
402        <enum value="16"            name="CL_UUID_SIZE_KHR"/>
403        <enum value="8"             name="CL_LUID_SIZE_KHR"/>
404    </enums>
405
406    <enums name="Constants.cl_arm_import_memory" vendor="ARM" comment = "cl_arm_import_memory size constants, in cl_ext.h">
407        <enum value="SIZE_MAX"      name="CL_IMPORT_MEMORY_WHOLE_ALLOCATION_ARM"/>
408    </enums>
409
410    <enums name="Constants.cl_intel_command_queue_families" vendor="Intel" commant="cl_intel_command_queue_families constants, in cl_ext.h">
411        <enum value="64"            name="CL_QUEUE_FAMILY_MAX_NAME_SIZE_INTEL"/>
412        <enum value="0"             name="CL_QUEUE_DEFAULT_CAPABILITIES_INTEL"/>
413    </enums>
414
415    <enums name="Constants.cl_loader_layers" vendor="Khronos" comment="Defined Layer API version, in cl_layer.h">
416        <enum value="100"           name="CL_LAYER_API_VERSION_100"/>
417    </enums>
418
419    <enums start="0" end="-999" name="ErrorCodes.0" vendor="Khronos" comment="Error codes start at 0 and decrease">
420        <enum value="0"             name="CL_SUCCESS"/>
421        <enum value="-1"            name="CL_DEVICE_NOT_FOUND"/>
422        <enum value="-2"            name="CL_DEVICE_NOT_AVAILABLE"/>
423        <enum value="-3"            name="CL_COMPILER_NOT_AVAILABLE"/>
424        <enum value="-4"            name="CL_MEM_OBJECT_ALLOCATION_FAILURE"/>
425        <enum value="-5"            name="CL_OUT_OF_RESOURCES"/>
426        <enum value="-6"            name="CL_OUT_OF_HOST_MEMORY"/>
427        <enum value="-7"            name="CL_PROFILING_INFO_NOT_AVAILABLE"/>
428        <enum value="-8"            name="CL_MEM_COPY_OVERLAP"/>
429        <enum value="-9"            name="CL_IMAGE_FORMAT_MISMATCH"/>
430        <enum value="-10"           name="CL_IMAGE_FORMAT_NOT_SUPPORTED"/>
431        <enum value="-11"           name="CL_BUILD_PROGRAM_FAILURE"/>
432        <enum value="-12"           name="CL_MAP_FAILURE"/>
433        <enum value="-13"           name="CL_MISALIGNED_SUB_BUFFER_OFFSET"/>
434        <enum value="-14"           name="CL_EXEC_STATUS_ERROR_FOR_EVENTS_IN_WAIT_LIST"/>
435        <enum value="-15"           name="CL_COMPILE_PROGRAM_FAILURE"/>
436        <enum value="-16"           name="CL_LINKER_NOT_AVAILABLE"/>
437        <enum value="-17"           name="CL_LINK_PROGRAM_FAILURE"/>
438        <enum value="-18"           name="CL_DEVICE_PARTITION_FAILED"/>
439        <enum value="-19"           name="CL_KERNEL_ARG_INFO_NOT_AVAILABLE"/>
440            <unused start="-20" end="-29" comment="Reserved for Khronos"/>
441        <enum value="-30"           name="CL_INVALID_VALUE"/>
442        <enum value="-31"           name="CL_INVALID_DEVICE_TYPE"/>
443        <enum value="-32"           name="CL_INVALID_PLATFORM"/>
444        <enum value="-33"           name="CL_INVALID_DEVICE"/>
445        <enum value="-34"           name="CL_INVALID_CONTEXT"/>
446        <enum value="-35"           name="CL_INVALID_QUEUE_PROPERTIES"/>
447        <enum value="-36"           name="CL_INVALID_COMMAND_QUEUE"/>
448        <enum value="-37"           name="CL_INVALID_HOST_PTR"/>
449        <enum value="-38"           name="CL_INVALID_MEM_OBJECT"/>
450        <enum value="-39"           name="CL_INVALID_IMAGE_FORMAT_DESCRIPTOR"/>
451        <enum value="-40"           name="CL_INVALID_IMAGE_SIZE"/>
452        <enum value="-41"           name="CL_INVALID_SAMPLER"/>
453        <enum value="-42"           name="CL_INVALID_BINARY"/>
454        <enum value="-43"           name="CL_INVALID_BUILD_OPTIONS"/>
455        <enum value="-44"           name="CL_INVALID_PROGRAM"/>
456        <enum value="-45"           name="CL_INVALID_PROGRAM_EXECUTABLE"/>
457        <enum value="-46"           name="CL_INVALID_KERNEL_NAME"/>
458        <enum value="-47"           name="CL_INVALID_KERNEL_DEFINITION"/>
459        <enum value="-48"           name="CL_INVALID_KERNEL"/>
460        <enum value="-49"           name="CL_INVALID_ARG_INDEX"/>
461        <enum value="-50"           name="CL_INVALID_ARG_VALUE"/>
462        <enum value="-51"           name="CL_INVALID_ARG_SIZE"/>
463        <enum value="-52"           name="CL_INVALID_KERNEL_ARGS"/>
464        <enum value="-53"           name="CL_INVALID_WORK_DIMENSION"/>
465        <enum value="-54"           name="CL_INVALID_WORK_GROUP_SIZE"/>
466        <enum value="-55"           name="CL_INVALID_WORK_ITEM_SIZE"/>
467        <enum value="-56"           name="CL_INVALID_GLOBAL_OFFSET"/>
468        <enum value="-57"           name="CL_INVALID_EVENT_WAIT_LIST"/>
469        <enum value="-58"           name="CL_INVALID_EVENT"/>
470        <enum value="-59"           name="CL_INVALID_OPERATION"/>
471        <enum value="-60"           name="CL_INVALID_GL_OBJECT"/>
472        <enum value="-61"           name="CL_INVALID_BUFFER_SIZE"/>
473        <enum value="-62"           name="CL_INVALID_MIP_LEVEL"/>
474        <enum value="-63"           name="CL_INVALID_GLOBAL_WORK_SIZE"/>
475        <enum value="-64"           name="CL_INVALID_PROPERTY"/>
476        <enum value="-65"           name="CL_INVALID_IMAGE_DESCRIPTOR"/>
477        <enum value="-66"           name="CL_INVALID_COMPILER_OPTIONS"/>
478        <enum value="-67"           name="CL_INVALID_LINKER_OPTIONS"/>
479        <enum value="-68"           name="CL_INVALID_DEVICE_PARTITION_COUNT"/>
480        <enum value="-69"           name="CL_INVALID_PIPE_SIZE"/>
481        <enum value="-70"           name="CL_INVALID_DEVICE_QUEUE"/>
482        <enum value="-71"           name="CL_INVALID_SPEC_ID"/>
483        <enum value="-72"           name="CL_MAX_SIZE_RESTRICTION_EXCEEDED"/>
484            <unused start="-73" end="-999" comment="Reserved for Khronos"/>
485    </enums>
486
487    <enums start="-1000" end="-1001" name="ErrorCodes.1000" vendor="Khronos" comment="Extension error codes start at -1000 and decrease">
488        <enum value="-1000"         name="CL_INVALID_GL_SHAREGROUP_REFERENCE_KHR"/>
489        <enum value="-1001"         name="CL_PLATFORM_NOT_FOUND_KHR"/>
490    </enums>
491
492    <enums start="-1002" end="-1017" name="ErrorCodes.1002" vendor="NVIDIA" comment="Allocated per Bug 5782">
493        <enum value="-1002"         name="CL_INVALID_D3D10_DEVICE_KHR"/>
494        <!-- unused <enum value="-1002"       name="CL_INVALID_D3D10_DEVICE_NV"/> -->
495        <enum value="-1003"         name="CL_INVALID_D3D10_RESOURCE_KHR"/>
496        <!-- unused <enum value="-1003"       name="CL_INVALID_D3D10_RESOURCE_NV"/> -->
497        <enum value="-1004"         name="CL_D3D10_RESOURCE_ALREADY_ACQUIRED_KHR"/>
498        <!-- unused <enum value="-1004"       name="CL_D3D10_RESOURCE_ALREADY_ACQUIRED_NV"/> -->
499        <enum value="-1005"         name="CL_D3D10_RESOURCE_NOT_ACQUIRED_KHR"/>
500        <!-- unused <enum value="-1005"       name="CL_D3D10_RESOURCE_NOT_ACQUIRED_NV"/> -->
501        <enum value="-1006"         name="CL_INVALID_D3D11_DEVICE_KHR"/>
502        <!-- unused <enum value="-1006"       name="CL_INVALID_D3D11_DEVICE_NV"/> -->
503        <enum value="-1007"         name="CL_INVALID_D3D11_RESOURCE_KHR"/>
504        <!-- unused <enum value="-1007"       name="CL_INVALID_D3D11_RESOURCE_NV"/> -->
505        <enum value="-1008"         name="CL_D3D11_RESOURCE_ALREADY_ACQUIRED_KHR"/>
506        <!-- unused <enum value="-1008"       name="CL_D3D11_RESOURCE_ALREADY_ACQUIRED_NV"/> -->
507        <enum value="-1009"         name="CL_D3D11_RESOURCE_NOT_ACQUIRED_KHR"/>
508        <!-- unused <enum value="-1009"       name="CL_D3D11_RESOURCE_NOT_ACQUIRED_NV"/> -->
509        <!-- unused <enum value="-1010"       name="CL_INVALID_D3D9_DEVICE_NV"/> -->
510        <enum value="-1010"         name="CL_INVALID_DX9_DEVICE_INTEL"/>
511        <enum value="-1010"         name="CL_INVALID_DX9_MEDIA_ADAPTER_KHR"/>
512        <!-- unused <enum value="-1011"       name="CL_INVALID_D3D9_RESOURCE_NV"/> -->
513        <enum value="-1011"         name="CL_INVALID_DX9_MEDIA_SURFACE_KHR"/>
514        <enum value="-1011"         name="CL_INVALID_DX9_RESOURCE_INTEL"/>
515        <!-- unused <enum value="-1012"       name="CL_D3D9_RESOURCE_ALREADY_ACQUIRED_NV"/> -->
516        <enum value="-1012"         name="CL_DX9_MEDIA_SURFACE_ALREADY_ACQUIRED_KHR"/>
517        <enum value="-1012"         name="CL_DX9_RESOURCE_ALREADY_ACQUIRED_INTEL"/>
518        <!-- unused <enum value="-1013"       name="CL_D3D9_RESOURCE_NOT_ACQUIRED_NV"/> -->
519        <enum value="-1013"         name="CL_DX9_MEDIA_SURFACE_NOT_ACQUIRED_KHR"/>
520        <enum value="-1013"         name="CL_DX9_RESOURCE_NOT_ACQUIRED_INTEL"/>
521            <unused start="-1014" end="-1017"/>
522    </enums>
523
524    <enums start="-1018" end="-1024" name="ErrorCodes.1018" vendor="AMD" comment="Allocated per Bugs 6071,6075">
525            <!-- To be named AMD atomic counters extension - see bug 6071/6075 -->
526        <!-- unused <enum value="-1018"       name="CL_INVALID_PROPERTY_EXT"/> -->
527        <!-- unused <enum value="-1019"       name="CL_DEVICE_PARTITION_FAILED_EXT"/> -->
528        <!-- unused <enum value="-1020"       name="CL_INVALID_PARTITION_COUNT_EXT"/> -->
529            <!-- To be named AMD D3D9 extension - see bug 6071 -->
530        <!-- unused <enum value="-1021"       name="CL_INVALID_D3D9_DEVICE_AMD"/> -->
531        <!-- unused <enum value="-1022"       name="CL_INVALID_D3D9_RESOURCE_AMD"/> -->
532        <!-- unused <enum value="-1023"       name="CL_D3D9_RESOURCE_ALREADY_ACQUIRED_AMD"/> -->
533        <!-- unused <enum value="-1024"       name="CL_D3D9_RESOURCE_NOT_ACQUIRED_AMD"/> -->
534    </enums>
535
536    <enums start="-1025" end="-1056" name="ErrorCodes.1025" vendor="IBM" comment="Allocated per Bug 6261">
537            <unused start="-1025" end="-1056"/>
538    </enums>
539
540    <enums start="-1057" end="-1091" name="ErrorCodes.1057" vendor="Apple" comment="Allocated for cl_ext_device_fission and by email request from Ian Ollman 2010/07/08">
541        <enum value="-1057"         name="CL_DEVICE_PARTITION_FAILED_EXT"/>
542        <enum value="-1058"         name="CL_INVALID_PARTITION_COUNT_EXT"/>
543        <enum value="-1059"         name="CL_INVALID_PARTITION_NAME_EXT"/>
544            <unused start="-1060" end="-1091"/>
545    </enums>
546
547    <enums start="-1092" end="-1093" name="ErrorCodes.1092" vendor="Khronos" comment="Allocated per Bug 10490">
548        <enum value="-1092"         name="CL_EGL_RESOURCE_NOT_ACQUIRED_KHR"/>
549        <enum value="-1093"         name="CL_INVALID_EGL_OBJECT_KHR"/>
550    </enums>
551
552    <enums start="-1094" end="-1101" name="ErrorCodes.1094" vendor="Intel" comment="Allocated per Bug 11132">
553        <enum value="-1094"         name="CL_INVALID_ACCELERATOR_INTEL"/>
554        <enum value="-1095"         name="CL_INVALID_ACCELERATOR_TYPE_INTEL"/>
555        <enum value="-1096"         name="CL_INVALID_ACCELERATOR_DESCRIPTOR_INTEL"/>
556        <enum value="-1097"         name="CL_ACCELERATOR_TYPE_NOT_SUPPORTED_INTEL"/>
557        <enum value="-1098"         name="CL_INVALID_VA_API_MEDIA_ADAPTER_INTEL"/>
558        <enum value="-1099"         name="CL_INVALID_VA_API_MEDIA_SURFACE_INTEL"/>
559        <enum value="-1100"         name="CL_VA_API_MEDIA_SURFACE_ALREADY_ACQUIRED_INTEL"/>
560        <enum value="-1101"         name="CL_VA_API_MEDIA_SURFACE_NOT_ACQUIRED_INTEL"/>
561    </enums>
562
563    <enums start="-1102" end="-1105" name="ErrorCodes.1102" vendor="Qualcomm" comment="Reserved for Qualcomm extensions">
564    </enums>
565
566    <enums start="-1106" end="-1107" name="ErrorCodes.1106" vendor="Intel" comment="Intel FPGA extension">
567        <enum value="-1106"         name="CL_PIPE_FULL_INTEL"/>
568        <enum value="-1107"         name="CL_PIPE_EMPTY_INTEL"/>
569    </enums>
570
571    <enums start="-1108" end="-1120" name="ErrorCodes.1108" vendor="Arm" comment="Reserved for Arm extensions">
572        <enum value="-1108"         name="CL_COMMAND_TERMINATED_ITSELF_WITH_FAILURE_ARM"/>
573            <unused start="-1109" end="-1120"/>
574    </enums>
575
576    <enums start="-1121" end="-1121" name="ErrorCodes.1121" vendor="Khronos" comment="For cl_khr_terminate_context">
577        <enum value="-1121"         name="CL_CONTEXT_TERMINATED_KHR"/>
578    </enums>
579
580    <enums start="-1122" end="-1137" name="ErrorCodes.1122" vendor="IMG" comment="Reserved for Imagination extensions">
581        <enum value="-1122"         name="CL_ERROR_RESERVED0_IMG"/>
582        <enum value="-1123"         name="CL_ERROR_RESERVED1_IMG"/>
583        <enum value="-1124"         name="CL_ERROR_RESERVED2_IMG"/>
584        <enum value="-1125"         name="CL_ERROR_RESERVED3_IMG"/>
585            <unused start="-1126" end="-1137"/>
586    </enums>
587
588    <enums start="-1138" end="-9999" name="ErrorCodes.future" vendor="Khronos" comment="RESERVED FOR FUTURE ALLOCATIONS BY KHRONOS">
589            <unused start="-1138" end="-9999"/>
590    </enums>
591
592    <enums name="cl_bool" vendor="Khronos" comment="Boolean values">
593        <enum value="0"             name="CL_FALSE"/>
594        <enum value="1"             name="CL_TRUE"/>
595            <!-- Should be alias= -->
596        <enum value="CL_TRUE"       name="CL_BLOCKING"/>
597        <enum value="CL_FALSE"      name="CL_NON_BLOCKING"/>
598    </enums>
599
600    <enums name="MiscNumbers" vendor="Multiple" comment="Tokens whose numeric value is intrinsically meaningful">
601        <enum value="((cl_device_partition_property_ext)0)"        name="CL_PROPERTIES_LIST_END_EXT"/>
602        <enum value="((cl_device_partition_property_ext)0)"        name="CL_PARTITION_BY_COUNTS_LIST_END_EXT"/>
603        <enum value="0x0"           name="CL_DEVICE_PARTITION_BY_COUNTS_LIST_END"/>
604        <enum value="((cl_device_partition_property_ext)0 - 1)"    name="CL_PARTITION_BY_NAMES_LIST_END_EXT"/>
605        <enum value="-1"            name="CL_PARTITION_BY_NAMES_LIST_END_INTEL"/>
606    </enums>
607
608    <enums name="cl_affinity_domain_ext" vendor="IBM" comment="Property names for CL_DEVICE_PARTITION_BY_AFFINITY_DOMAIN_EXT. This is not a bitfield.">
609        <enum value="0x1"           name="CL_AFFINITY_DOMAIN_L1_CACHE_EXT"/>
610        <enum value="0x2"           name="CL_AFFINITY_DOMAIN_L2_CACHE_EXT"/>
611        <enum value="0x3"           name="CL_AFFINITY_DOMAIN_L3_CACHE_EXT"/>
612        <enum value="0x4"           name="CL_AFFINITY_DOMAIN_L4_CACHE_EXT"/>
613        <enum value="0x10"          name="CL_AFFINITY_DOMAIN_NUMA_EXT"/>
614        <enum value="0x100"         name="CL_AFFINITY_DOMAIN_NEXT_FISSIONABLE_EXT"/>
615    </enums>
616
617    <enums name="cl_build_status" vendor="Khronos" comment="New values decrease">
618        <enum value="0"             name="CL_BUILD_SUCCESS"/>
619        <enum value="-1"            name="CL_BUILD_NONE"/>
620        <enum value="-2"            name="CL_BUILD_ERROR"/>
621        <enum value="-3"            name="CL_BUILD_IN_PROGRESS"/>
622            <unused start="-4" end="-9999"/>
623    </enums>
624
625    <enums name="clCommandExecutionStatus" vendor="Khronos">
626        <enum value="0x0"           name="CL_COMPLETE"/>
627        <enum value="0x1"           name="CL_RUNNING"/>
628        <enum value="0x2"           name="CL_SUBMITTED"/>
629        <enum value="0x3"           name="CL_QUEUED"/>
630            <unused start="0x4" end="9999"/>
631    </enums>
632
633    <enums name="cl_device_mem_cache_type" vendor="Khronos">
634        <enum value="0x0"           name="CL_NONE"/>
635        <enum value="0x1"           name="CL_READ_ONLY_CACHE"/>
636        <enum value="0x2"           name="CL_READ_WRITE_CACHE"/>
637            <unused start="0x3" end="9999"/>
638    </enums>
639
640    <enums name="cl_compiler_mode_altera" vendor="Altera">
641        <!-- unused <enum value="0x0"         name="CL_CONTEXT_COMPILER_MODE_OFFLINE_ALTERA"/> -->
642        <!-- unused <enum value="0x1"         name="CL_CONTEXT_COMPILER_MODE_OFFLINE_CREATE_EXE_LIBRARY_ALTERA"/> -->
643        <!-- unused <enum value="0x2"         name="CL_CONTEXT_COMPILER_MODE_OFFLINE_USE_EXE_LIBRARY_ALTERA"/> -->
644        <!-- unused <enum value="0x3"         name="CL_CONTEXT_COMPILER_MODE_PRELOADED_BINARY_ONLY_ALTERA"/> -->
645            <unused start="0x4" end="9999"/>
646    </enums>
647
648    <enums name="cl_device_local_mem_type" vendor="Khronos">
649        <enum value="0x1"           name="CL_LOCAL"/>
650        <enum value="0x2"           name="CL_GLOBAL"/>
651            <unused start="0x3" end="9999"/>
652    </enums>
653
654    <enums name="cl_program_binary_type" vendor="Khronos">
655        <enum value="0x0"           name="CL_PROGRAM_BINARY_TYPE_NONE"/>
656        <enum value="0x1"           name="CL_PROGRAM_BINARY_TYPE_COMPILED_OBJECT"/>
657        <enum value="0x2"           name="CL_PROGRAM_BINARY_TYPE_LIBRARY"/>
658        <enum value="0x4"           name="CL_PROGRAM_BINARY_TYPE_EXECUTABLE"/>
659            <unused start="0x5" end="9999"/>
660    </enums>
661
662    <enums name="cl_accelerator_type_intel" vendor="Intel" comment="cl_intel_motion_estimation extension">
663        <enum value="0x0"           name="CL_ACCELERATOR_TYPE_MOTION_ESTIMATION_INTEL"/>
664            <unused start="0x1" end="9999"/>
665    </enums>
666
667    <enums name="cl_device_type" vendor="Khronos" type="bitmask">
668        <enum bitpos="0"            name="CL_DEVICE_TYPE_DEFAULT"/>
669        <enum bitpos="1"            name="CL_DEVICE_TYPE_CPU"/>
670        <enum bitpos="2"            name="CL_DEVICE_TYPE_GPU"/>
671        <enum bitpos="3"            name="CL_DEVICE_TYPE_ACCELERATOR"/>
672        <enum bitpos="4"            name="CL_DEVICE_TYPE_CUSTOM"/>
673            <unused start="5" end="31"/>
674        <enum value="0xFFFFFFFF"    name="CL_DEVICE_TYPE_ALL"/>
675    </enums>
676
677    <enums name="cl_device_fp_config" vendor="Khronos" type="bitmask">
678        <enum bitpos="0"            name="CL_FP_DENORM"/>
679        <enum bitpos="1"            name="CL_FP_INF_NAN"/>
680        <enum bitpos="2"            name="CL_FP_ROUND_TO_NEAREST"/>
681        <enum bitpos="3"            name="CL_FP_ROUND_TO_ZERO"/>
682        <enum bitpos="4"            name="CL_FP_ROUND_TO_INF"/>
683        <enum bitpos="5"            name="CL_FP_FMA"/>
684        <enum bitpos="6"            name="CL_FP_SOFT_FLOAT"/>
685        <enum bitpos="7"            name="CL_FP_CORRECTLY_ROUNDED_DIVIDE_SQRT"/>
686            <unused start="8" end="31"/>
687    </enums>
688
689    <enums name="cl_device_exec_capabilities" vendor="Khronos" type="bitmask">
690        <enum bitpos="0"            name="CL_EXEC_KERNEL"/>
691        <enum bitpos="1"            name="CL_EXEC_NATIVE_KERNEL"/>
692            <unused start="2" end="31"/>
693    </enums>
694
695    <enums name="cl_device_svm_capabilities" vendor="Khronos" type="bitmask">
696        <enum bitpos="0"            name="CL_DEVICE_SVM_COARSE_GRAIN_BUFFER"/>
697        <enum bitpos="1"            name="CL_DEVICE_SVM_FINE_GRAIN_BUFFER"/>
698        <enum bitpos="2"            name="CL_DEVICE_SVM_FINE_GRAIN_SYSTEM"/>
699        <enum bitpos="3"            name="CL_DEVICE_SVM_ATOMICS"/>
700            <unused start="4" end="31"/>
701    </enums>
702
703    <enums name="cl_device_atomic_capabilities" vendor="Khronos" type="bitmask">
704        <enum bitpos="0"            name="CL_DEVICE_ATOMIC_ORDER_RELAXED"/>
705        <enum bitpos="1"            name="CL_DEVICE_ATOMIC_ORDER_ACQ_REL"/>
706        <enum bitpos="2"            name="CL_DEVICE_ATOMIC_ORDER_SEQ_CST"/>
707        <enum bitpos="3"            name="CL_DEVICE_ATOMIC_SCOPE_WORK_ITEM"/>
708        <enum bitpos="4"            name="CL_DEVICE_ATOMIC_SCOPE_WORK_GROUP"/>
709        <enum bitpos="5"            name="CL_DEVICE_ATOMIC_SCOPE_DEVICE"/>
710        <enum bitpos="6"            name="CL_DEVICE_ATOMIC_SCOPE_ALL_DEVICES"/>
711            <unused start="7" end="31"/>
712    </enums>
713
714    <enums name="cl_device_device_enqueue_capabilities" vendor="Khronos" type="bitmask">
715        <enum bitpos="0"            name="CL_DEVICE_QUEUE_SUPPORTED"/>
716        <enum bitpos="1"            name="CL_DEVICE_QUEUE_REPLACEABLE_DEFAULT"/>
717            <unused start="2" end="31"/>
718    </enums>
719
720    <enums name="cl_command_queue_properties" vendor="Khronos" type="bitmask">
721        <enum bitpos="0"            name="CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE"/>
722        <enum bitpos="1"            name="CL_QUEUE_PROFILING_ENABLE"/>
723        <enum bitpos="2"            name="CL_QUEUE_ON_DEVICE"/>
724        <enum bitpos="3"            name="CL_QUEUE_ON_DEVICE_DEFAULT"/>
725            <unused start="4" end="29"/>
726        <enum bitpos="30"           name="CL_QUEUE_RESERVED_QCOM"/>
727        <enum bitpos="31"           name="CL_QUEUE_THREAD_LOCAL_EXEC_ENABLE_INTEL"/>
728    </enums>
729
730    <enums name="cl_queue_priority_khr" vendor="Khronos" type="bitmask">
731        <enum bitpos="0"            name="CL_QUEUE_PRIORITY_HIGH_KHR"/>
732        <enum bitpos="1"            name="CL_QUEUE_PRIORITY_MED_KHR"/>
733        <enum bitpos="2"            name="CL_QUEUE_PRIORITY_LOW_KHR"/>
734            <unused start="3" end="31"/>
735    </enums>
736
737    <enums name="cl_queue_throttle_khr" vendor="Khronos" type="bitmask">
738        <enum bitpos="0"            name="CL_QUEUE_THROTTLE_HIGH_KHR"/>
739        <enum bitpos="1"            name="CL_QUEUE_THROTTLE_MED_KHR"/>
740        <enum bitpos="2"            name="CL_QUEUE_THROTTLE_LOW_KHR"/>
741            <unused start="3" end="31"/>
742    </enums>
743
744    <enums name="cl_mem_flags" vendor="Khronos" type="bitmask">
745        <enum bitpos="0"            name="CL_MEM_READ_WRITE"/>
746        <enum bitpos="1"            name="CL_MEM_WRITE_ONLY"/>
747        <enum bitpos="2"            name="CL_MEM_READ_ONLY"/>
748        <enum bitpos="3"            name="CL_MEM_USE_HOST_PTR"/>
749        <enum bitpos="4"            name="CL_MEM_ALLOC_HOST_PTR"/>
750        <enum bitpos="5"            name="CL_MEM_COPY_HOST_PTR"/>
751            <unused start="6" comment="reserved"/>
752        <enum bitpos="7"            name="CL_MEM_HOST_WRITE_ONLY"/>
753        <enum bitpos="8"            name="CL_MEM_HOST_READ_ONLY"/>
754        <enum bitpos="9"            name="CL_MEM_HOST_NO_ACCESS"/>
755        <enum bitpos="10"           name="CL_MEM_SVM_FINE_GRAIN_BUFFER"/>
756        <enum bitpos="11"           name="CL_MEM_SVM_ATOMICS"/>
757        <enum bitpos="12"           name="CL_MEM_KERNEL_READ_AND_WRITE"/>
758            <unused start="13" end="19"/>
759        <enum bitpos="20"           name="CL_MEM_FORCE_HOST_MEMORY_INTEL"/>
760            <unused start="21" end="23"/>
761        <enum bitpos="24"           name="CL_MEM_NO_ACCESS_INTEL"/>
762        <enum bitpos="25"           name="CL_MEM_ACCESS_FLAGS_UNRESTRICTED_INTEL"/>
763        <enum bitpos="26"           name="CL_MEM_USE_UNCACHED_CPU_MEMORY_IMG"/>
764        <enum bitpos="27"           name="CL_MEM_USE_CACHED_CPU_MEMORY_IMG"/>
765        <enum bitpos="28"           name="CL_MEM_USE_GRALLOC_PTR_IMG"/>
766        <enum bitpos="29"           name="CL_MEM_EXT_HOST_PTR_QCOM"/>
767        <!-- unused <enum bitpos="30"   name="CL_MEM_BUS_ADDRESSABLE_AMD"/> -->
768        <!-- unused <enum bitpos="31"   name="CL_MEM_EXTERNAL_MEMORY_AMD"/> -->
769        <enum bitpos="32"           name="CL_MEM_RESERVED0_ARM"/>
770        <enum bitpos="33"           name="CL_MEM_RESERVED1_ARM"/>
771        <enum bitpos="34"           name="CL_MEM_RESERVED2_ARM"/>
772        <enum bitpos="35"           name="CL_MEM_RESERVED3_ARM"/>
773        <enum bitpos="36"           name="CL_MEM_RESERVED4_ARM"/>
774            <unused start="37" end="63"/>
775    </enums>
776
777    <enums name="cl_map_flags" vendor="Khronos" type="bitmask">
778        <enum bitpos="0"            name="CL_MAP_READ"/>
779        <enum bitpos="1"            name="CL_MAP_WRITE"/>
780        <enum bitpos="2"            name="CL_MAP_WRITE_INVALIDATE_REGION"/>
781            <unused start="3" end="31"/>
782    </enums>
783
784    <enums name="cl_mem_migration_flags" vendor="Khronos" type="bitmask">
785        <enum bitpos="0"            name="CL_MIGRATE_MEM_OBJECT_HOST"/>
786        <enum bitpos="0"            name="CL_MIGRATE_MEM_OBJECT_HOST_EXT"/>
787        <enum bitpos="1"            name="CL_MIGRATE_MEM_OBJECT_CONTENT_UNDEFINED"/>
788            <unused start="2" end="31"/>
789    </enums>
790
791    <enums name="cl_device_affinity_domain" vendor="Khronos" type="bitmask">
792        <enum bitpos="0"            name="CL_DEVICE_AFFINITY_DOMAIN_NUMA"/>
793        <enum bitpos="1"            name="CL_DEVICE_AFFINITY_DOMAIN_L4_CACHE"/>
794        <enum bitpos="2"            name="CL_DEVICE_AFFINITY_DOMAIN_L3_CACHE"/>
795        <enum bitpos="3"            name="CL_DEVICE_AFFINITY_DOMAIN_L2_CACHE"/>
796        <enum bitpos="4"            name="CL_DEVICE_AFFINITY_DOMAIN_L1_CACHE"/>
797        <enum bitpos="5"            name="CL_DEVICE_AFFINITY_DOMAIN_NEXT_PARTITIONABLE"/>
798            <unused start="6" end="31"/>
799    </enums>
800
801    <enums name="cl_kernel_arg_type_qualifer" vendor="Khronos" type="bitmask">
802        <enum value="0"             name="CL_KERNEL_ARG_TYPE_NONE"/>
803        <enum bitpos="0"            name="CL_KERNEL_ARG_TYPE_CONST"/>
804        <enum bitpos="1"            name="CL_KERNEL_ARG_TYPE_RESTRICT"/>
805        <enum bitpos="2"            name="CL_KERNEL_ARG_TYPE_VOLATILE"/>
806        <enum bitpos="3"            name="CL_KERNEL_ARG_TYPE_PIPE"/>
807            <unused start="4" end="31"/>
808    </enums>
809
810    <enums name="cl_motion_estimation_desc_intel.mb_block_type" vendor="Intel" type="bitmask">
811        <enum value="0x0"           name="CL_ME_MB_TYPE_16x16_INTEL"/>
812        <enum value="0x1"           name="CL_ME_MB_TYPE_8x8_INTEL"/>
813        <enum value="0x2"           name="CL_ME_MB_TYPE_4x4_INTEL"/>
814            <unused start="0x4" end="0x80000000"/>
815    </enums>
816
817    <enums name="cl_motion_estimation_desc_intel.subpixel_mode" vendor="Intel" type="bitmask">
818        <enum value="0x0"           name="CL_ME_SUBPIXEL_MODE_INTEGER_INTEL"/>
819        <enum value="0x1"           name="CL_ME_SUBPIXEL_MODE_HPEL_INTEL"/>
820        <enum value="0x2"           name="CL_ME_SUBPIXEL_MODE_QPEL_INTEL"/>
821            <unused start="0x4" end="0x80000000"/>
822    </enums>
823
824    <enums name="cl_motion_estimation_desc_intel.sad_adjust_mode" vendor="Intel" type="bitmask">
825        <enum value="0x0"           name="CL_ME_SAD_ADJUST_MODE_NONE_INTEL"/>
826        <enum value="0x1"           name="CL_ME_SAD_ADJUST_MODE_HAAR_INTEL"/>
827            <unused start="0x2" end="0x80000000"/>
828    </enums>
829
830    <enums name="cl_motion_estimation_desc_intel.search_path_type" vendor="Intel" type="bitmask">
831        <enum value="0x0"           name="CL_ME_SEARCH_PATH_RADIUS_2_2_INTEL"/>
832        <enum value="0x1"           name="CL_ME_SEARCH_PATH_RADIUS_4_4_INTEL"/>
833            <unused start="0x2"/>
834        <enum value="0x5"           name="CL_ME_SEARCH_PATH_RADIUS_16_12_INTEL"/>
835            <unused start="0x8" end="0x80000000"/>
836    </enums>
837
838    <enums name="cl_arm_device_svm_capabilities.flags" vendor="ARM" type="bitmask">
839        <enum bitpos="0"            name="CL_DEVICE_SVM_COARSE_GRAIN_BUFFER_ARM"/>
840        <enum bitpos="1"            name="CL_DEVICE_SVM_FINE_GRAIN_BUFFER_ARM"/>
841        <enum bitpos="2"            name="CL_DEVICE_SVM_FINE_GRAIN_SYSTEM_ARM"/>
842        <enum bitpos="3"            name="CL_DEVICE_SVM_ATOMICS_ARM"/>
843            <unused start="0x10" end="0x80000000"/>
844    </enums>
845
846    <enums name="cl_arm_svm_alloc.flags" vendor="ARM" type="bitmask">
847        <enum bitpos="10"           name="CL_MEM_SVM_FINE_GRAIN_BUFFER_ARM"/>
848        <enum bitpos="11"           name="CL_MEM_SVM_ATOMICS_ARM"/>
849            <unused start="0x4" end="0x80000000"/>
850    </enums>
851
852    <enums name="cl_intel_driver_diagnostics" vendor="Intel" type="bitmask">
853        <enum value="0xff"          name="CL_CONTEXT_DIAGNOSTICS_LEVEL_ALL_INTEL"/>
854        <enum bitpos="0"            name="CL_CONTEXT_DIAGNOSTICS_LEVEL_GOOD_INTEL"/>
855        <enum bitpos="1"            name="CL_CONTEXT_DIAGNOSTICS_LEVEL_BAD_INTEL"/>
856        <enum bitpos="2"            name="CL_CONTEXT_DIAGNOSTICS_LEVEL_NEUTRAL_INTEL"/>
857    </enums>
858
859    <enums name="cl_intel_advanced_motion_estimation.flags" vendor="Intel" type="bitmask">
860        <enum value="0x1"           name="CL_ME_CHROMA_INTRA_PREDICT_ENABLED_INTEL"/>
861        <enum value="0x2"           name="CL_ME_LUMA_INTRA_PREDICT_ENABLED_INTEL"/>
862    </enums>
863
864    <enums name="cl_intel_advanced_motion_estimation.search_cost_penalty" vendor="Intel">
865        <enum value="0x0"           name="CL_ME_COST_PENALTY_NONE_INTEL"/>
866        <enum value="0x1"           name="CL_ME_COST_PENALTY_LOW_INTEL"/>
867        <enum value="0x2"           name="CL_ME_COST_PENALTY_NORMAL_INTEL"/>
868        <enum value="0x3"           name="CL_ME_COST_PENALTY_HIGH_INTEL"/>
869    </enums>
870
871    <enums name="cl_intel_advanced_motion_estimation.search_cost_precision" vendor="Intel">
872        <enum value="0x0"           name="CL_ME_COST_PRECISION_QPEL_INTEL"/>
873        <enum value="0x1"           name="CL_ME_COST_PRECISION_HPEL_INTEL"/>
874        <enum value="0x2"           name="CL_ME_COST_PRECISION_PEL_INTEL"/>
875        <enum value="0x3"           name="CL_ME_COST_PRECISION_DPEL_INTEL"/>
876    </enums>
877
878    <enums name="cl_intel_advanced_motion_estimation.intra_search_prediction_modes_buffer.luma_block" vendor="Intel">
879        <enum value="0x0"           name="CL_ME_LUMA_PREDICTOR_MODE_VERTICAL_INTEL"/>
880        <enum value="0x1"           name="CL_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_INTEL"/>
881        <enum value="0x2"           name="CL_ME_LUMA_PREDICTOR_MODE_DC_INTEL"/>
882        <enum value="0x3"           name="CL_ME_LUMA_PREDICTOR_MODE_DIAGONAL_DOWN_LEFT_INTEL"/>
883        <enum value="0x4"           name="CL_ME_LUMA_PREDICTOR_MODE_DIAGONAL_DOWN_RIGHT_INTEL"/>
884        <enum value="0x4"           name="CL_ME_LUMA_PREDICTOR_MODE_PLANE_INTEL"/>
885        <enum value="0x5"           name="CL_ME_LUMA_PREDICTOR_MODE_VERTICAL_RIGHT_INTEL"/>
886        <enum value="0x6"           name="CL_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_DOWN_INTEL"/>
887        <enum value="0x7"           name="CL_ME_LUMA_PREDICTOR_MODE_VERTICAL_LEFT_INTEL"/>
888        <enum value="0x8"           name="CL_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_UP_INTEL"/>
889    </enums>
890
891    <enums name="cl_intel_advanced_motion_estimation.intra_search_prediction_modes_buffer.chroma_block" vendor="Intel">
892        <enum value="0x0"           name="CL_ME_CHROMA_PREDICTOR_MODE_DC_INTEL"/>
893        <enum value="0x1"           name="CL_ME_CHROMA_PREDICTOR_MODE_HORIZONTAL_INTEL"/>
894        <enum value="0x2"           name="CL_ME_CHROMA_PREDICTOR_MODE_VERTICAL_INTEL"/>
895        <enum value="0x3"           name="CL_ME_CHROMA_PREDICTOR_MODE_PLANE_INTEL"/>
896    </enums>
897
898    <enums name="cl_intel_advanced_motion_estimation.skip_block_type" vendor="Intel">
899        <enum value="0x0"           name="CL_ME_SKIP_BLOCK_TYPE_16x16_INTEL"/>
900        <enum value="0x1"           name="CL_ME_SKIP_BLOCK_TYPE_8x8_INTEL"/>
901        <!-- unused <enum value="0x2"         name="CL_ME_SKIP_BLOCK_TYPE_4x4_INTEL"/> -->
902    </enums>
903
904    <enums name="cl_intel_advanced_motion_estimation.device_me_version" vendor="Intel">
905        <enum value="0x0"           name="CL_ME_VERSION_LEGACY_INTEL"/>
906        <enum value="0x1"           name="CL_ME_VERSION_ADVANCED_VER_1_INTEL"/>
907        <enum value="0x2"           name="CL_ME_VERSION_ADVANCED_VER_2_INTEL"/>
908    </enums>
909
910    <enums name="cl_intel_advanced_motion_estimation.cl_motion_detect_desc_intel" vendor="Intel">
911        <enum value="0x1"           name="CL_ME_FORWARD_INPUT_MODE_INTEL"/>
912        <enum value="0x2"           name="CL_ME_BACKWARD_INPUT_MODE_INTEL"/>
913        <enum value="0x3"           name="CL_ME_BIDIRECTION_INPUT_MODE_INTEL"/>
914    </enums>
915
916    <enums name="cl_intel_advanced_motion_estimation.cl_motion_detect_desc_intel.2" comment="Part of previous block?" vendor="Intel">
917        <enum value="16"            name="CL_ME_BIDIR_WEIGHT_QUARTER_INTEL"/>
918        <enum value="21"            name="CL_ME_BIDIR_WEIGHT_THIRD_INTEL"/>
919        <enum value="32"            name="CL_ME_BIDIR_WEIGHT_HALF_INTEL"/>
920        <enum value="43"            name="CL_ME_BIDIR_WEIGHT_TWO_THIRD_INTEL"/>
921        <enum value="48"            name="CL_ME_BIDIR_WEIGHT_THREE_QUARTER_INTEL"/>
922    </enums>
923
924    <enums name="cl_intel_device_side_avc_motion_estimation.version" vendor="Intel">
925            <enum value="0x0"           name="CL_AVC_ME_VERSION_0_INTEL"                              />
926            <enum value="0x1"           name="CL_AVC_ME_VERSION_1_INTEL"                              />
927    </enums>
928
929    <enums name="cl_intel_device_side_avc_motion_estimation.major" vendor="Intel">
930            <enum value="0x0"           name="CL_AVC_ME_MAJOR_16x16_INTEL"                            />
931            <enum value="0x1"           name="CL_AVC_ME_MAJOR_16x8_INTEL"                             />
932            <enum value="0x2"           name="CL_AVC_ME_MAJOR_8x16_INTEL"                             />
933            <enum value="0x3"           name="CL_AVC_ME_MAJOR_8x8_INTEL"                              />
934    </enums>
935
936    <enums name="cl_intel_device_side_avc_motion_estimation.minor" vendor="Intel">
937            <enum value="0x0"           name="CL_AVC_ME_MINOR_8x8_INTEL"                              />
938            <enum value="0x1"           name="CL_AVC_ME_MINOR_8x4_INTEL"                              />
939            <enum value="0x2"           name="CL_AVC_ME_MINOR_4x8_INTEL"                              />
940            <enum value="0x3"           name="CL_AVC_ME_MINOR_4x4_INTEL"                              />
941    </enums>
942
943    <enums name="cl_intel_device_side_avc_motion_estimation.major.dir" vendor="Intel">
944            <enum value="0x0"           name="CL_AVC_ME_MAJOR_FORWARD_INTEL"                          />
945            <enum value="0x1"           name="CL_AVC_ME_MAJOR_BACKWARD_INTEL"                         />
946            <enum value="0x2"           name="CL_AVC_ME_MAJOR_BIDIRECTIONAL_INTEL"                    />
947    </enums>
948
949    <enums name="cl_intel_device_side_avc_motion_estimation.partition" vendor="Intel">
950            <enum value="0x0"           name="CL_AVC_ME_PARTITION_MASK_ALL_INTEL"                     />
951            <enum value="0x7E"          name="CL_AVC_ME_PARTITION_MASK_16x16_INTEL"                   />
952            <enum value="0x7D"          name="CL_AVC_ME_PARTITION_MASK_16x8_INTEL"                    />
953            <enum value="0x7B"          name="CL_AVC_ME_PARTITION_MASK_8x16_INTEL"                    />
954            <enum value="0x77"          name="CL_AVC_ME_PARTITION_MASK_8x8_INTEL"                     />
955            <enum value="0x6F"          name="CL_AVC_ME_PARTITION_MASK_8x4_INTEL"                     />
956            <enum value="0x5F"          name="CL_AVC_ME_PARTITION_MASK_4x8_INTEL"                     />
957            <enum value="0x3F"          name="CL_AVC_ME_PARTITION_MASK_4x4_INTEL"                     />
958    </enums>
959
960    <enums name="cl_intel_device_side_avc_motion_estimation.window" vendor="Intel">
961            <enum value="0x0"           name="CL_AVC_ME_SEARCH_WINDOW_EXHAUSTIVE_INTEL"               />
962            <enum value="0x1"           name="CL_AVC_ME_SEARCH_WINDOW_SMALL_INTEL"                    />
963            <enum value="0x2"           name="CL_AVC_ME_SEARCH_WINDOW_TINY_INTEL"                     />
964            <enum value="0x3"           name="CL_AVC_ME_SEARCH_WINDOW_EXTRA_TINY_INTEL"               />
965            <enum value="0x4"           name="CL_AVC_ME_SEARCH_WINDOW_DIAMOND_INTEL"                  />
966            <enum value="0x5"           name="CL_AVC_ME_SEARCH_WINDOW_LARGE_DIAMOND_INTEL"            />
967            <enum value="0x6"           name="CL_AVC_ME_SEARCH_WINDOW_RESERVED0_INTEL"                />
968            <enum value="0x7"           name="CL_AVC_ME_SEARCH_WINDOW_RESERVED1_INTEL"                />
969            <enum value="0x8"           name="CL_AVC_ME_SEARCH_WINDOW_CUSTOM_INTEL"                   />
970            <enum value="0x9"           name="CL_AVC_ME_SEARCH_WINDOW_16x12_RADIUS_INTEL"             />
971            <enum value="0x2"           name="CL_AVC_ME_SEARCH_WINDOW_4x4_RADIUS_INTEL"               />
972            <enum value="0xa"           name="CL_AVC_ME_SEARCH_WINDOW_2x2_RADIUS_INTEL"               />
973    </enums>
974
975    <enums name="cl_intel_device_side_avc_motion_estimation.adjust" vendor="Intel">
976            <enum value="0x0"           name="CL_AVC_ME_SAD_ADJUST_MODE_NONE_INTEL"                   />
977            <enum value="0x2"           name="CL_AVC_ME_SAD_ADJUST_MODE_HAAR_INTEL"                   />
978    </enums>
979
980    <enums name="cl_intel_device_side_avc_motion_estimation.subpixel" vendor="Intel">
981            <enum value="0x0"           name="CL_AVC_ME_SUBPIXEL_MODE_INTEGER_INTEL"                  />
982            <enum value="0x1"           name="CL_AVC_ME_SUBPIXEL_MODE_HPEL_INTEL"                     />
983            <enum value="0x3"           name="CL_AVC_ME_SUBPIXEL_MODE_QPEL_INTEL"                     />
984    </enums>
985
986    <enums name="cl_intel_device_side_avc_motion_estimation.cost.precision" vendor="Intel">
987            <enum value="0x0"           name="CL_AVC_ME_COST_PRECISION_QPEL_INTEL"                    />
988            <enum value="0x1"           name="CL_AVC_ME_COST_PRECISION_HPEL_INTEL"                    />
989            <enum value="0x2"           name="CL_AVC_ME_COST_PRECISION_PEL_INTEL"                     />
990            <enum value="0x3"           name="CL_AVC_ME_COST_PRECISION_DPEL_INTEL"                    />
991    </enums>
992
993    <enums name="cl_intel_device_side_avc_motion_estimation.weight" vendor="Intel">
994            <enum value="0x10"          name="CL_AVC_ME_BIDIR_WEIGHT_QUARTER_INTEL"                   />
995            <enum value="0x15"          name="CL_AVC_ME_BIDIR_WEIGHT_THIRD_INTEL"                     />
996            <enum value="0x20"          name="CL_AVC_ME_BIDIR_WEIGHT_HALF_INTEL"                      />
997            <enum value="0x2B"          name="CL_AVC_ME_BIDIR_WEIGHT_TWO_THIRD_INTEL"                 />
998            <enum value="0x30"          name="CL_AVC_ME_BIDIR_WEIGHT_THREE_QUARTER_INTEL"             />
999    </enums>
1000
1001    <enums name="cl_intel_device_side_avc_motion_estimation.border" vendor="Intel">
1002            <enum value="0x0"           name="CL_AVC_ME_BORDER_REACHED_LEFT_INTEL"                    />
1003            <enum value="0x2"           name="CL_AVC_ME_BORDER_REACHED_RIGHT_INTEL"                   />
1004            <enum value="0x4"           name="CL_AVC_ME_BORDER_REACHED_TOP_INTEL"                     />
1005            <enum value="0x8"           name="CL_AVC_ME_BORDER_REACHED_BOTTOM_INTEL"                  />
1006    </enums>
1007
1008    <enums name="cl_intel_device_side_avc_motion_estimation.skip" vendor="Intel">
1009            <enum value="0x0"           name="CL_AVC_ME_SKIP_BLOCK_PARTITION_16x16_INTEL"             />
1010            <enum value="0x4000"        name="CL_AVC_ME_SKIP_BLOCK_PARTITION_8x8_INTEL"               />
1011    </enums>
1012
1013    <enums name="cl_intel_device_side_avc_motion_estimation.skip.dir" vendor="Intel">
1014            <enum value="(0x1 &lt;&lt; 24)"   name="CL_AVC_ME_SKIP_BLOCK_16x16_FORWARD_ENABLE_INTEL"        />
1015            <enum value="(0x2 &lt;&lt; 24)"   name="CL_AVC_ME_SKIP_BLOCK_16x16_BACKWARD_ENABLE_INTEL"       />
1016            <enum value="(0x3 &lt;&lt; 24)"   name="CL_AVC_ME_SKIP_BLOCK_16x16_DUAL_ENABLE_INTEL"           />
1017            <enum value="(0x55 &lt;&lt; 24)"  name="CL_AVC_ME_SKIP_BLOCK_8x8_FORWARD_ENABLE_INTEL"          />
1018            <enum value="(0xAA &lt;&lt; 24)"  name="CL_AVC_ME_SKIP_BLOCK_8x8_BACKWARD_ENABLE_INTEL"         />
1019            <enum value="(0xFF &lt;&lt; 24)"  name="CL_AVC_ME_SKIP_BLOCK_8x8_DUAL_ENABLE_INTEL"             />
1020            <enum value="(0x1 &lt;&lt; 24)"   name="CL_AVC_ME_SKIP_BLOCK_8x8_0_FORWARD_ENABLE_INTEL"        />
1021            <enum value="(0x2 &lt;&lt; 24)"   name="CL_AVC_ME_SKIP_BLOCK_8x8_0_BACKWARD_ENABLE_INTEL"       />
1022            <enum value="(0x1 &lt;&lt; 26)"   name="CL_AVC_ME_SKIP_BLOCK_8x8_1_FORWARD_ENABLE_INTEL"        />
1023            <enum value="(0x2 &lt;&lt; 26)"   name="CL_AVC_ME_SKIP_BLOCK_8x8_1_BACKWARD_ENABLE_INTEL"       />
1024            <enum value="(0x1 &lt;&lt; 28)"   name="CL_AVC_ME_SKIP_BLOCK_8x8_2_FORWARD_ENABLE_INTEL"        />
1025            <enum value="(0x2 &lt;&lt; 28)"   name="CL_AVC_ME_SKIP_BLOCK_8x8_2_BACKWARD_ENABLE_INTEL"       />
1026            <enum value="(0x1 &lt;&lt; 30)"   name="CL_AVC_ME_SKIP_BLOCK_8x8_3_FORWARD_ENABLE_INTEL"        />
1027            <enum value="(0x2 &lt;&lt; 30)"   name="CL_AVC_ME_SKIP_BLOCK_8x8_3_BACKWARD_ENABLE_INTEL"       />
1028    </enums>
1029
1030    <enums name="cl_intel_device_side_avc_motion_estimation.skip.block.based" vendor="Intel">
1031            <enum value="0x00"          name="CL_AVC_ME_BLOCK_BASED_SKIP_4x4_INTEL"                   />
1032            <enum value="0x80"          name="CL_AVC_ME_BLOCK_BASED_SKIP_8x8_INTEL"                   />
1033    </enums>
1034
1035    <enums name="cl_intel_device_side_avc_motion_estimation.intra" vendor="Intel">
1036            <enum value="0x0"           name="CL_AVC_ME_INTRA_16x16_INTEL"                            />
1037            <enum value="0x1"           name="CL_AVC_ME_INTRA_8x8_INTEL"                              />
1038            <enum value="0x2"           name="CL_AVC_ME_INTRA_4x4_INTEL"                              />
1039    </enums>
1040
1041    <enums name="cl_intel_device_side_avc_motion_estimation.intra.luma" vendor="Intel">
1042            <enum value="0x6"           name="CL_AVC_ME_INTRA_LUMA_PARTITION_MASK_16x16_INTEL"        />
1043            <enum value="0x5"           name="CL_AVC_ME_INTRA_LUMA_PARTITION_MASK_8x8_INTEL"          />
1044            <enum value="0x3"           name="CL_AVC_ME_INTRA_LUMA_PARTITION_MASK_4x4_INTEL"          />
1045    </enums>
1046
1047    <enums name="cl_intel_device_side_avc_motion_estimation.intra.neighbor" vendor="Intel">
1048            <enum value="0x60"          name="CL_AVC_ME_INTRA_NEIGHBOR_LEFT_MASK_ENABLE_INTEL"        />
1049            <enum value="0x10"          name="CL_AVC_ME_INTRA_NEIGHBOR_UPPER_MASK_ENABLE_INTEL"       />
1050            <enum value="0x8"           name="CL_AVC_ME_INTRA_NEIGHBOR_UPPER_RIGHT_MASK_ENABLE_INTEL" />
1051            <enum value="0x4"           name="CL_AVC_ME_INTRA_NEIGHBOR_UPPER_LEFT_MASK_ENABLE_INTEL"  />
1052    </enums>
1053
1054    <enums name="cl_intel_device_side_avc_motion_estimation.luma.predictor" vendor="Intel">
1055            <enum value="0x0"           name="CL_AVC_ME_LUMA_PREDICTOR_MODE_VERTICAL_INTEL"           />
1056            <enum value="0x1"           name="CL_AVC_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_INTEL"         />
1057            <enum value="0x2"           name="CL_AVC_ME_LUMA_PREDICTOR_MODE_DC_INTEL"                 />
1058            <enum value="0x3"           name="CL_AVC_ME_LUMA_PREDICTOR_MODE_DIAGONAL_DOWN_LEFT_INTEL" />
1059            <enum value="0x4"           name="CL_AVC_ME_LUMA_PREDICTOR_MODE_DIAGONAL_DOWN_RIGHT_INTEL"/>
1060            <enum value="0x4"           name="CL_AVC_ME_LUMA_PREDICTOR_MODE_PLANE_INTEL"              />
1061            <enum value="0x5"           name="CL_AVC_ME_LUMA_PREDICTOR_MODE_VERTICAL_RIGHT_INTEL"     />
1062            <enum value="0x6"           name="CL_AVC_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_DOWN_INTEL"    />
1063            <enum value="0x7"           name="CL_AVC_ME_LUMA_PREDICTOR_MODE_VERTICAL_LEFT_INTEL"      />
1064            <enum value="0x8"           name="CL_AVC_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_UP_INTEL"      />
1065            <enum value="0x0"           name="CL_AVC_ME_CHROMA_PREDICTOR_MODE_DC_INTEL"               />
1066            <enum value="0x1"           name="CL_AVC_ME_CHROMA_PREDICTOR_MODE_HORIZONTAL_INTEL"       />
1067            <enum value="0x2"           name="CL_AVC_ME_CHROMA_PREDICTOR_MODE_VERTICAL_INTEL"         />
1068            <enum value="0x3"           name="CL_AVC_ME_CHROMA_PREDICTOR_MODE_PLANE_INTEL"            />
1069    </enums>
1070
1071    <enums name="cl_intel_device_side_avc_motion_estimation.frame.dir" vendor="Intel">
1072            <enum value="0x1"           name="CL_AVC_ME_FRAME_FORWARD_INTEL"                          />
1073            <enum value="0x2"           name="CL_AVC_ME_FRAME_BACKWARD_INTEL"                         />
1074            <enum value="0x3"           name="CL_AVC_ME_FRAME_DUAL_INTEL"                             />
1075    </enums>
1076
1077    <enums name="cl_intel_device_side_avc_motion_estimation.slice" vendor="Intel">
1078            <enum value="0x0"           name="CL_AVC_ME_SLICE_TYPE_PRED_INTEL"                        />
1079            <enum value="0x1"           name="CL_AVC_ME_SLICE_TYPE_BPRED_INTEL"                       />
1080            <enum value="0x2"           name="CL_AVC_ME_SLICE_TYPE_INTRA_INTEL"                       />
1081    </enums>
1082
1083    <enums name="cl_intel_device_side_avc_motion_estimation.scan.dir" vendor="Intel">
1084            <enum value="0x0"           name="CL_AVC_ME_INTERLACED_SCAN_TOP_FIELD_INTEL"              />
1085            <enum value="0x1"           name="CL_AVC_ME_INTERLACED_SCAN_BOTTOM_FIELD_INTEL"           />
1086    </enums>
1087
1088    <enums name="cl_device_unified_shared_memory_capabilities_intel" vendor="Intel" type="bitmask">
1089        <enum bitpos="0"            name="CL_UNIFIED_SHARED_MEMORY_ACCESS_INTEL"/>
1090        <enum bitpos="1"            name="CL_UNIFIED_SHARED_MEMORY_ATOMIC_ACCESS_INTEL"/>
1091        <enum bitpos="2"            name="CL_UNIFIED_SHARED_MEMORY_CONCURRENT_ACCESS_INTEL"/>
1092        <enum bitpos="3"            name="CL_UNIFIED_SHARED_MEMORY_CONCURRENT_ATOMIC_ACCESS_INTEL"/>
1093    </enums>
1094
1095    <enums name="cl_mem_alloc_flags_intel" vendor="Intel" type="bitmask">
1096        <enum bitpos="0"            name="CL_MEM_ALLOC_WRITE_COMBINED_INTEL"/>
1097    </enums>
1098
1099    <enums name="cl_mipmap_filter_mode_img" vendor="IMG" comment="cl_img_generate_mipmap extension">
1100        <enum value="0x0"           name="CL_MIPMAP_FILTER_ANY_IMG"/>
1101        <enum value="0x1"           name="CL_MIPMAP_FILTER_BOX_IMG"/>
1102            <unused start="0x2" end="9999"/>
1103    </enums>
1104
1105    <enums name="cl_mem_alloc_flags_img" vendor="IMG" type="bitmask">
1106        <enum bitpos="0"            name="CL_MEM_ALLOC_RELAX_REQUIREMENTS_IMG"/>
1107    </enums>
1108
1109    <enums name="cl_device_scheduling_controls_capabilities_arm" vendor="Arm" type="bitmask">
1110        <enum bitpos="0"            name="CL_DEVICE_SCHEDULING_KERNEL_BATCHING_ARM"/>
1111        <enum bitpos="1"            name="CL_DEVICE_SCHEDULING_WORKGROUP_BATCH_SIZE_ARM"/>
1112        <enum bitpos="2"            name="CL_DEVICE_SCHEDULING_WORKGROUP_BATCH_SIZE_MODIFIER_ARM"/>
1113        <enum bitpos="3"            name="CL_DEVICE_SCHEDULING_DEFERRED_FLUSH_ARM"/>
1114        <enum bitpos="4"            name="CL_DEVICE_SCHEDULING_REGISTER_ALLOCATION_ARM"/>
1115            <unused start="5" end="63"/>
1116    </enums>
1117
1118    <enums name="cl_command_termination_reason_arm" vendor="Arm">
1119        <enum value="0"             name="CL_COMMAND_TERMINATION_COMPLETION_ARM"/>
1120        <enum value="1"             name="CL_COMMAND_TERMINATION_CONTROLLED_SUCCESS_ARM"/>
1121        <enum value="2"             name="CL_COMMAND_TERMINATION_CONTROLLED_FAILURE_ARM"/>
1122        <enum value="3"             name="CL_COMMAND_TERMINATION_ERROR_ARM"/>
1123    </enums>
1124
1125    <enums name="cl_device_controlled_termination_capabilities_arm" vendor="Arm" type="bitmask">
1126        <enum bitpos="0"            name="CL_DEVICE_CONTROLLED_TERMINATION_SUCCESS_ARM"/>
1127        <enum bitpos="1"            name="CL_DEVICE_CONTROLLED_TERMINATION_FAILURE_ARM"/>
1128        <enum bitpos="2"            name="CL_DEVICE_CONTROLLED_TERMINATION_QUERY_ARM"/>
1129            <unused start="3" end="63"/>
1130    </enums>
1131
1132    <enums name="cl_command_queue_capabilities_intel" vendor="Intel" type="bitmask">
1133        <enum bitpos="0"            name="CL_QUEUE_CAPABILITY_CREATE_SINGLE_QUEUE_EVENTS_INTEL"/>
1134        <enum bitpos="1"            name="CL_QUEUE_CAPABILITY_CREATE_CROSS_QUEUE_EVENTS_INTEL"/>
1135        <enum bitpos="2"            name="CL_QUEUE_CAPABILITY_SINGLE_QUEUE_EVENT_WAIT_LIST_INTEL"/>
1136        <enum bitpos="3"            name="CL_QUEUE_CAPABILITY_CROSS_QUEUE_EVENT_WAIT_LIST_INTEL"/>
1137            <unused start="4" end="7"/>
1138        <enum bitpos="8"            name="CL_QUEUE_CAPABILITY_TRANSFER_BUFFER_INTEL"/>
1139        <enum bitpos="9"            name="CL_QUEUE_CAPABILITY_TRANSFER_BUFFER_RECT_INTEL"/>
1140        <enum bitpos="10"           name="CL_QUEUE_CAPABILITY_MAP_BUFFER_INTEL"/>
1141        <enum bitpos="11"           name="CL_QUEUE_CAPABILITY_FILL_BUFFER_INTEL"/>
1142        <enum bitpos="12"           name="CL_QUEUE_CAPABILITY_TRANSFER_IMAGE_INTEL"/>
1143        <enum bitpos="13"           name="CL_QUEUE_CAPABILITY_MAP_IMAGE_INTEL"/>
1144        <enum bitpos="14"           name="CL_QUEUE_CAPABILITY_FILL_IMAGE_INTEL"/>
1145        <enum bitpos="15"           name="CL_QUEUE_CAPABILITY_TRANSFER_BUFFER_IMAGE_INTEL"/>
1146        <enum bitpos="16"           name="CL_QUEUE_CAPABILITY_TRANSFER_IMAGE_BUFFER_INTEL"/>
1147            <unused start="17" end="23"/>
1148        <enum bitpos="24"           name="CL_QUEUE_CAPABILITY_MARKER_INTEL"/>
1149        <enum bitpos="25"           name="CL_QUEUE_CAPABILITY_BARRIER_INTEL"/>
1150        <enum bitpos="26"           name="CL_QUEUE_CAPABILITY_KERNEL_INTEL"/>
1151    </enums>
1152
1153    <enums start="0x10000" end="0x1FFFF" name="cl_khronos_vendor_id" vendor="Khronos">
1154        <comment>
1155            In order to synchronize vendor IDs across Khronos APIs, Vulkan's vk.xml
1156            is used as the central Khronos vendor ID registry. To obtain a vendor
1157            ID for use in OpenCL, first follow the process defined Vulkan's "Procedures and Conventions"
1158            document under the section "Registering a Vendor ID with Khronos".
1159            Only once the ID has been reserved should a new enum entry be added here.
1160        </comment>
1161        <unused start="0x10000" end="0x10003" comment="These Khronos vendor IDs are already assigned in vk.xml"/>
1162        <enum value="0x10004" name="CL_KHRONOS_VENDOR_ID_CODEPLAY" comment="Codeplay Software Ltd."/>
1163        <unused start="0x10005" end="0x10005" comment="These Khronos vendor IDs are already assigned in vk.xml"/>
1164        <enum value="0x10006" name="CL_KHRONOS_VENDOR_ID_POCL" comment="PoCL (http://portablecl.org/)"/>
1165        <unused start="0x10007" end="0x1FFFF" comment="See vk.xml for the next available Khronos vendor ID"/>
1166    </enums>
1167
1168    <enums start="0x0900" end="0x09FF" name="cl_platform_info" vendor="Khronos">
1169        <enum value="0x0900"        name="CL_PLATFORM_PROFILE"/>
1170        <enum value="0x0901"        name="CL_PLATFORM_VERSION"/>
1171        <enum value="0x0902"        name="CL_PLATFORM_NAME"/>
1172        <enum value="0x0903"        name="CL_PLATFORM_VENDOR"/>
1173        <enum value="0x0904"        name="CL_PLATFORM_EXTENSIONS"/>
1174        <enum value="0x0905"        name="CL_PLATFORM_HOST_TIMER_RESOLUTION"/>
1175        <enum value="0x0906"        name="CL_PLATFORM_NUMERIC_VERSION_KHR"/>
1176        <enum value="0x0906"        name="CL_PLATFORM_NUMERIC_VERSION"/>
1177        <enum value="0x0907"        name="CL_PLATFORM_EXTENSIONS_WITH_VERSION_KHR"/>
1178        <enum value="0x0907"        name="CL_PLATFORM_EXTENSIONS_WITH_VERSION"/>
1179            <unused start="0x0908" end="0x091F" comment="Reserved to Khronos"/>
1180        <enum value="0x0920"        name="CL_PLATFORM_ICD_SUFFIX_KHR"/>
1181            <unused start="0x0921" end="0x09FF" comment="Vendor extensions"/>
1182    </enums>
1183
1184    <enums start="0x1000" end="0x107F" name="cl_device_info" vendor="Khronos">
1185        <enum value="0x1000"        name="CL_DEVICE_TYPE"/>
1186        <enum value="0x1001"        name="CL_DEVICE_VENDOR_ID"/>
1187        <enum value="0x1002"        name="CL_DEVICE_MAX_COMPUTE_UNITS"/>
1188        <enum value="0x1003"        name="CL_DEVICE_MAX_WORK_ITEM_DIMENSIONS"/>
1189        <enum value="0x1004"        name="CL_DEVICE_MAX_WORK_GROUP_SIZE"/>
1190        <enum value="0x1005"        name="CL_DEVICE_MAX_WORK_ITEM_SIZES"/>
1191        <enum value="0x1006"        name="CL_DEVICE_PREFERRED_VECTOR_WIDTH_CHAR"/>
1192        <enum value="0x1007"        name="CL_DEVICE_PREFERRED_VECTOR_WIDTH_SHORT"/>
1193        <enum value="0x1008"        name="CL_DEVICE_PREFERRED_VECTOR_WIDTH_INT"/>
1194        <enum value="0x1009"        name="CL_DEVICE_PREFERRED_VECTOR_WIDTH_LONG"/>
1195        <enum value="0x100A"        name="CL_DEVICE_PREFERRED_VECTOR_WIDTH_FLOAT"/>
1196        <enum value="0x100B"        name="CL_DEVICE_PREFERRED_VECTOR_WIDTH_DOUBLE"/>
1197        <enum value="0x100C"        name="CL_DEVICE_MAX_CLOCK_FREQUENCY"/>
1198        <enum value="0x100D"        name="CL_DEVICE_ADDRESS_BITS"/>
1199        <enum value="0x100E"        name="CL_DEVICE_MAX_READ_IMAGE_ARGS"/>
1200        <enum value="0x100F"        name="CL_DEVICE_MAX_WRITE_IMAGE_ARGS"/>
1201        <enum value="0x1010"        name="CL_DEVICE_MAX_MEM_ALLOC_SIZE"/>
1202        <enum value="0x1011"        name="CL_DEVICE_IMAGE2D_MAX_WIDTH"/>
1203        <enum value="0x1012"        name="CL_DEVICE_IMAGE2D_MAX_HEIGHT"/>
1204        <enum value="0x1013"        name="CL_DEVICE_IMAGE3D_MAX_WIDTH"/>
1205        <enum value="0x1014"        name="CL_DEVICE_IMAGE3D_MAX_HEIGHT"/>
1206        <enum value="0x1015"        name="CL_DEVICE_IMAGE3D_MAX_DEPTH"/>
1207        <enum value="0x1016"        name="CL_DEVICE_IMAGE_SUPPORT"/>
1208        <enum value="0x1017"        name="CL_DEVICE_MAX_PARAMETER_SIZE"/>
1209        <enum value="0x1018"        name="CL_DEVICE_MAX_SAMPLERS"/>
1210        <enum value="0x1019"        name="CL_DEVICE_MEM_BASE_ADDR_ALIGN"/>
1211        <enum value="0x101A"        name="CL_DEVICE_MIN_DATA_TYPE_ALIGN_SIZE"/>
1212        <enum value="0x101B"        name="CL_DEVICE_SINGLE_FP_CONFIG"/>
1213        <enum value="0x101C"        name="CL_DEVICE_GLOBAL_MEM_CACHE_TYPE"/>
1214        <enum value="0x101D"        name="CL_DEVICE_GLOBAL_MEM_CACHELINE_SIZE"/>
1215        <enum value="0x101E"        name="CL_DEVICE_GLOBAL_MEM_CACHE_SIZE"/>
1216        <enum value="0x101F"        name="CL_DEVICE_GLOBAL_MEM_SIZE"/>
1217        <enum value="0x1020"        name="CL_DEVICE_MAX_CONSTANT_BUFFER_SIZE"/>
1218        <enum value="0x1021"        name="CL_DEVICE_MAX_CONSTANT_ARGS"/>
1219        <enum value="0x1022"        name="CL_DEVICE_LOCAL_MEM_TYPE"/>
1220        <enum value="0x1023"        name="CL_DEVICE_LOCAL_MEM_SIZE"/>
1221        <enum value="0x1024"        name="CL_DEVICE_ERROR_CORRECTION_SUPPORT"/>
1222        <enum value="0x1025"        name="CL_DEVICE_PROFILING_TIMER_RESOLUTION"/>
1223        <enum value="0x1026"        name="CL_DEVICE_ENDIAN_LITTLE"/>
1224        <enum value="0x1027"        name="CL_DEVICE_AVAILABLE"/>
1225        <enum value="0x1028"        name="CL_DEVICE_COMPILER_AVAILABLE"/>
1226        <enum value="0x1029"        name="CL_DEVICE_EXECUTION_CAPABILITIES"/>
1227        <enum value="0x102A"        name="CL_DEVICE_QUEUE_PROPERTIES"/>
1228        <enum value="0x102A"        name="CL_DEVICE_QUEUE_ON_HOST_PROPERTIES"/>
1229        <enum value="0x102B"        name="CL_DEVICE_NAME"/>
1230        <enum value="0x102C"        name="CL_DEVICE_VENDOR"/>
1231        <enum value="0x102D"        name="CL_DRIVER_VERSION"/>
1232        <enum value="0x102E"        name="CL_DEVICE_PROFILE"/>
1233        <enum value="0x102F"        name="CL_DEVICE_VERSION"/>
1234        <enum value="0x1030"        name="CL_DEVICE_EXTENSIONS"/>
1235        <enum value="0x1031"        name="CL_DEVICE_PLATFORM"/>
1236        <enum value="0x1032"        name="CL_DEVICE_DOUBLE_FP_CONFIG"/>
1237        <enum value="0x1033"        name="CL_DEVICE_HALF_FP_CONFIG"/>
1238        <enum value="0x1034"        name="CL_DEVICE_PREFERRED_VECTOR_WIDTH_HALF"/>
1239        <enum value="0x1035"        name="CL_DEVICE_HOST_UNIFIED_MEMORY"/>
1240        <enum value="0x1036"        name="CL_DEVICE_NATIVE_VECTOR_WIDTH_CHAR"/>
1241        <enum value="0x1037"        name="CL_DEVICE_NATIVE_VECTOR_WIDTH_SHORT"/>
1242        <enum value="0x1038"        name="CL_DEVICE_NATIVE_VECTOR_WIDTH_INT"/>
1243        <enum value="0x1039"        name="CL_DEVICE_NATIVE_VECTOR_WIDTH_LONG"/>
1244        <enum value="0x103A"        name="CL_DEVICE_NATIVE_VECTOR_WIDTH_FLOAT"/>
1245        <enum value="0x103B"        name="CL_DEVICE_NATIVE_VECTOR_WIDTH_DOUBLE"/>
1246        <enum value="0x103C"        name="CL_DEVICE_NATIVE_VECTOR_WIDTH_HALF"/>
1247        <enum value="0x103D"        name="CL_DEVICE_OPENCL_C_VERSION"/>
1248        <enum value="0x103E"        name="CL_DEVICE_LINKER_AVAILABLE"/>
1249        <enum value="0x103F"        name="CL_DEVICE_BUILT_IN_KERNELS"/>
1250        <enum value="0x1040"        name="CL_DEVICE_IMAGE_MAX_BUFFER_SIZE"/>
1251        <enum value="0x1041"        name="CL_DEVICE_IMAGE_MAX_ARRAY_SIZE"/>
1252        <enum value="0x1042"        name="CL_DEVICE_PARENT_DEVICE"/>
1253        <enum value="0x1043"        name="CL_DEVICE_PARTITION_MAX_SUB_DEVICES"/>
1254        <enum value="0x1044"        name="CL_DEVICE_PARTITION_PROPERTIES"/>
1255        <enum value="0x1045"        name="CL_DEVICE_PARTITION_AFFINITY_DOMAIN"/>
1256        <enum value="0x1046"        name="CL_DEVICE_PARTITION_TYPE"/>
1257        <enum value="0x1047"        name="CL_DEVICE_REFERENCE_COUNT"/>
1258        <enum value="0x1048"        name="CL_DEVICE_PREFERRED_INTEROP_USER_SYNC"/>
1259        <enum value="0x1049"        name="CL_DEVICE_PRINTF_BUFFER_SIZE"/>
1260        <enum value="0x104A"        name="CL_DEVICE_IMAGE_PITCH_ALIGNMENT"/>
1261        <enum value="0x104A"        name="CL_DEVICE_IMAGE_PITCH_ALIGNMENT_KHR"/>
1262        <enum value="0x104B"        name="CL_DEVICE_IMAGE_BASE_ADDRESS_ALIGNMENT"/>
1263        <enum value="0x104B"        name="CL_DEVICE_IMAGE_BASE_ADDRESS_ALIGNMENT_KHR"/>
1264        <enum value="0x104C"        name="CL_DEVICE_MAX_READ_WRITE_IMAGE_ARGS"/>
1265        <enum value="0x104D"        name="CL_DEVICE_MAX_GLOBAL_VARIABLE_SIZE"/>
1266        <enum value="0x104E"        name="CL_DEVICE_QUEUE_ON_DEVICE_PROPERTIES"/>
1267        <enum value="0x104F"        name="CL_DEVICE_QUEUE_ON_DEVICE_PREFERRED_SIZE"/>
1268        <enum value="0x1050"        name="CL_DEVICE_QUEUE_ON_DEVICE_MAX_SIZE"/>
1269        <enum value="0x1051"        name="CL_DEVICE_MAX_ON_DEVICE_QUEUES"/>
1270        <enum value="0x1052"        name="CL_DEVICE_MAX_ON_DEVICE_EVENTS"/>
1271        <enum value="0x1053"        name="CL_DEVICE_SVM_CAPABILITIES"/>
1272        <enum value="0x1054"        name="CL_DEVICE_GLOBAL_VARIABLE_PREFERRED_TOTAL_SIZE"/>
1273        <enum value="0x1055"        name="CL_DEVICE_MAX_PIPE_ARGS"/>
1274        <enum value="0x1056"        name="CL_DEVICE_PIPE_MAX_ACTIVE_RESERVATIONS"/>
1275        <enum value="0x1057"        name="CL_DEVICE_PIPE_MAX_PACKET_SIZE"/>
1276        <enum value="0x1058"        name="CL_DEVICE_PREFERRED_PLATFORM_ATOMIC_ALIGNMENT"/>
1277        <enum value="0x1059"        name="CL_DEVICE_PREFERRED_GLOBAL_ATOMIC_ALIGNMENT"/>
1278        <enum value="0x105A"        name="CL_DEVICE_PREFERRED_LOCAL_ATOMIC_ALIGNMENT"/>
1279        <enum value="0x105B"        name="CL_DEVICE_IL_VERSION"/>
1280        <enum value="0x105B"        name="CL_DEVICE_IL_VERSION_KHR"/>
1281        <enum value="0x105C"        name="CL_DEVICE_MAX_NUM_SUB_GROUPS"/>
1282        <enum value="0x105D"        name="CL_DEVICE_SUB_GROUP_INDEPENDENT_FORWARD_PROGRESS"/>
1283        <enum value="0x105E"        name="CL_DEVICE_NUMERIC_VERSION_KHR"/>
1284        <enum value="0x105E"        name="CL_DEVICE_NUMERIC_VERSION"/>
1285        <enum value="0x105F"        name="CL_DEVICE_OPENCL_C_NUMERIC_VERSION_KHR"/>
1286        <enum value="0x1060"        name="CL_DEVICE_EXTENSIONS_WITH_VERSION_KHR"/>
1287        <enum value="0x1060"        name="CL_DEVICE_EXTENSIONS_WITH_VERSION"/>
1288        <enum value="0x1061"        name="CL_DEVICE_ILS_WITH_VERSION_KHR"/>
1289        <enum value="0x1061"        name="CL_DEVICE_ILS_WITH_VERSION"/>
1290        <enum value="0x1062"        name="CL_DEVICE_BUILT_IN_KERNELS_WITH_VERSION_KHR"/>
1291        <enum value="0x1062"        name="CL_DEVICE_BUILT_IN_KERNELS_WITH_VERSION"/>
1292        <enum value="0x1063"        name="CL_DEVICE_ATOMIC_MEMORY_CAPABILITIES"/>
1293        <enum value="0x1064"        name="CL_DEVICE_ATOMIC_FENCE_CAPABILITIES"/>
1294        <enum value="0x1065"        name="CL_DEVICE_NON_UNIFORM_WORK_GROUP_SUPPORT"/>
1295        <enum value="0x1066"        name="CL_DEVICE_OPENCL_C_ALL_VERSIONS"/>
1296        <enum value="0x1067"        name="CL_DEVICE_PREFERRED_WORK_GROUP_SIZE_MULTIPLE"/>
1297        <enum value="0x1068"        name="CL_DEVICE_WORK_GROUP_COLLECTIVE_FUNCTIONS_SUPPORT"/>
1298        <enum value="0x1069"        name="CL_DEVICE_GENERIC_ADDRESS_SPACE_SUPPORT"/>
1299        <enum value="0x106A"        name="CL_DEVICE_UUID_KHR"/>
1300        <enum value="0x106B"        name="CL_DRIVER_UUID_KHR"/>
1301        <enum value="0x106C"        name="CL_DEVICE_LUID_VALID_KHR"/>
1302        <enum value="0x106D"        name="CL_DEVICE_LUID_KHR"/>
1303        <enum value="0x106E"        name="CL_DEVICE_NODE_MASK_KHR"/>
1304        <enum value="0x106F"        name="CL_DEVICE_OPENCL_C_FEATURES"/>
1305        <enum value="0x1070"        name="CL_DEVICE_DEVICE_ENQUEUE_CAPABILITIES"/>
1306        <enum value="0x1071"        name="CL_DEVICE_PIPE_SUPPORT"/>
1307        <enum value="0x1072"        name="CL_DEVICE_LATEST_CONFORMANCE_VERSION_PASSED"/>
1308            <unused start="0x1073" end="0x1074" comment="Reserved for MR131"/>
1309            <unused start="0x1075" end="0x107F" comment="Reserved for cl_device_info"/>
1310        <enum value="0x1080"        name="CL_CONTEXT_REFERENCE_COUNT"/>
1311        <enum value="0x1081"        name="CL_CONTEXT_DEVICES"/>
1312        <enum value="0x1082"        name="CL_CONTEXT_PROPERTIES"/>
1313        <enum value="0x1083"        name="CL_CONTEXT_NUM_DEVICES"/>
1314        <enum value="0x1084"        name="CL_CONTEXT_PLATFORM"/>
1315        <enum value="0x1085"        name="CL_CONTEXT_INTEROP_USER_SYNC"/>
1316        <enum value="0x1086"        name="CL_DEVICE_PARTITION_EQUALLY"/>
1317        <enum value="0x1087"        name="CL_DEVICE_PARTITION_BY_COUNTS"/>
1318        <enum value="0x1088"        name="CL_DEVICE_PARTITION_BY_AFFINITY_DOMAIN"/>
1319            <unused start="0x1089" end="0x108F" comment="Reserved for cl_device_partition_property"/>
1320        <enum value="0x1090"        name="CL_QUEUE_CONTEXT"/>
1321        <enum value="0x1091"        name="CL_QUEUE_DEVICE"/>
1322        <enum value="0x1092"        name="CL_QUEUE_REFERENCE_COUNT"/>
1323        <enum value="0x1093"        name="CL_QUEUE_PROPERTIES"/>
1324        <enum value="0x1094"        name="CL_QUEUE_SIZE"/>
1325        <enum value="0x1095"        name="CL_QUEUE_DEVICE_DEFAULT"/>
1326        <enum value="0x1096"        name="CL_QUEUE_PRIORITY_KHR"/>
1327        <enum value="0x1097"        name="CL_QUEUE_THROTTLE_KHR"/>
1328        <enum value="0x1098"        name="CL_QUEUE_PROPERTIES_ARRAY"/>
1329            <unused start="0x1099" end="0x109F" comment="Reserved for cl_command_queue_info"/>
1330            <unused start="0x10A0" end="0x10AF" comment="Reserved for core API tokens"/>
1331        <enum value="0x10B0"        name="CL_R"/>
1332        <enum value="0x10B1"        name="CL_A"/>
1333        <enum value="0x10B2"        name="CL_RG"/>
1334        <enum value="0x10B3"        name="CL_RA"/>
1335        <enum value="0x10B4"        name="CL_RGB"/>
1336        <enum value="0x10B5"        name="CL_RGBA"/>
1337        <enum value="0x10B6"        name="CL_BGRA"/>
1338        <enum value="0x10B7"        name="CL_ARGB"/>
1339        <enum value="0x10B8"        name="CL_INTENSITY"/>
1340        <enum value="0x10B9"        name="CL_LUMINANCE"/>
1341        <enum value="0x10BA"        name="CL_Rx"/>
1342        <enum value="0x10BB"        name="CL_RGx"/>
1343        <enum value="0x10BC"        name="CL_RGBx"/>
1344        <enum value="0x10BD"        name="CL_DEPTH"/>
1345        <enum value="0x10BE"        name="CL_DEPTH_STENCIL"/>
1346        <enum value="0x10BF"        name="CL_sRGB"/>
1347        <enum value="0x10C0"        name="CL_sRGBx"/>
1348        <enum value="0x10C1"        name="CL_sRGBA"/>
1349        <enum value="0x10C2"        name="CL_sBGRA"/>
1350        <enum value="0x10C3"        name="CL_ABGR"/>
1351            <unused start="0x10C4" end="0x10CF" comment="Reserved for cl_channel_order"/>
1352        <enum value="0x10D0"        name="CL_SNORM_INT8"/>
1353        <enum value="0x10D1"        name="CL_SNORM_INT16"/>
1354        <enum value="0x10D2"        name="CL_UNORM_INT8"/>
1355        <enum value="0x10D3"        name="CL_UNORM_INT16"/>
1356        <enum value="0x10D4"        name="CL_UNORM_SHORT_565"/>
1357        <enum value="0x10D5"        name="CL_UNORM_SHORT_555"/>
1358        <enum value="0x10D6"        name="CL_UNORM_INT_101010"/>
1359        <enum value="0x10D7"        name="CL_SIGNED_INT8"/>
1360        <enum value="0x10D8"        name="CL_SIGNED_INT16"/>
1361        <enum value="0x10D9"        name="CL_SIGNED_INT32"/>
1362        <enum value="0x10DA"        name="CL_UNSIGNED_INT8"/>
1363        <enum value="0x10DB"        name="CL_UNSIGNED_INT16"/>
1364        <enum value="0x10DC"        name="CL_UNSIGNED_INT32"/>
1365        <enum value="0x10DD"        name="CL_HALF_FLOAT"/>
1366        <enum value="0x10DE"        name="CL_FLOAT"/>
1367        <enum value="0x10DF"        name="CL_UNORM_INT24"/>
1368        <enum value="0x10E0"        name="CL_UNORM_INT_101010_2"/>
1369            <unused start="0x10E1" end="0x10EF" comment="Reserved for cl_channel_type"/>
1370        <enum value="0x10F0"        name="CL_MEM_OBJECT_BUFFER"/>
1371        <enum value="0x10F1"        name="CL_MEM_OBJECT_IMAGE2D"/>
1372        <enum value="0x10F2"        name="CL_MEM_OBJECT_IMAGE3D"/>
1373        <enum value="0x10F3"        name="CL_MEM_OBJECT_IMAGE2D_ARRAY"/>
1374        <enum value="0x10F4"        name="CL_MEM_OBJECT_IMAGE1D"/>
1375        <enum value="0x10F5"        name="CL_MEM_OBJECT_IMAGE1D_ARRAY"/>
1376        <enum value="0x10F6"        name="CL_MEM_OBJECT_IMAGE1D_BUFFER"/>
1377        <enum value="0x10F7"        name="CL_MEM_OBJECT_PIPE"/>
1378            <unused start="0x10F8" end="0x10FF" comment="Reserved for cl_mem_object_type"/>
1379        <enum value="0x1100"        name="CL_MEM_TYPE"/>
1380        <enum value="0x1101"        name="CL_MEM_FLAGS"/>
1381        <enum value="0x1102"        name="CL_MEM_SIZE"/>
1382        <enum value="0x1103"        name="CL_MEM_HOST_PTR"/>
1383        <enum value="0x1104"        name="CL_MEM_MAP_COUNT"/>
1384        <enum value="0x1105"        name="CL_MEM_REFERENCE_COUNT"/>
1385        <enum value="0x1106"        name="CL_MEM_CONTEXT"/>
1386        <enum value="0x1107"        name="CL_MEM_ASSOCIATED_MEMOBJECT"/>
1387        <enum value="0x1108"        name="CL_MEM_OFFSET"/>
1388        <enum value="0x1109"        name="CL_MEM_USES_SVM_POINTER"/>
1389        <enum value="0x110A"        name="CL_MEM_PROPERTIES"/>
1390            <unused start="0x110B" end="0x110F" comment="Reserved for cl_mem_info"/>
1391        <enum value="0x1110"        name="CL_IMAGE_FORMAT"/>
1392        <enum value="0x1111"        name="CL_IMAGE_ELEMENT_SIZE"/>
1393        <enum value="0x1112"        name="CL_IMAGE_ROW_PITCH"/>
1394        <enum value="0x1113"        name="CL_IMAGE_SLICE_PITCH"/>
1395        <enum value="0x1114"        name="CL_IMAGE_WIDTH"/>
1396        <enum value="0x1115"        name="CL_IMAGE_HEIGHT"/>
1397        <enum value="0x1116"        name="CL_IMAGE_DEPTH"/>
1398        <enum value="0x1117"        name="CL_IMAGE_ARRAY_SIZE"/>
1399        <enum value="0x1118"        name="CL_IMAGE_BUFFER"/>
1400        <enum value="0x1119"        name="CL_IMAGE_NUM_MIP_LEVELS"/>
1401        <enum value="0x111A"        name="CL_IMAGE_NUM_SAMPLES"/>
1402            <unused start="0x111B" end="0x111F" comment="Reserved for cl_image_info"/>
1403        <enum value="0x1120"        name="CL_PIPE_PACKET_SIZE"/>
1404        <enum value="0x1121"        name="CL_PIPE_MAX_PACKETS"/>
1405        <enum value="0x1122"        name="CL_PIPE_PROPERTIES"/>
1406            <unused start="0x1123" end="0x112F" comment="Reserved for cl_pipe_info"/>
1407        <enum value="0x1130"        name="CL_ADDRESS_NONE"/>
1408        <enum value="0x1131"        name="CL_ADDRESS_CLAMP_TO_EDGE"/>
1409        <enum value="0x1132"        name="CL_ADDRESS_CLAMP"/>
1410        <enum value="0x1133"        name="CL_ADDRESS_REPEAT"/>
1411        <enum value="0x1134"        name="CL_ADDRESS_MIRRORED_REPEAT"/>
1412            <unused start="0x1135" end="0x113F" comment="Reserved for cl_addressing_mode"/>
1413        <enum value="0x1140"        name="CL_FILTER_NEAREST"/>
1414        <enum value="0x1141"        name="CL_FILTER_LINEAR"/>
1415            <unused start="0x1142" end="0x114F" comment="Reserved for cl_filter_mode"/>
1416        <enum value="0x1150"        name="CL_SAMPLER_REFERENCE_COUNT"/>
1417        <enum value="0x1151"        name="CL_SAMPLER_CONTEXT"/>
1418        <enum value="0x1152"        name="CL_SAMPLER_NORMALIZED_COORDS"/>
1419        <enum value="0x1153"        name="CL_SAMPLER_ADDRESSING_MODE"/>
1420        <enum value="0x1154"        name="CL_SAMPLER_FILTER_MODE"/>
1421        <enum value="0x1155"        name="CL_SAMPLER_MIP_FILTER_MODE"/>
1422        <enum value="0x1155"        name="CL_SAMPLER_MIP_FILTER_MODE_KHR"/>
1423        <enum value="0x1156"        name="CL_SAMPLER_LOD_MIN"/>
1424        <enum value="0x1156"        name="CL_SAMPLER_LOD_MIN_KHR"/>
1425        <enum value="0x1157"        name="CL_SAMPLER_LOD_MAX"/>
1426        <enum value="0x1157"        name="CL_SAMPLER_LOD_MAX_KHR"/>
1427        <enum value="0x1158"        name="CL_SAMPLER_PROPERTIES"/>
1428            <unused start="0x1159" end="0x115F" comment="Reserved for cl_sampler_info"/>
1429        <enum value="0x1160"        name="CL_PROGRAM_REFERENCE_COUNT"/>
1430        <enum value="0x1161"        name="CL_PROGRAM_CONTEXT"/>
1431        <enum value="0x1162"        name="CL_PROGRAM_NUM_DEVICES"/>
1432        <enum value="0x1163"        name="CL_PROGRAM_DEVICES"/>
1433        <enum value="0x1164"        name="CL_PROGRAM_SOURCE"/>
1434        <enum value="0x1165"        name="CL_PROGRAM_BINARY_SIZES"/>
1435        <enum value="0x1166"        name="CL_PROGRAM_BINARIES"/>
1436        <enum value="0x1167"        name="CL_PROGRAM_NUM_KERNELS"/>
1437        <enum value="0x1168"        name="CL_PROGRAM_KERNEL_NAMES"/>
1438        <enum value="0x1169"        name="CL_PROGRAM_IL"/>
1439        <enum value="0x1169"        name="CL_PROGRAM_IL_KHR"/>
1440        <enum value="0x116A"        name="CL_PROGRAM_SCOPE_GLOBAL_CTORS_PRESENT"/>
1441        <enum value="0x116B"        name="CL_PROGRAM_SCOPE_GLOBAL_DTORS_PRESENT"/>
1442            <unused start="0x116C" end="0x117F" comment="Reserved for cl_program_info"/>
1443            <unused start="0x1180" comment="Reserved for cl_program_build_info"/>
1444        <enum value="0x1181"        name="CL_PROGRAM_BUILD_STATUS"/>
1445        <enum value="0x1182"        name="CL_PROGRAM_BUILD_OPTIONS"/>
1446        <enum value="0x1183"        name="CL_PROGRAM_BUILD_LOG"/>
1447        <enum value="0x1184"        name="CL_PROGRAM_BINARY_TYPE"/>
1448        <enum value="0x1185"        name="CL_PROGRAM_BUILD_GLOBAL_VARIABLE_TOTAL_SIZE"/>
1449            <unused start="0x1186" end="0x118F" comment="Reserved for cl_program_build_info"/>
1450        <enum value="0x1190"        name="CL_KERNEL_FUNCTION_NAME"/>
1451        <enum value="0x1191"        name="CL_KERNEL_NUM_ARGS"/>
1452        <enum value="0x1192"        name="CL_KERNEL_REFERENCE_COUNT"/>
1453        <enum value="0x1193"        name="CL_KERNEL_CONTEXT"/>
1454        <enum value="0x1194"        name="CL_KERNEL_PROGRAM"/>
1455        <enum value="0x1195"        name="CL_KERNEL_ATTRIBUTES"/>
1456        <enum value="0x1196"        name="CL_KERNEL_ARG_ADDRESS_QUALIFIER"/>
1457        <enum value="0x1197"        name="CL_KERNEL_ARG_ACCESS_QUALIFIER"/>
1458        <enum value="0x1198"        name="CL_KERNEL_ARG_TYPE_NAME"/>
1459        <enum value="0x1199"        name="CL_KERNEL_ARG_TYPE_QUALIFIER"/>
1460        <enum value="0x119A"        name="CL_KERNEL_ARG_NAME"/>
1461        <enum value="0x119B"        name="CL_KERNEL_ARG_ADDRESS_GLOBAL"/>
1462        <enum value="0x119C"        name="CL_KERNEL_ARG_ADDRESS_LOCAL"/>
1463        <enum value="0x119D"        name="CL_KERNEL_ARG_ADDRESS_CONSTANT"/>
1464        <enum value="0x119E"        name="CL_KERNEL_ARG_ADDRESS_PRIVATE"/>
1465            <unused start="0x119F" comment="Reserved for cl_kernel_arg_address_qualifier"/>
1466        <enum value="0x11A0"        name="CL_KERNEL_ARG_ACCESS_READ_ONLY"/>
1467        <enum value="0x11A1"        name="CL_KERNEL_ARG_ACCESS_WRITE_ONLY"/>
1468        <enum value="0x11A2"        name="CL_KERNEL_ARG_ACCESS_READ_WRITE"/>
1469        <enum value="0x11A3"        name="CL_KERNEL_ARG_ACCESS_NONE"/>
1470            <unused start="0x11A4" end="0x11AF" comment="Reserved for cl_kernel_arg_access_qualifier"/>
1471        <enum value="0x11B0"        name="CL_KERNEL_WORK_GROUP_SIZE"/>
1472        <enum value="0x11B1"        name="CL_KERNEL_COMPILE_WORK_GROUP_SIZE"/>
1473        <enum value="0x11B2"        name="CL_KERNEL_LOCAL_MEM_SIZE"/>
1474        <enum value="0x11B3"        name="CL_KERNEL_PREFERRED_WORK_GROUP_SIZE_MULTIPLE"/>
1475        <enum value="0x11B4"        name="CL_KERNEL_PRIVATE_MEM_SIZE"/>
1476        <enum value="0x11B5"        name="CL_KERNEL_GLOBAL_WORK_SIZE"/>
1477        <enum value="0x11B6"        name="CL_KERNEL_EXEC_INFO_SVM_PTRS"/>
1478        <enum value="0x11B7"        name="CL_KERNEL_EXEC_INFO_SVM_FINE_GRAIN_SYSTEM"/>
1479        <enum value="0x11B8"        name="CL_KERNEL_LOCAL_SIZE_FOR_SUB_GROUP_COUNT"/>
1480        <enum value="0x11B9"        name="CL_KERNEL_MAX_NUM_SUB_GROUPS"/>
1481        <enum value="0x11BA"        name="CL_KERNEL_COMPILE_NUM_SUB_GROUPS"/>
1482            <unused start="0x11BB" end="0x11CF" comment="Reserved for cl_kernel_info / cl_kernel_work_group_info / cl_kernel_exec_info / cl_kernel_sub_group_info"/>
1483        <enum value="0x11D0"        name="CL_EVENT_COMMAND_QUEUE"/>
1484        <enum value="0x11D1"        name="CL_EVENT_COMMAND_TYPE"/>
1485        <enum value="0x11D2"        name="CL_EVENT_REFERENCE_COUNT"/>
1486        <enum value="0x11D3"        name="CL_EVENT_COMMAND_EXECUTION_STATUS"/>
1487        <enum value="0x11D4"        name="CL_EVENT_CONTEXT"/>
1488            <unused start="0x11D5" end="0x11EF" comment="Reserved for cl_event_info"/>
1489        <enum value="0x11F0"        name="CL_COMMAND_NDRANGE_KERNEL"/>
1490        <enum value="0x11F1"        name="CL_COMMAND_TASK"/>
1491        <enum value="0x11F2"        name="CL_COMMAND_NATIVE_KERNEL"/>
1492        <enum value="0x11F3"        name="CL_COMMAND_READ_BUFFER"/>
1493        <enum value="0x11F4"        name="CL_COMMAND_WRITE_BUFFER"/>
1494        <enum value="0x11F5"        name="CL_COMMAND_COPY_BUFFER"/>
1495        <enum value="0x11F6"        name="CL_COMMAND_READ_IMAGE"/>
1496        <enum value="0x11F7"        name="CL_COMMAND_WRITE_IMAGE"/>
1497        <enum value="0x11F8"        name="CL_COMMAND_COPY_IMAGE"/>
1498        <enum value="0x11F9"        name="CL_COMMAND_COPY_IMAGE_TO_BUFFER"/>
1499        <enum value="0x11FA"        name="CL_COMMAND_COPY_BUFFER_TO_IMAGE"/>
1500        <enum value="0x11FB"        name="CL_COMMAND_MAP_BUFFER"/>
1501        <enum value="0x11FC"        name="CL_COMMAND_MAP_IMAGE"/>
1502        <enum value="0x11FD"        name="CL_COMMAND_UNMAP_MEM_OBJECT"/>
1503        <enum value="0x11FE"        name="CL_COMMAND_MARKER"/>
1504        <enum value="0x11FF"        name="CL_COMMAND_ACQUIRE_GL_OBJECTS"/>
1505        <enum value="0x1200"        name="CL_COMMAND_RELEASE_GL_OBJECTS"/>
1506        <enum value="0x1201"        name="CL_COMMAND_READ_BUFFER_RECT"/>
1507        <enum value="0x1202"        name="CL_COMMAND_WRITE_BUFFER_RECT"/>
1508        <enum value="0x1203"        name="CL_COMMAND_COPY_BUFFER_RECT"/>
1509        <enum value="0x1204"        name="CL_COMMAND_USER"/>
1510        <enum value="0x1205"        name="CL_COMMAND_BARRIER"/>
1511        <enum value="0x1206"        name="CL_COMMAND_MIGRATE_MEM_OBJECTS"/>
1512        <enum value="0x1207"        name="CL_COMMAND_FILL_BUFFER"/>
1513        <enum value="0x1208"        name="CL_COMMAND_FILL_IMAGE"/>
1514        <enum value="0x1209"        name="CL_COMMAND_SVM_FREE"/>
1515        <enum value="0x120A"        name="CL_COMMAND_SVM_MEMCPY"/>
1516        <enum value="0x120B"        name="CL_COMMAND_SVM_MEMFILL"/>
1517        <enum value="0x120C"        name="CL_COMMAND_SVM_MAP"/>
1518        <enum value="0x120D"        name="CL_COMMAND_SVM_UNMAP"/>
1519        <enum value="0x120E"        name="CL_COMMAND_SVM_MIGRATE_MEM"/>
1520            <unused start="0x120F" end="0x121F" comment="Reserved for cl_command_types"/>
1521        <enum value="0x1220"        name="CL_BUFFER_CREATE_TYPE_REGION"/>
1522            <unused start="0x1221" end="0x127F" comment="Reserved for cl_buffer_create_type"/>
1523        <enum value="0x1280"        name="CL_PROFILING_COMMAND_QUEUED"/>
1524        <enum value="0x1281"        name="CL_PROFILING_COMMAND_SUBMIT"/>
1525        <enum value="0x1282"        name="CL_PROFILING_COMMAND_START"/>
1526        <enum value="0x1283"        name="CL_PROFILING_COMMAND_END"/>
1527        <enum value="0x1284"        name="CL_PROFILING_COMMAND_COMPLETE"/>
1528            <unused start="0x1285" end="0x128F" comment="Reserved for cl_profiling_info"/>
1529            <unused start="0x1290" end="0x1292" comment="Reserved for MR179"/>
1530            <unused start="0x1293" end="0x1FFF" comment="Reserved for core API tokens"/>
1531    </enums>
1532
1533    <enums start="0x2000" end="0x201F" name="enums.2000" vendor="Khronos" comment="Reserved for interop with other APIs">
1534        <enum value="0x2000"        name="CL_GL_OBJECT_BUFFER"/>
1535        <enum value="0x2001"        name="CL_GL_OBJECT_TEXTURE2D"/>
1536        <enum value="0x2002"        name="CL_GL_OBJECT_TEXTURE3D"/>
1537        <enum value="0x2003"        name="CL_GL_OBJECT_RENDERBUFFER"/>
1538        <enum value="0x2004"        name="CL_GL_TEXTURE_TARGET"/>
1539        <enum value="0x2005"        name="CL_GL_MIPMAP_LEVEL"/>
1540        <enum value="0x2006"        name="CL_CURRENT_DEVICE_FOR_GL_CONTEXT_KHR"/>
1541        <enum value="0x2007"        name="CL_DEVICES_FOR_GL_CONTEXT_KHR"/>
1542        <enum value="0x2008"        name="CL_GL_CONTEXT_KHR"/>
1543        <enum value="0x2009"        name="CL_EGL_DISPLAY_KHR"/>
1544        <enum value="0x200A"        name="CL_GLX_DISPLAY_KHR"/>
1545        <enum value="0x200B"        name="CL_WGL_HDC_KHR"/>
1546        <enum value="0x200C"        name="CL_CGL_SHAREGROUP_KHR"/>
1547        <enum value="0x200D"        name="CL_COMMAND_GL_FENCE_SYNC_OBJECT_KHR"/>
1548        <enum value="0x200E"        name="CL_GL_OBJECT_TEXTURE2D_ARRAY"/>
1549        <enum value="0x200F"        name="CL_GL_OBJECT_TEXTURE1D"/>
1550        <enum value="0x2010"        name="CL_GL_OBJECT_TEXTURE1D_ARRAY"/>
1551        <enum value="0x2011"        name="CL_GL_OBJECT_TEXTURE_BUFFER"/>
1552        <enum value="0x2012"        name="CL_GL_NUM_SAMPLES"/>
1553            <unused start="0x2013" end="0x201F" comment="Reserved for OpenGL interop"/>
1554        <enum value="0x2020"        name="CL_ADAPTER_D3D9_KHR"/>
1555        <enum value="0x2021"        name="CL_ADAPTER_D3D9EX_KHR"/>
1556        <enum value="0x2022"        name="CL_ADAPTER_DXVA_KHR"/>
1557        <enum value="0x2023"        name="CL_PREFERRED_DEVICES_FOR_DX9_MEDIA_ADAPTER_KHR"/>
1558        <enum value="0x2024"        name="CL_ALL_DEVICES_FOR_DX9_MEDIA_ADAPTER_KHR"/>
1559        <enum value="0x2025"        name="CL_CONTEXT_ADAPTER_D3D9_KHR"/>
1560        <enum value="0x2026"        name="CL_CONTEXT_ADAPTER_D3D9EX_KHR"/>
1561        <enum value="0x2027"        name="CL_CONTEXT_ADAPTER_DXVA_KHR"/>
1562        <enum value="0x2028"        name="CL_MEM_DX9_MEDIA_ADAPTER_TYPE_KHR"/>
1563        <enum value="0x2029"        name="CL_MEM_DX9_MEDIA_SURFACE_INFO_KHR"/>
1564        <enum value="0x202A"        name="CL_IMAGE_DX9_MEDIA_PLANE_KHR"/>
1565        <enum value="0x202B"        name="CL_COMMAND_ACQUIRE_DX9_MEDIA_SURFACES_KHR"/>
1566        <enum value="0x202C"        name="CL_COMMAND_RELEASE_DX9_MEDIA_SURFACES_KHR"/>
1567        <enum value="0x202D"        name="CL_COMMAND_ACQUIRE_EGL_OBJECTS_KHR"/>
1568        <enum value="0x202E"        name="CL_COMMAND_RELEASE_EGL_OBJECTS_KHR"/>
1569        <enum value="0x202F"        name="CL_COMMAND_EGL_FENCE_SYNC_OBJECT_KHR"/>
1570        <enum value="0x2030"        name="CL_CONTEXT_MEMORY_INITIALIZE_KHR"/>
1571        <enum value="0x2031"        name="CL_DEVICE_TERMINATE_CAPABILITY_KHR"/>
1572        <enum value="0x2032"        name="CL_CONTEXT_TERMINATE_KHR"/>
1573        <enum value="0x2033"        name="CL_KERNEL_MAX_SUB_GROUP_SIZE_FOR_NDRANGE"/>
1574        <enum value="0x2033"        name="CL_KERNEL_MAX_SUB_GROUP_SIZE_FOR_NDRANGE_KHR"/>
1575        <enum value="0x2034"        name="CL_KERNEL_SUB_GROUP_COUNT_FOR_NDRANGE"/>
1576        <enum value="0x2034"        name="CL_KERNEL_SUB_GROUP_COUNT_FOR_NDRANGE_KHR"/>
1577        <enum value="0x2035"        name="CL_DEVICE_MAX_NAMED_BARRIER_COUNT_KHR"/>
1578            <unused start="0x2036" end="0x2FFF" comment="Reserved to Khronos for interop"/>
1579    </enums>
1580
1581    <enums start="0x3000" end="0x3FFF" name="enums.3000" vendor="Khronos" comment="Platform IDs. Allocate individually.">
1582            <unused start="0x3000"/>
1583        <!-- unused <enum value="0x3001" name="CL_PLATFORM_NVIDIA" comment="Allocated to NVIDIA per clamb@nvidia.com 2009/05/26"/> -->
1584            <unused start="0x3002" end="0x3FFF"/>
1585    </enums>
1586
1587    <enums start="0x4000" end="0x400F" name="enums.4000" vendor="NVIDIA" comment="Per Bug 5673">
1588        <enum value="0x4000"        name="CL_DEVICE_COMPUTE_CAPABILITY_MAJOR_NV"/>
1589        <enum value="0x4001"        name="CL_DEVICE_COMPUTE_CAPABILITY_MINOR_NV"/>
1590        <enum value="0x4002"        name="CL_DEVICE_REGISTERS_PER_BLOCK_NV"/>
1591        <enum value="0x4003"        name="CL_DEVICE_WARP_SIZE_NV"/>
1592        <enum value="0x4004"        name="CL_DEVICE_GPU_OVERLAP_NV"/>
1593        <enum value="0x4005"        name="CL_DEVICE_KERNEL_EXEC_TIMEOUT_NV"/>
1594        <enum value="0x4006"        name="CL_DEVICE_INTEGRATED_MEMORY_NV"/>
1595            <unused start="0x4007" end="0x400F"/>
1596    </enums>
1597
1598    <enums start="0x4010" end="0x402F" name="enums.4010" vendor="NVIDIA" comment="Per Bug 5782">
1599        <enum value="0x4010"        name="CL_D3D10_DEVICE_KHR"/>
1600        <enum value="0x4011"        name="CL_D3D10_DXGI_ADAPTER_KHR"/>
1601        <enum value="0x4012"        name="CL_PREFERRED_DEVICES_FOR_D3D10_KHR"/>
1602        <enum value="0x4013"        name="CL_ALL_DEVICES_FOR_D3D10_KHR"/>
1603        <enum value="0x4014"        name="CL_CONTEXT_D3D10_DEVICE_KHR"/>
1604        <enum value="0x4015"        name="CL_MEM_D3D10_RESOURCE_KHR"/>
1605        <enum value="0x4016"        name="CL_IMAGE_D3D10_SUBRESOURCE_KHR"/>
1606        <enum value="0x4017"        name="CL_COMMAND_ACQUIRE_D3D10_OBJECTS_KHR"/>
1607        <enum value="0x4018"        name="CL_COMMAND_RELEASE_D3D10_OBJECTS_KHR"/>
1608        <!-- unused <enum value="0x4010"      name="CL_D3D10_DEVICE_NV"/> -->
1609        <!-- unused <enum value="0x4011"      name="CL_D3D10_DXGI_ADAPTER_NV"/> -->
1610        <!-- unused <enum value="0x4012"      name="CL_PREFERRED_DEVICES_FOR_D3D10_NV"/> -->
1611        <!-- unused <enum value="0x4013"      name="CL_ALL_DEVICES_FOR_D3D10_NV"/> -->
1612        <!-- unused <enum value="0x4014"      name="CL_CONTEXT_D3D10_DEVICE_NV"/> -->
1613        <!-- unused <enum value="0x4015"      name="CL_MEM_D3D10_RESOURCE_NV"/> -->
1614        <!-- unused <enum value="0x4016"      name="CL_IMAGE_D3D10_SUBRESOURCE_NV"/> -->
1615        <!-- unused <enum value="0x4017"      name="CL_COMMAND_ACQUIRE_D3D10_OBJECTS_NV"/> -->
1616        <!-- unused <enum value="0x4018"      name="CL_COMMAND_RELEASE_D3D10_OBJECTS_NV"/> -->
1617        <enum value="0x4019"        name="CL_D3D11_DEVICE_KHR"/>
1618        <enum value="0x401A"        name="CL_D3D11_DXGI_ADAPTER_KHR"/>
1619        <enum value="0x401B"        name="CL_PREFERRED_DEVICES_FOR_D3D11_KHR"/>
1620        <enum value="0x401C"        name="CL_ALL_DEVICES_FOR_D3D11_KHR"/>
1621        <enum value="0x401D"        name="CL_CONTEXT_D3D11_DEVICE_KHR"/>
1622        <enum value="0x401E"        name="CL_MEM_D3D11_RESOURCE_KHR"/>
1623        <enum value="0x401F"        name="CL_IMAGE_D3D11_SUBRESOURCE_KHR"/>
1624        <enum value="0x4020"        name="CL_COMMAND_ACQUIRE_D3D11_OBJECTS_KHR"/>
1625        <enum value="0x4021"        name="CL_COMMAND_RELEASE_D3D11_OBJECTS_KHR"/>
1626        <!-- unused <enum value="0x4019"      name="CL_D3D11_DEVICE_NV"/> -->
1627        <!-- unused <enum value="0x401A"      name="CL_D3D11_DXGI_ADAPTER_NV"/> -->
1628        <!-- unused <enum value="0x401B"      name="CL_PREFERRED_DEVICES_FOR_D3D11_NV"/> -->
1629        <!-- unused <enum value="0x401C"      name="CL_ALL_DEVICES_FOR_D3D11_NV"/> -->
1630        <!-- unused <enum value="0x401D"      name="CL_CONTEXT_D3D11_DEVICE_NV"/> -->
1631        <!-- unused <enum value="0x401E"      name="CL_MEM_D3D11_RESOURCE_NV"/> -->
1632        <!-- unused <enum value="0x401F"      name="CL_IMAGE_D3D11_SUBRESOURCE_NV"/> -->
1633        <!-- unused <enum value="0x4020"      name="CL_COMMAND_ACQUIRE_D3D11_OBJECTS_NV"/> -->
1634        <!-- unused <enum value="0x4021"      name="CL_COMMAND_RELEASE_D3D11_OBJECTS_NV"/> -->
1635        <enum value="0x4022"        name="CL_D3D9_DEVICE_INTEL"/>
1636        <enum value="0x4024"        name="CL_PREFERRED_DEVICES_FOR_DX9_INTEL"/>
1637        <enum value="0x4025"        name="CL_ALL_DEVICES_FOR_DX9_INTEL"/>
1638        <enum value="0x4026"        name="CL_CONTEXT_D3D9_DEVICE_INTEL"/>
1639        <enum value="0x4027"        name="CL_MEM_DX9_RESOURCE_INTEL"/>
1640        <enum value="0x402A"        name="CL_COMMAND_ACQUIRE_DX9_OBJECTS_INTEL"/>
1641        <enum value="0x402B"        name="CL_COMMAND_RELEASE_DX9_OBJECTS_INTEL"/>
1642        <!-- unused <enum value="0x4022"      name="CL_D3D9_DEVICE_NV"/> -->
1643        <!-- unused <enum value="0x4023"      name="CL_D3D9_ADAPTER_NAME_NV"/> -->
1644        <!-- unused <enum value="0x4024"      name="CL_PREFERRED_DEVICES_FOR_D3D9_NV"/> -->
1645        <!-- unused <enum value="0x4025"      name="CL_ALL_DEVICES_FOR_D3D9_NV"/> -->
1646        <!-- unused <enum value="0x4026"      name="CL_CONTEXT_D3D9_DEVICE_NV"/> -->
1647        <!-- unused <enum value="0x4027"      name="CL_MEM_D3D9_RESOURCE_NV"/> -->
1648        <!-- unused <enum value="0x4028"      name="CL_IMAGE_D3D9_FACE_NV"/> -->
1649        <!-- unused <enum value="0x4029"      name="CL_IMAGE_D3D9_LEVEL_NV"/> -->
1650        <enum value="0x402A"        name="CL_COMMAND_ACQUIRE_D3D9_OBJECTS_INTEL"/>
1651        <!-- unused <enum value="0x402A"      name="CL_COMMAND_ACQUIRE_D3D9_OBJECTS_NV"/> -->
1652        <enum value="0x402B"        name="CL_COMMAND_RELEASE_D3D9_OBJECTS_INTEL"/>
1653        <!-- unused <enum value="0x402B"      name="CL_COMMAND_RELEASE_D3D9_OBJECTS_NV"/> -->
1654        <enum value="0x402C"        name="CL_CONTEXT_D3D10_PREFER_SHARED_RESOURCES_KHR"/>
1655        <enum value="0x402D"        name="CL_CONTEXT_D3D11_PREFER_SHARED_RESOURCES_KHR"/>
1656            <unused start="0x402D" end="0x402F"/>
1657    </enums>
1658
1659    <enums start="0x4030" end="0x403F" name="enums.4030" vendor="AMD" comment="Per Bug 6075">
1660            <!-- Note that an unnamed AMD D3D9 extension was intended to use some enums in this range, but was never shipped or published. See bug 6071. -->
1661            <!-- To be named AMD atomic counters extension - see bug 6071/6075 -->
1662        <!-- <enum value="0x4030"      name="CL_DEVICE_PARENT_DEVICE_EXT"/> -->
1663        <!-- <enum value="0x4031"      name="CL_DEVICE_PARTITION_STYLE_EXT"/> -->
1664        <!-- <enum value="0x4032"      name="CL_DEVICE_MAX_ATOMIC_COUNTERS_EXT"/> -->
1665        <enum value="0x4030"        name="CL_DEVICE_PREFERRED_WORK_GROUP_SIZE_AMD"/>
1666        <enum value="0x4031"        name="CL_DEVICE_MAX_WORK_GROUP_SIZE_AMD"/>
1667            <unused start="0x4032" end="0x4032"/>
1668        <enum value="0x4033"        name="CL_DEVICE_PREFERRED_CONSTANT_BUFFER_SIZE_AMD"/>
1669        <enum value="0x4034"        name="CL_DEVICE_PCIE_ID_AMD"/>
1670            <unused start="0x4035" end="0x4035"/>
1671        <enum value="0x4036"        name="CL_DEVICE_PROFILING_TIMER_OFFSET_AMD"/>
1672        <enum value="0x4037"        name="CL_DEVICE_TOPOLOGY_AMD"/>
1673        <enum value="0x4038"        name="CL_DEVICE_BOARD_NAME_AMD"/>
1674        <enum value="0x4039"        name="CL_DEVICE_GLOBAL_FREE_MEMORY_AMD"/>
1675            <unused start="0x403A" end="0x403F"/>
1676    </enums>
1677
1678    <enums start="0x4040" end="0x404F" name="enums.4040" vendor="AMD" comment="Per Bug 6261 (IBM), then Bug 13603 giving control to AMD">
1679        <enum value="0x4040"        name="CL_COMMAND_MIGRATE_MEM_OBJECT_EXT" comment="From cl_ext_migrate_memobject. Benign collision with the following enum."/>
1680        <enum value="0x4040"        name="CL_DEVICE_SIMD_PER_COMPUTE_UNIT_AMD"/>
1681        <enum value="0x4041"        name="CL_DEVICE_SIMD_WIDTH_AMD"/>
1682        <enum value="0x4042"        name="CL_DEVICE_SIMD_INSTRUCTION_WIDTH_AMD"/>
1683        <enum value="0x4043"        name="CL_DEVICE_WAVEFRONT_WIDTH_AMD"/>
1684        <enum value="0x4044"        name="CL_DEVICE_GLOBAL_MEM_CHANNELS_AMD"/>
1685        <enum value="0x4045"        name="CL_DEVICE_GLOBAL_MEM_CHANNEL_BANKS_AMD"/>
1686        <enum value="0x4046"        name="CL_DEVICE_GLOBAL_MEM_CHANNEL_BANK_WIDTH_AMD"/>
1687        <enum value="0x4047"        name="CL_DEVICE_LOCAL_MEM_SIZE_PER_COMPUTE_UNIT_AMD"/>
1688        <enum value="0x4048"        name="CL_DEVICE_LOCAL_MEM_BANKS_AMD"/>
1689        <enum value="0x4049"        name="CL_DEVICE_THREAD_TRACE_SUPPORTED_AMD"/>
1690        <enum value="0x404A"        name="CL_DEVICE_GFXIP_MAJOR_AMD"/>
1691        <enum value="0x404B"        name="CL_DEVICE_GFXIP_MINOR_AMD"/>
1692        <enum value="0x404C"        name="CL_DEVICE_AVAILABLE_ASYNC_QUEUES_AMD"/>
1693            <unused start="0x404D" end="0x404F"/>
1694    </enums>
1695
1696    <enums start="0x4050" end="0x405F" name="enums.4050" vendor="Apple">
1697        <enum value="0x4050"        name="CL_DEVICE_PARTITION_EQUALLY_EXT"/>
1698        <enum value="0x4051"        name="CL_DEVICE_PARTITION_BY_COUNTS_EXT"/>
1699        <enum value="0x4052"        name="CL_DEVICE_PARTITION_BY_NAMES_EXT"/>
1700        <enum value="0x4052"        name="CL_DEVICE_PARTITION_BY_NAMES_INTEL"/>
1701        <enum value="0x4053"        name="CL_DEVICE_PARTITION_BY_AFFINITY_DOMAIN_EXT"/>
1702        <enum value="0x4054"        name="CL_DEVICE_PARENT_DEVICE_EXT"/>
1703        <enum value="0x4055"        name="CL_DEVICE_PARTITION_TYPES_EXT"/>
1704        <enum value="0x4056"        name="CL_DEVICE_AFFINITY_DOMAINS_EXT"/>
1705        <enum value="0x4057"        name="CL_DEVICE_REFERENCE_COUNT_EXT"/>
1706        <enum value="0x4058"        name="CL_DEVICE_PARTITION_STYLE_EXT"/>
1707            <unused start="0x4059" end="0x405F"/>
1708    </enums>
1709
1710    <enums start="0x4060" end="0x406F" name="enums.4060" vendor="IBM" comment="Per Bug 6470">
1711            <unused start="0x4060" end="0x406F"/>
1712    </enums>
1713
1714    <enums start="0x4070" end="0x407F" name="enums.4070" vendor="Intel" comment="Per Bug 7836">
1715        <enum value="0x4070"        name="CL_D3D9EX_DEVICE_INTEL"/>
1716        <enum value="0x4071"        name="CL_DXVA_DEVICE_INTEL"/>
1717        <enum value="0x4072"        name="CL_CONTEXT_D3D9EX_DEVICE_INTEL"/>
1718        <enum value="0x4073"        name="CL_CONTEXT_DXVA_DEVICE_INTEL"/>
1719        <enum value="0x4074"        name="CL_MEM_DX9_SHARED_HANDLE_INTEL"/>
1720        <enum value="0x4075"        name="CL_IMAGE_DX9_PLANE_INTEL"/>
1721        <enum value="0x4076"        name="CL_YUYV_INTEL"/>
1722        <enum value="0x4077"        name="CL_UYVY_INTEL"/>
1723        <enum value="0x4078"        name="CL_YVYU_INTEL"/>
1724        <enum value="0x4079"        name="CL_VYUY_INTEL"/>
1725            <unused start="0x407A" end="0x407D"/>
1726        <enum value="0x407E"        name="CL_DEVICE_ME_VERSION_INTEL"/>
1727            <unused start="0x407F"/>
1728    </enums>
1729
1730    <enums start="0x4080" end="0x408F" name="enums.4080" vendor="AMD" comment="Per Bug 8211">
1731        <!-- unused <enum value="0x4080"      name="CL_COMMAND_WAIT_SIGNAL_AMD"/> -->
1732        <!-- unused <enum value="0x4081"      name="CL_COMMAND_WRITE_SIGNAL_AMD"/> -->
1733        <!-- unused <enum value="0x4082"      name="CL_COMMAND_MAKE_BUFFERS_RESIDENT_AMD"/> -->
1734            <unused start="0x4083" end="0x408F"/>
1735    </enums>
1736
1737    <enums start="0x4090" end="0x409F" name="enums.4090" vendor="Intel" comment="Per kevin.smith@intel.com 2013/04/11">
1738        <enum value="0x4090"        name="CL_ACCELERATOR_DESCRIPTOR_INTEL"/>
1739        <enum value="0x4091"        name="CL_ACCELERATOR_REFERENCE_COUNT_INTEL"/>
1740        <enum value="0x4092"        name="CL_ACCELERATOR_CONTEXT_INTEL"/>
1741        <enum value="0x4093"        name="CL_ACCELERATOR_TYPE_INTEL"/>
1742        <enum value="0x4094"        name="CL_VA_API_DISPLAY_INTEL"/>
1743        <enum value="0x4095"        name="CL_PREFERRED_DEVICES_FOR_VA_API_INTEL"/>
1744        <enum value="0x4096"        name="CL_ALL_DEVICES_FOR_VA_API_INTEL"/>
1745        <enum value="0x4097"        name="CL_CONTEXT_VA_API_DISPLAY_INTEL"/>
1746        <enum value="0x4098"        name="CL_MEM_VA_API_MEDIA_SURFACE_INTEL"/>
1747        <enum value="0x4099"        name="CL_IMAGE_VA_API_PLANE_INTEL"/>
1748        <enum value="0x409A"        name="CL_COMMAND_ACQUIRE_VA_API_MEDIA_SURFACES_INTEL"/>
1749        <enum value="0x409B"        name="CL_COMMAND_RELEASE_VA_API_MEDIA_SURFACES_INTEL"/>
1750            <unused start="0x409C" end="0x409F"/>
1751    </enums>
1752
1753    <enums start="0x40A0" end="0x40AF" name="enums.40A0" vendor="Qualcomm" comment="Per Bug 10214">
1754        <enum value="0x40A0"        name="CL_DEVICE_EXT_MEM_PADDING_IN_BYTES_QCOM"/>
1755        <enum value="0x40A1"        name="CL_DEVICE_PAGE_SIZE_QCOM"/>
1756        <enum value="0x40A2"        name="CL_IMAGE_ROW_ALIGNMENT_QCOM"/>
1757        <enum value="0x40A3"        name="CL_IMAGE_SLICE_ALIGNMENT_QCOM"/>
1758        <enum value="0x40A4"        name="CL_MEM_HOST_UNCACHED_QCOM"/>
1759        <enum value="0x40A5"        name="CL_MEM_HOST_WRITEBACK_QCOM"/>
1760        <enum value="0x40A6"        name="CL_MEM_HOST_WRITETHROUGH_QCOM"/>
1761        <enum value="0x40A7"        name="CL_MEM_HOST_WRITE_COMBINING_QCOM"/>
1762        <enum value="0x40A8"        name="CL_MEM_ION_HOST_PTR_QCOM"/>
1763        <enum value="0x40A9"        name="CL_MEM_HOST_IOCOHERENT_QCOM"/>
1764            <unused start="0x40AA" end="0x40AF"/>
1765    </enums>
1766
1767    <enums start="0x40B0" end="0x40BF" name="enums.40B0" vendor="ARM" comment="Per Bug 10337">
1768        <enum value="0x40B0"        name="CL_PRINTF_CALLBACK_ARM"/>
1769        <enum value="0x40B1"        name="CL_PRINTF_BUFFERSIZE_ARM"/>
1770        <enum value="0x40B2"        name="CL_IMPORT_TYPE_ARM"/>
1771        <enum value="0x40B3"        name="CL_IMPORT_TYPE_HOST_ARM"/>
1772        <enum value="0x40B4"        name="CL_IMPORT_TYPE_DMA_BUF_ARM"/>
1773        <enum value="0x40B5"        name="CL_IMPORT_TYPE_PROTECTED_ARM"/>
1774        <enum value="0x40B6"        name="CL_DEVICE_SVM_CAPABILITIES_ARM"/>
1775        <enum value="0x40B7"        name="CL_MEM_USES_SVM_POINTER_ARM"/>
1776        <enum value="0x40B8"        name="CL_KERNEL_EXEC_INFO_SVM_PTRS_ARM"/>
1777        <enum value="0x40B9"        name="CL_KERNEL_EXEC_INFO_SVM_FINE_GRAIN_SYSTEM_ARM"/>
1778        <enum value="0x40BA"        name="CL_COMMAND_SVM_FREE_ARM"/>
1779        <enum value="0x40BB"        name="CL_COMMAND_SVM_MEMCPY_ARM"/>
1780        <enum value="0x40BC"        name="CL_COMMAND_SVM_MEMFILL_ARM"/>
1781        <enum value="0x40BD"        name="CL_COMMAND_SVM_MAP_ARM"/>
1782        <enum value="0x40BE"        name="CL_COMMAND_SVM_UNMAP_ARM"/>
1783        <enum value="0x40BF"        name="CL_DEVICE_COMPUTE_UNITS_BITFIELD_ARM"/>
1784    </enums>
1785
1786    <enums start="0x40C0" end="0x40CF" name="enums.40C0" vendor="Qualcomm" comment="Per Bug 10726">
1787            <unused start="0x40C0" end="0x40C5"/>
1788        <enum value="0x40C6"        name="CL_MEM_ANDROID_NATIVE_BUFFER_HOST_PTR_QCOM"/>
1789            <unused start="0x40C7" end="0x40CF"/>
1790    </enums>
1791
1792    <enums start="0x40D0" end="0x40DF" name="enums.40D0" vendor="IMG" comment="Per Bug 11287">
1793        <enum value="0x40D0"        name="CL_NV21"/>
1794        <enum value="0x40D0"        name="CL_NV21_IMG"/>
1795        <enum value="0x40D1"        name="CL_YV12"/>
1796        <enum value="0x40D1"        name="CL_YV12_IMG"/>
1797        <enum value="0x40D2"        name="CL_COMMAND_ACQUIRE_GRALLOC_OBJECTS_IMG"/>
1798        <enum value="0x40D3"        name="CL_COMMAND_RELEASE_GRALLOC_OBJECTS_IMG"/>
1799        <enum value="0x40D4"        name="CL_GRALLOC_RESOURCE_NOT_ACQUIRED_IMG"/>
1800        <enum value="0x40D5"        name="CL_INVALID_GRALLOC_OBJECT_IMG"/>
1801        <enum value="0x40D6"        name="CL_COMMAND_GENERATE_MIPMAP_IMG"/>
1802        <enum value="0x40D7"        name="CL_MEM_ALLOC_FLAGS_IMG"/>
1803        <enum value="0x40D8"        name="CL_RESERVED0_IMG"/>
1804        <enum value="0x40D9"        name="CL_RESERVED1_IMG"/>
1805        <enum value="0x40DA"        name="CL_RESERVED2_IMG"/>
1806            <unused start="0x40DB" end="0x40DF"/>
1807    </enums>
1808
1809    <enums start="0x40E0" end="0x40EF" name="enums.40E0" vendor="Khronos SPIR WG" comment="Per Bugs 11309,11310">
1810        <enum value="0x40E0"        name="CL_DEVICE_SPIR_VERSIONS"/>
1811        <enum value="0x40E1"        name="CL_PROGRAM_BINARY_TYPE_INTERMEDIATE"/>
1812            <unused start="0x40E2" end="0x40EF"/>
1813    </enums>
1814
1815    <enums start="0x40F0" end="0x40FF" name="enums.40F0" vendor="Altera" comment="Per Bug 11642">
1816        <!-- unused <enum value="0x40F0"      name="CL_CONTEXT_COMPILER_MODE_ALTERA"/> -->
1817        <!-- unused <enum value="0x40F1"      name="CL_CONTEXT_PROGRAM_EXE_LIBRARY_ROOT_ALTERA"/> -->
1818        <!-- unused <enum value="0x40F2"      name="CL_CONTEXT_OFFLINE_DEVICE_ALTERA"/> -->
1819        <!-- unused <enum value="0x40F3"      name="CL_DEVICE_CORE_TEMPERATURE_ALTERA"/> -->
1820            <unused start="0x40F4" end="0x40FF"/>
1821    </enums>
1822
1823    <enums start="0x4100" end="0x410F" name="enums.4100" vendor="Intel" comment="Per bug 12258.">
1824            <unused start="0x4100" end="0x4103"/>
1825        <enum value="0x4104"        name="CL_DEVICE_SIMULTANEOUS_INTEROPS_INTEL"/>
1826        <enum value="0x4105"        name="CL_DEVICE_NUM_SIMULTANEOUS_INTEROPS_INTEL"/>
1827        <enum value="0x4106"        name="CL_CONTEXT_SHOW_DIAGNOSTICS_INTEL"/>
1828        <enum value="0x4107"        name="CL_EGL_YUV_PLANE_INTEL"/>
1829        <enum value="0x4108"        name="CL_DEVICE_SUB_GROUP_SIZES_INTEL"/>
1830        <enum value="0x4109"        name="CL_KERNEL_SPILL_MEM_SIZE_INTEL"/>
1831        <enum value="0x410A"        name="CL_KERNEL_COMPILE_SUB_GROUP_SIZE_INTEL"/>
1832        <enum value="0x410B"        name="CL_DEVICE_AVC_ME_VERSION_INTEL"/>
1833        <enum value="0x410C"        name="CL_DEVICE_AVC_ME_SUPPORTS_TEXTURE_SAMPLER_USE_INTEL"/>
1834        <enum value="0x410D"        name="CL_DEVICE_AVC_ME_SUPPORTS_PREEMPTION_INTEL"/>
1835        <enum value="0x410E"        name="CL_NV12_INTEL"/>
1836            <unused start="0x410F"/>
1837    </enums>
1838
1839    <enums start="0x4110" end="0x411F" name="enums.4110" vendor="Qualcomm" comment="Per Bug 13929">
1840            <unused start="0x4110" end="0x411F"/>
1841    </enums>
1842
1843    <enums start="0x4120" end="0x412F" name="enums.4120" vendor="AMD" comment="Per Bug 14890">
1844            <unused start="0x4120" end="0x412F"/>
1845    </enums>
1846
1847    <enums start="0x4130" end="0x415F" name="enums.4130" vendor="Qualcomm" comment="Per Bugs 15602,15760">
1848            <unused start="0x4130" end="0x415F"/>
1849    </enums>
1850
1851    <enums start="0x4160" end="0x416F" name="enums.4160" vendor="Intel" comment="Per bug 16049.">
1852            <unused start="0x4160" end="0x416F"/>
1853    </enums>
1854
1855    <enums start="0x4170" end="0x417F" name="enums.4170" vendor="Intel" comment="Per bug 16067.">
1856            <unused start="0x4170" end="0x417D"/>
1857        <enum value="0x417E"        name="CL_DEVICE_PLANAR_YUV_MAX_WIDTH_INTEL"/>
1858        <enum value="0x417F"        name="CL_DEVICE_PLANAR_YUV_MAX_HEIGHT_INTEL"/>
1859    </enums>
1860
1861    <enums start="0x4180" end="0x418F" name="enums.4180" vendor="Intel" comment="Per OpenCL-Registry #22">
1862            <unused start="0x4180" end="0x418A"/>
1863        <enum value="0x418B"        name="CL_DEVICE_QUEUE_FAMILY_PROPERTIES_INTEL"/>
1864        <enum value="0x418C"        name="CL_QUEUE_FAMILY_INTEL"/>
1865        <enum value="0x418D"        name="CL_QUEUE_INDEX_INTEL"/>
1866            <unused start="0x418E" end="0x418F"/>
1867    </enums>
1868
1869    <enums start="0x4190" end="0x419F" name="enums.4190" vendor="Intel">
1870        <enum value="0x4190"        name="CL_DEVICE_HOST_MEM_CAPABILITIES_INTEL"/>
1871        <enum value="0x4191"        name="CL_DEVICE_DEVICE_MEM_CAPABILITIES_INTEL"/>
1872        <enum value="0x4192"        name="CL_DEVICE_SINGLE_DEVICE_SHARED_MEM_CAPABILITIES_INTEL"/>
1873        <enum value="0x4193"        name="CL_DEVICE_CROSS_DEVICE_SHARED_MEM_CAPABILITIES_INTEL"/>
1874        <enum value="0x4194"        name="CL_DEVICE_SHARED_SYSTEM_MEM_CAPABILITIES_INTEL"/>
1875        <enum value="0x4195"        name="CL_MEM_ALLOC_FLAGS_INTEL"/>
1876        <enum value="0x4196"        name="CL_MEM_TYPE_UNKNOWN_INTEL"/>
1877        <enum value="0x4197"        name="CL_MEM_TYPE_HOST_INTEL"/>
1878        <enum value="0x4198"        name="CL_MEM_TYPE_DEVICE_INTEL"/>
1879        <enum value="0x4199"        name="CL_MEM_TYPE_SHARED_INTEL"/>
1880        <enum value="0x419A"        name="CL_MEM_ALLOC_TYPE_INTEL"/>
1881        <enum value="0x419B"        name="CL_MEM_ALLOC_BASE_PTR_INTEL"/>
1882        <enum value="0x419C"        name="CL_MEM_ALLOC_SIZE_INTEL"/>
1883        <enum value="0x419D"        name="CL_MEM_ALLOC_DEVICE_INTEL"/>
1884            <unused start="0x419E" end="0x419F"/>
1885    </enums>
1886
1887    <enums start="0x41A0" end="0x41DF" name="enums.41A0" vendor="Qualcomm">
1888            <unused start="0x41A0" end="0x41DF"/>
1889    </enums>
1890
1891    <enums start="0x41E0" end="0x41FF" name="enums.41E0" vendor="Arm">
1892        <enum value="0x41E0"        name="CL_DEVICE_JOB_SLOTS_ARM"/>
1893        <enum value="0x41E1"        name="CL_QUEUE_JOB_SLOT_ARM"/>
1894        <enum value="0x41E2"        name="CL_IMPORT_TYPE_ANDROID_HARDWARE_BUFFER_ARM"/>
1895        <enum value="0x41E3"        name="CL_IMPORT_DMA_BUF_DATA_CONSISTENCY_WITH_HOST_ARM"/>
1896        <enum value="0x41E4"        name="CL_DEVICE_SCHEDULING_CONTROLS_CAPABILITIES_ARM"/>
1897        <enum value="0x41E5"        name="CL_KERNEL_EXEC_INFO_WORKGROUP_BATCH_SIZE_ARM"/>
1898        <enum value="0x41E6"        name="CL_KERNEL_EXEC_INFO_WORKGROUP_BATCH_SIZE_MODIFIER_ARM"/>
1899        <enum value="0x41E7"        name="CL_QUEUE_KERNEL_BATCHING_ARM"/>
1900            <unused start="0x41E8" end="0x41EA"/>
1901        <enum value="0x41EB"        name="CL_DEVICE_SUPPORTED_REGISTER_ALLOCATIONS_ARM"/>
1902        <enum value="0x41EC"        name="CL_QUEUE_DEFERRED_FLUSH_ARM"/>
1903        <enum value="0x41ED"        name="CL_EVENT_COMMAND_TERMINATION_REASON_ARM"/>
1904        <enum value="0x41EE"        name="CL_DEVICE_CONTROLLED_TERMINATION_CAPABILITIES_ARM"/>
1905        <enum value="0x41EF"        name="CL_IMPORT_ANDROID_HARDWARE_BUFFER_PLANE_INDEX_ARM"/>
1906        <enum value="0x41F0"        name="CL_IMPORT_ANDROID_HARDWARE_BUFFER_LAYER_INDEX_ARM"/>
1907            <unused start="0x41F1" end="0x41FF"/>
1908    </enums>
1909
1910    <enums start="0x4200" end="0x420F" name="enums.4200" vendor="Intel">
1911        <enum value="0x4200"        name="CL_KERNEL_EXEC_INFO_INDIRECT_HOST_ACCESS_INTEL"/>
1912        <enum value="0x4201"        name="CL_KERNEL_EXEC_INFO_INDIRECT_DEVICE_ACCESS_INTEL"/>
1913        <enum value="0x4202"        name="CL_KERNEL_EXEC_INFO_INDIRECT_SHARED_ACCESS_INTEL"/>
1914        <enum value="0x4203"        name="CL_KERNEL_EXEC_INFO_USM_PTRS_INTEL"/>
1915        <enum value="0x4204"        name="CL_COMMAND_MEMFILL_INTEL"/>
1916        <enum value="0x4205"        name="CL_COMMAND_MEMCPY_INTEL"/>
1917        <enum value="0x4206"        name="CL_COMMAND_MIGRATEMEM_INTEL"/>
1918        <enum value="0x4207"        name="CL_COMMAND_MEMADVISE_INTEL"/>
1919            <unused start="0x4208" end="0x420F"/>
1920    </enums>
1921
1922    <enums start="0x4210" end="0x421F" name="enums.4210" vendor="Intel" comment="Contact michael.kinsner@intel.com">
1923        <enum value="0x4210"        name="CL_KERNEL_ARG_HOST_ACCESSIBLE_PIPE_INTEL"/>
1924        <enum value="0x4211"        name="CL_DEVICE_MAX_HOST_READ_PIPES_INTEL"/>
1925        <enum value="0x4212"        name="CL_DEVICE_MAX_HOST_WRITE_PIPES_INTEL"/>
1926        <enum value="0x4213"        name="CL_MEM_CHANNEL_INTEL"/>
1927            <unused start="0x4214" end="0x421F"/>
1928    </enums>
1929
1930    <enums start="0x4220" end="0x422F" name="enums.4220" vendor="IMG">
1931            <unused start="0x4220" end="0x422F"/>
1932    </enums>
1933
1934    <enums start="0x4230" end="0x423F" name="enums.4230" comment="Reserved for EXT extensions">
1935        <enum value="0x4230"        name="CL_DEVICE_CXX_FOR_OPENCL_NUMERIC_VERSION_EXT"/>
1936            <unused start="0x4231" end="0x423F"/>
1937    </enums>
1938
1939    <enums start="0x4240" end="0x424F" name="enums.4240" comment="Reserved for ICD Loader Layers">
1940        <enum value="0x4240"        name="CL_LAYER_API_VERSION"/>
1941            <unused start="0x4241" end="0x424F"/>
1942    </enums>
1943
1944    <enums start="0x4250" end="0x4FFF" name="enums.4250" comment="Reserved for vendor extensions. Allocate in groups of 16.">
1945            <unused start="0x4250" end="0x4FFF"/>
1946    </enums>
1947
1948    <enums start="0x10000" end="0x10FFF" name="enums.10000" vendor="Khronos" comment="Experimental range for internal development only. Do not allocate.">
1949        <!-- Khronos will never assign values in this range, and vendors
1950             should never ship using values in this range. It is intended
1951             purely for internal development. -->
1952            <unused start="0x10000" end="0x10FFF" comment="Reserved"/>
1953    </enums>
1954
1955    <enums start="0x10000000" end="0x100000FF" name="enums.10000000" vendor="Apple" comment="Legacy assignment before current enum allocation policy">
1956            <unused start="0x10000000" end="0x100000FF"/>
1957    </enums>
1958
1959    <!-- SECTION: CL command definitions. (TBD) -->
1960    <commands>
1961        <command suffix="CL_API_SUFFIX__VERSION_1_0">
1962            <proto><type>cl_int</type>                     <name>clGetDeviceIDsFromD3D10KHR</name></proto>
1963            <param><type>cl_platform_id</type>             <name>platform</name></param>
1964            <param><type>cl_d3d10_device_source_khr</type> <name>d3d_device_source</name></param>
1965            <param><type>void</type>*                      <name>d3d_object</name></param>
1966            <param><type>cl_d3d10_device_set_khr</type>    <name>d3d_device_set</name></param>
1967            <param><type>cl_uint</type>                    <name>num_entries</name></param>
1968            <param><type>cl_device_id</type>*              <name>devices</name></param>
1969            <param><type>cl_uint</type>*                   <name>num_devices</name></param>
1970        </command>
1971        <command suffix="CL_API_SUFFIX__VERSION_1_0">
1972            <proto><type>cl_mem</type>                     <name>clCreateFromD3D10BufferKHR</name></proto>
1973            <param><type>cl_context</type>                 <name>context</name></param>
1974            <param><type>cl_mem_flags</type>               <name>flags</name></param>
1975            <param><type>ID3D10Buffer</type>*              <name>resource</name></param>
1976            <param><type>cl_int</type>*                    <name>errcode_ret</name></param>
1977        </command>
1978        <command suffix="CL_API_SUFFIX__VERSION_1_0">
1979            <proto><type>cl_mem</type>                     <name>clCreateFromD3D10Texture2DKHR</name></proto>
1980            <param><type>cl_context</type>                 <name>context</name></param>
1981            <param><type>cl_mem_flags</type>               <name>flags</name></param>
1982            <param><type>ID3D10Texture2D</type>*           <name>resource</name></param>
1983            <param><type>UINT</type>                       <name>subresource</name></param>
1984            <param><type>cl_int</type>*                    <name>errcode_ret</name></param>
1985        </command>
1986        <command suffix="CL_API_SUFFIX__VERSION_1_0">
1987            <proto><type>cl_mem</type>                     <name>clCreateFromD3D10Texture3DKHR</name></proto>
1988            <param><type>cl_context</type>                 <name>context</name></param>
1989            <param><type>cl_mem_flags</type>               <name>flags</name></param>
1990            <param><type>ID3D10Texture3D</type>*           <name>resource</name></param>
1991            <param><type>UINT</type>                       <name>subresource</name></param>
1992            <param><type>cl_int</type>*                    <name>errcode_ret</name></param>
1993        </command>
1994        <command suffix="CL_API_SUFFIX__VERSION_1_0">
1995            <proto><type>cl_int</type>                     <name>clEnqueueAcquireD3D10ObjectsKHR</name></proto>
1996            <param><type>cl_command_queue</type>           <name>command_queue</name></param>
1997            <param><type>cl_uint</type>                    <name>num_objects</name></param>
1998            <param>const <type>cl_mem</type>*              <name>mem_objects</name></param>
1999            <param><type>cl_uint</type>                    <name>num_events_in_wait_list</name></param>
2000            <param>const <type>cl_event</type>*            <name>event_wait_list</name></param>
2001            <param><type>cl_event</type>*                  <name>event</name></param>
2002        </command>
2003        <command suffix="CL_API_SUFFIX__VERSION_1_0">
2004            <proto><type>cl_int</type>                     <name>clEnqueueReleaseD3D10ObjectsKHR</name></proto>
2005            <param><type>cl_command_queue</type>           <name>command_queue</name></param>
2006            <param><type>cl_uint</type>                    <name>num_objects</name></param>
2007            <param>const <type>cl_mem</type>*              <name>mem_objects</name></param>
2008            <param><type>cl_uint</type>                    <name>num_events_in_wait_list</name></param>
2009            <param>const <type>cl_event</type>*            <name>event_wait_list</name></param>
2010            <param><type>cl_event</type>*                  <name>event</name></param>
2011        </command>
2012        <command suffix="CL_API_SUFFIX__VERSION_1_2">
2013            <proto><type>cl_int</type>                     <name>clGetDeviceIDsFromD3D11KHR</name></proto>
2014            <param><type>cl_platform_id</type>             <name>platform</name></param>
2015            <param><type>cl_d3d11_device_source_khr</type> <name>d3d_device_source</name></param>
2016            <param><type>void</type>*                      <name>d3d_object</name></param>
2017            <param><type>cl_d3d11_device_set_khr</type>    <name>d3d_device_set</name></param>
2018            <param><type>cl_uint</type>                    <name>num_entries</name></param>
2019            <param><type>cl_device_id</type>*              <name>devices</name></param>
2020            <param><type>cl_uint</type>*                   <name>num_devices</name></param>
2021        </command>
2022        <command suffix="CL_API_SUFFIX__VERSION_1_2">
2023            <proto><type>cl_mem</type>                     <name>clCreateFromD3D11BufferKHR</name></proto>
2024            <param><type>cl_context</type>                 <name>context</name></param>
2025            <param><type>cl_mem_flags</type>               <name>flags</name></param>
2026            <param><type>ID3D11Buffer</type>*              <name>resource</name></param>
2027            <param><type>cl_int</type>*                    <name>errcode_ret</name></param>
2028        </command>
2029        <command suffix="CL_API_SUFFIX__VERSION_1_2">
2030            <proto><type>cl_mem</type>                     <name>clCreateFromD3D11Texture2DKHR</name></proto>
2031            <param><type>cl_context</type>                 <name>context</name></param>
2032            <param><type>cl_mem_flags</type>               <name>flags</name></param>
2033            <param><type>ID3D11Texture2D</type>*           <name>resource</name></param>
2034            <param><type>UINT</type>                       <name>subresource</name></param>
2035            <param><type>cl_int</type>*                    <name>errcode_ret</name></param>
2036        </command>
2037        <command suffix="CL_API_SUFFIX__VERSION_1_2">
2038            <proto><type>cl_mem</type>                     <name>clCreateFromD3D11Texture3DKHR</name></proto>
2039            <param><type>cl_context</type>                 <name>context</name></param>
2040            <param><type>cl_mem_flags</type>               <name>flags</name></param>
2041            <param><type>ID3D11Texture3D</type>*           <name>resource</name></param>
2042            <param><type>UINT</type>                       <name>subresource</name></param>
2043            <param><type>cl_int</type>*                    <name>errcode_ret</name></param>
2044        </command>
2045        <command suffix="CL_API_SUFFIX__VERSION_1_2">
2046            <proto><type>cl_int</type>                     <name>clEnqueueAcquireD3D11ObjectsKHR</name></proto>
2047            <param><type>cl_command_queue</type>           <name>command_queue</name></param>
2048            <param><type>cl_uint</type>                    <name>num_objects</name></param>
2049            <param>const <type>cl_mem</type>*              <name>mem_objects</name></param>
2050            <param><type>cl_uint</type>                    <name>num_events_in_wait_list</name></param>
2051            <param>const <type>cl_event</type>*            <name>event_wait_list</name></param>
2052            <param><type>cl_event</type>*                  <name>event</name></param>
2053        </command>
2054        <command suffix="CL_API_SUFFIX__VERSION_1_2">
2055            <proto><type>cl_int</type>                     <name>clEnqueueReleaseD3D11ObjectsKHR</name></proto>
2056            <param><type>cl_command_queue</type>           <name>command_queue</name></param>
2057            <param><type>cl_uint</type>                    <name>num_objects</name></param>
2058            <param>const <type>cl_mem</type>*              <name>mem_objects</name></param>
2059            <param><type>cl_uint</type>                    <name>num_events_in_wait_list</name></param>
2060            <param>const <type>cl_event</type>*            <name>event_wait_list</name></param>
2061            <param><type>cl_event</type>*                  <name>event</name></param>
2062        </command>
2063        <command suffix="CL_API_SUFFIX__VERSION_1_2">
2064            <proto><type>cl_int</type>                     <name>clGetDeviceIDsFromDX9MediaAdapterKHR</name></proto>
2065            <param><type>cl_platform_id</type>             <name>platform</name></param>
2066            <param><type>cl_uint</type>                    <name>num_media_adapters</name></param>
2067            <param><type>cl_dx9_media_adapter_type_khr</type>*  <name>media_adapter_type</name></param>
2068            <param><type>void</type>*                      <name>media_adapters</name></param>
2069            <param><type>cl_dx9_media_adapter_set_khr</type> <name>media_adapter_set</name></param>
2070            <param><type>cl_uint</type>                    <name>num_entries</name></param>
2071            <param><type>cl_device_id</type>*              <name>devices</name></param>
2072            <param><type>cl_uint</type>*                   <name>num_devices</name></param>
2073        </command>
2074        <command suffix="CL_API_SUFFIX__VERSION_1_2">
2075            <proto><type>cl_mem</type>                     <name>clCreateFromDX9MediaSurfaceKHR</name></proto>
2076            <param><type>cl_context</type>                 <name>context</name></param>
2077            <param><type>cl_mem_flags</type>               <name>flags</name></param>
2078            <param><type>cl_dx9_media_adapter_type_khr</type> <name>adapter_type</name></param>
2079            <param><type>void</type>*                      <name>surface_info</name></param>
2080            <param><type>cl_uint</type>                    <name>plane</name></param>
2081            <param><type>cl_int</type>*                    <name>errcode_ret</name></param>
2082        </command>
2083        <command suffix="CL_API_SUFFIX__VERSION_1_2">
2084            <proto><type>cl_int</type>                     <name>clEnqueueAcquireDX9MediaSurfacesKHR</name></proto>
2085            <param><type>cl_command_queue</type>           <name>command_queue</name></param>
2086            <param><type>cl_uint</type>                    <name>num_objects</name></param>
2087            <param>const <type>cl_mem</type>*              <name>mem_objects</name></param>
2088            <param><type>cl_uint</type>                    <name>num_events_in_wait_list</name></param>
2089            <param>const <type>cl_event</type>*            <name>event_wait_list</name></param>
2090            <param><type>cl_event</type>*                  <name>event</name></param>
2091        </command>
2092        <command suffix="CL_API_SUFFIX__VERSION_1_2">
2093            <proto><type>cl_int</type>                     <name>clEnqueueReleaseDX9MediaSurfacesKHR</name></proto>
2094            <param><type>cl_command_queue</type>           <name>command_queue</name></param>
2095            <param><type>cl_uint</type>                    <name>num_objects</name></param>
2096            <param>const <type>cl_mem</type>*              <name>mem_objects</name></param>
2097            <param><type>cl_uint</type>                    <name>num_events_in_wait_list</name></param>
2098            <param>const <type>cl_event</type>*            <name>event_wait_list</name></param>
2099            <param><type>cl_event</type>*                  <name>event</name></param>
2100        </command>
2101        <command suffix="CL_EXT_SUFFIX__VERSION_1_1">
2102            <proto><type>cl_int</type>                     <name>clGetDeviceIDsFromDX9INTEL</name></proto>
2103            <param><type>cl_platform_id</type>             <name>platform</name></param>
2104            <param><type>cl_dx9_device_source_intel</type> <name>dx9_device_source</name></param>
2105            <param><type>void</type>*                      <name>dx9_object</name></param>
2106            <param><type>cl_dx9_device_set_intel</type>    <name>dx9_device_set</name></param>
2107            <param><type>cl_uint</type>                    <name>num_entries</name></param>
2108            <param><type>cl_device_id</type>*              <name>devices</name></param>
2109            <param><type>cl_uint</type>*                   <name>num_devices</name></param>
2110        </command>
2111        <command suffix="CL_EXT_SUFFIX__VERSION_1_1">
2112            <proto><type>cl_mem</type>                     <name>clCreateFromDX9MediaSurfaceINTEL</name></proto>
2113            <param><type>cl_context</type>                 <name>context</name></param>
2114            <param><type>cl_mem_flags</type>               <name>flags</name></param>
2115            <param><type>IDirect3DSurface9</type>*         <name>resource</name></param>
2116            <param><type>HANDLE</type>                     <name>sharedHandle</name></param>
2117            <param><type>UINT</type>                       <name>plane</name></param>
2118            <param><type>cl_int</type>*                    <name>errcode_ret</name></param>
2119        </command>
2120        <command suffix="CL_EXT_SUFFIX__VERSION_1_1">
2121            <proto><type>cl_int</type>                     <name>clEnqueueAcquireDX9ObjectsINTEL</name></proto>
2122            <param><type>cl_command_queue</type>           <name>command_queue</name></param>
2123            <param><type>cl_uint</type>                    <name>num_objects</name></param>
2124            <param>const <type>cl_mem</type>*              <name>mem_objects</name></param>
2125            <param><type>cl_uint</type>                    <name>num_events_in_wait_list</name></param>
2126            <param>const <type>cl_event</type>*            <name>event_wait_list</name></param>
2127            <param><type>cl_event</type>*                  <name>event</name></param>
2128        </command>
2129        <command suffix="CL_EXT_SUFFIX__VERSION_1_1">
2130            <proto><type>cl_int</type>                     <name>clEnqueueReleaseDX9ObjectsINTEL</name></proto>
2131            <param><type>cl_command_queue</type>           <name>command_queue</name></param>
2132            <param><type>cl_uint</type>                    <name>num_objects</name></param>
2133            <param><type>cl_mem</type>*                    <name>mem_objects</name></param>
2134            <param><type>cl_uint</type>                    <name>num_events_in_wait_list</name></param>
2135            <param>const <type>cl_event</type>*            <name>event_wait_list</name></param>
2136            <param><type>cl_event</type>*                  <name>event</name></param>
2137        </command>
2138        <command suffix="CL_API_SUFFIX__VERSION_1_0">
2139            <proto><type>cl_event</type>                   <name>clCreateEventFromEGLSyncKHR</name></proto>
2140            <param><type>cl_context</type>                 <name>context</name></param>
2141            <param><type>CLeglSyncKHR</type>               <name>sync</name></param>
2142            <param><type>CLeglDisplayKHR</type>            <name>display</name></param>
2143            <param><type>cl_int</type>*                    <name>errcode_ret</name></param>
2144        </command>
2145        <command suffix="CL_API_SUFFIX__VERSION_1_0">
2146            <proto><type>cl_mem</type>                     <name>clCreateFromEGLImageKHR</name></proto>
2147            <param><type>cl_context</type>                 <name>context</name></param>
2148            <param><type>CLeglDisplayKHR</type>            <name>egldisplay</name></param>
2149            <param><type>CLeglImageKHR</type>              <name>eglimage</name></param>
2150            <param><type>cl_mem_flags</type>               <name>flags</name></param>
2151            <param>const <type>cl_egl_image_properties_khr</type>*  <name>properties</name></param>
2152            <param><type>cl_int</type>*                    <name>errcode_ret</name></param>
2153        </command>
2154        <command suffix="CL_API_SUFFIX__VERSION_1_0">
2155            <proto><type>cl_int</type>                     <name>clEnqueueAcquireEGLObjectsKHR</name></proto>
2156            <param><type>cl_command_queue</type>           <name>command_queue</name></param>
2157            <param><type>cl_uint</type>                    <name>num_objects</name></param>
2158            <param>const <type>cl_mem</type>*              <name>mem_objects</name></param>
2159            <param><type>cl_uint</type>                    <name>num_events_in_wait_list</name></param>
2160            <param>const <type>cl_event</type>*            <name>event_wait_list</name></param>
2161            <param><type>cl_event</type>*                  <name>event</name></param>
2162        </command>
2163        <command suffix="CL_API_SUFFIX__VERSION_1_0">
2164            <proto><type>cl_int</type>                     <name>clEnqueueReleaseEGLObjectsKHR</name></proto>
2165            <param><type>cl_command_queue</type>           <name>command_queue</name></param>
2166            <param><type>cl_uint</type>                    <name>num_objects</name></param>
2167            <param>const <type>cl_mem</type>*              <name>mem_objects</name></param>
2168            <param><type>cl_uint</type>                    <name>num_events_in_wait_list</name></param>
2169            <param>const <type>cl_event</type>*            <name>event_wait_list</name></param>
2170            <param><type>cl_event</type>*                  <name>event</name></param>
2171        </command>
2172        <command suffix="CL_EXT_SUFFIX__VERSION_1_0">
2173            <proto><type>void</type>                       <name>clLogMessagesToSystemLogAPPLE</name></proto>
2174            <param>const <type>char</type>*                <name>errstr</name></param>
2175            <param>const <type>void</type>*                <name>private_info</name></param>
2176            <param><type>size_t</type>                     <name>cb</name></param>
2177            <param><type>void</type>*                      <name>user_data</name></param>
2178        </command>
2179        <command suffix="CL_EXT_SUFFIX__VERSION_1_0">
2180            <proto><type>void</type>                       <name>clLogMessagesToStdoutAPPLE</name></proto>
2181            <param>const <type>char</type>*                <name>errstr</name></param>
2182            <param>const <type>void</type>*                <name>private_info</name></param>
2183            <param><type>size_t</type>                     <name>cb</name></param>
2184            <param><type>void</type>*                      <name>user_data</name></param>
2185        </command>
2186        <command suffix="CL_EXT_SUFFIX__VERSION_1_0">
2187            <proto><type>void</type>                       <name>clLogMessagesToStderrAPPLE</name></proto>
2188            <param>const <type>char</type>*                <name>errstr</name></param>
2189            <param>const <type>void</type>*                <name>private_info</name></param>
2190            <param><type>size_t</type>                     <name>cb</name></param>
2191            <param><type>void</type>*                      <name>user_data</name></param>
2192        </command>
2193        <command>
2194            <proto><type>cl_int</type>                     <name>clIcdGetPlatformIDsKHR</name></proto>
2195            <param><type>cl_uint</type>                    <name>num_entries</name></param>
2196            <param><type>cl_platform_id</type>*            <name>platforms</name></param>
2197            <param><type>cl_uint</type>*                   <name>num_platforms</name></param>
2198        </command>
2199        <command>
2200            <proto><type>cl_program</type>                 <name>clCreateProgramWithILKHR</name></proto>
2201            <param><type>cl_context</type>                 <name>context</name></param>
2202            <param>const <type>void</type>*                <name>il</name></param>
2203            <param><type>size_t</type>                     <name>length</name></param>
2204            <param><type>cl_int</type>*                    <name>errcode_ret</name></param>
2205        </command>
2206        <command suffix="CL_EXT_SUFFIX__VERSION_1_2">
2207            <proto><type>cl_int</type>                     <name>clTerminateContextKHR</name></proto>
2208            <param><type>cl_context</type>                 <name>context</name></param>
2209        </command>
2210        <command suffix="CL_EXT_SUFFIX__VERSION_1_2">
2211            <proto><type>cl_command_queue</type>           <name>clCreateCommandQueueWithPropertiesKHR</name></proto>
2212            <param><type>cl_context</type>                 <name>context</name></param>
2213            <param><type>cl_device_id</type>               <name>device</name></param>
2214            <param>const <type>cl_queue_properties_khr</type>* <name>properties</name></param>
2215            <param><type>cl_int</type>*                    <name>errcode_ret</name></param>
2216        </command>
2217        <command suffix="CL_EXT_SUFFIX__VERSION_1_1">
2218            <proto><type>cl_int</type>                     <name>clReleaseDeviceEXT</name></proto>
2219            <param><type>cl_device_id</type>               <name>device</name></param>
2220        </command>
2221        <command suffix="CL_EXT_SUFFIX__VERSION_1_1">
2222            <proto><type>cl_int</type>                     <name>clRetainDeviceEXT</name></proto>
2223            <param><type>cl_device_id</type>               <name>device</name></param>
2224        </command>
2225        <command suffix="CL_EXT_SUFFIX__VERSION_1_1">
2226            <proto><type>cl_int</type>                     <name>clCreateSubDevicesEXT</name></proto>
2227            <param><type>cl_device_id</type>               <name>in_device</name></param>
2228            <param>const <type>cl_device_partition_property_ext</type>*  <name>properties</name></param>
2229            <param><type>cl_uint</type>                    <name>num_entries</name></param>
2230            <param><type>cl_device_id</type>*              <name>out_devices</name></param>
2231            <param><type>cl_uint</type>*                   <name>num_devices</name></param>
2232        </command>
2233        <command>
2234            <proto><type>cl_int</type>                     <name>clEnqueueMigrateMemObjectEXT</name></proto>
2235            <param><type>cl_command_queue</type>           <name>command_queue</name></param>
2236            <param><type>cl_uint</type>                    <name>num_mem_objects</name></param>
2237            <param>const <type>cl_mem</type>*              <name>mem_objects</name></param>
2238            <param><type>cl_mem_migration_flags_ext</type> <name>flags</name></param>
2239            <param><type>cl_uint</type>                    <name>num_events_in_wait_list</name></param>
2240            <param>const <type>cl_event</type>*            <name>event_wait_list</name></param>
2241            <param><type>cl_event</type>*                  <name>event</name></param>
2242        </command>
2243        <command>
2244            <proto><type>cl_int</type>                     <name>clGetDeviceImageInfoQCOM</name></proto>
2245            <param><type>cl_device_id</type>               <name>device</name></param>
2246            <param><type>size_t</type>                     <name>image_width</name></param>
2247            <param><type>size_t</type>                     <name>image_height</name></param>
2248            <param>const <type>cl_image_format</type>*     <name>image_format</name></param>
2249            <param><type>cl_image_pitch_info_qcom</type>   <name>param_name</name></param>
2250            <param><type>size_t</type>                     <name>param_value_size</name></param>
2251            <param><type>void</type>*                      <name>param_value</name></param>
2252            <param><type>size_t</type>*                    <name>param_value_size_ret</name></param>
2253        </command>
2254        <command suffix="CL_EXT_SUFFIX__VERSION_1_2">
2255            <proto><type>cl_int</type>                     <name>clEnqueueAcquireGrallocObjectsIMG</name></proto>
2256            <param><type>cl_command_queue</type>           <name>command_queue</name></param>
2257            <param><type>cl_uint</type>                    <name>num_objects</name></param>
2258            <param>const <type>cl_mem</type>*              <name>mem_objects</name></param>
2259            <param><type>cl_uint</type>                    <name>num_events_in_wait_list</name></param>
2260            <param>const <type>cl_event</type>*            <name>event_wait_list</name></param>
2261            <param><type>cl_event</type>*                  <name>event</name></param>
2262        </command>
2263        <command suffix="CL_EXT_SUFFIX__VERSION_1_2">
2264            <proto><type>cl_int</type>                     <name>clEnqueueGenerateMipmapIMG</name></proto>
2265            <param><type>cl_command_queue</type>           <name>command_queue</name></param>
2266            <param><type>cl_mem</type>                     <name>src_image</name></param>
2267            <param><type>cl_mem</type>                     <name>dst_image</name></param>
2268            <param><type>cl_mipmap_filter_mode_img</type>  <name>mipmap_filter_mode</name></param>
2269            <param>const <type>size_t</type>*              <name>array_region</name></param>
2270            <param>const <type>size_t</type>*              <name>mip_region</name></param>
2271            <param><type>cl_uint</type>                    <name>num_events_in_wait_list</name></param>
2272            <param>const <type>cl_event</type>*            <name>event_wait_list</name></param>
2273            <param><type>cl_event</type>*                  <name>event</name></param>
2274        </command>
2275        <command suffix="CL_EXT_SUFFIX__VERSION_1_2">
2276            <proto><type>cl_int</type>                     <name>clEnqueueReleaseGrallocObjectsIMG</name></proto>
2277            <param><type>cl_command_queue</type>           <name>command_queue</name></param>
2278            <param><type>cl_uint</type>                    <name>num_objects</name></param>
2279            <param>const <type>cl_mem</type>*              <name>mem_objects</name></param>
2280            <param><type>cl_uint</type>                    <name>num_events_in_wait_list</name></param>
2281            <param>const <type>cl_event</type>*            <name>event_wait_list</name></param>
2282            <param><type>cl_event</type>*                  <name>event</name></param>
2283        </command>
2284        <command suffix="CL_EXT_SUFFIX__VERSION_2_0_DEPRECATED">
2285            <proto><type>cl_int</type>                     <name>clGetKernelSubGroupInfoKHR</name></proto>
2286            <param><type>cl_kernel</type>                  <name>in_kernel</name></param>
2287            <param><type>cl_device_id</type>               <name>in_device</name></param>
2288            <param><type>cl_kernel_sub_group_info</type>   <name>param_name</name></param>
2289            <param><type>size_t</type>                     <name>input_value_size</name></param>
2290            <param>const <type>void</type>*                <name>input_value</name></param>
2291            <param><type>size_t</type>                     <name>param_value_size</name></param>
2292            <param><type>void</type>*                      <name>param_value</name></param>
2293            <param><type>size_t</type>*                    <name>param_value_size_ret</name></param>
2294        </command>
2295        <command suffix="CL_EXT_SUFFIX__VERSION_1_0">
2296            <proto><type>cl_mem</type>                     <name>clImportMemoryARM</name></proto>
2297            <param><type>cl_context</type>                 <name>context</name></param>
2298            <param><type>cl_mem_flags</type>               <name>flags</name></param>
2299            <param>const <type>cl_import_properties_arm</type>* <name>properties</name></param>
2300            <param><type>void</type>*                      <name>memory</name></param>
2301            <param><type>size_t</type>                     <name>size</name></param>
2302            <param><type>cl_int</type>*                    <name>errcode_ret</name></param>
2303        </command>
2304        <command suffix="CL_EXT_SUFFIX__VERSION_1_2">
2305            <proto><type>void</type>*                      <name>clSVMAllocARM</name></proto>
2306            <param><type>cl_context</type>                 <name>context</name></param>
2307            <param><type>cl_svm_mem_flags_arm</type>       <name>flags</name></param>
2308            <param><type>size_t</type>                     <name>size</name></param>
2309            <param><type>cl_uint</type>                    <name>alignment</name></param>
2310        </command>
2311        <command suffix="CL_EXT_SUFFIX__VERSION_1_2">
2312            <proto><type>void</type>                       <name>clSVMFreeARM</name></proto>
2313            <param><type>cl_context</type>                 <name>context</name></param>
2314            <param><type>void</type>*                      <name>svm_pointer</name></param>
2315        </command>
2316        <command suffix="CL_EXT_SUFFIX__VERSION_1_2">
2317            <proto><type>cl_int</type>                     <name>clEnqueueSVMFreeARM</name></proto>
2318            <param><type>cl_command_queue</type>           <name>command_queue</name></param>
2319            <param><type>cl_uint</type>                    <name>num_svm_pointers</name></param>
2320            <param><type>void</type>*                      <name>svm_pointers</name>[]</param>
2321            <param>void (CL_CALLBACK*                      <name>pfn_free_func</name>)(cl_command_queue queue, cl_uint num_svm_pointers, void * svm_pointers[], void *user_data)</param>
2322            <param><type>void</type>*                      <name>user_data</name></param>
2323            <param><type>cl_uint</type>                    <name>num_events_in_wait_list</name></param>
2324            <param>const <type>cl_event</type>*            <name>event_wait_list</name></param>
2325            <param><type>cl_event</type>*                  <name>event</name></param>
2326        </command>
2327        <command suffix="CL_EXT_SUFFIX__VERSION_1_2">
2328            <proto><type>cl_int</type>                     <name>clEnqueueSVMMemcpyARM</name></proto>
2329            <param><type>cl_command_queue</type>           <name>command_queue</name></param>
2330            <param><type>cl_bool</type>                    <name>blocking_copy</name></param>
2331            <param><type>void</type>*                      <name>dst_ptr</name></param>
2332            <param>const <type>void</type>*                <name>src_ptr</name></param>
2333            <param><type>size_t</type>                     <name>size</name></param>
2334            <param><type>cl_uint</type>                    <name>num_events_in_wait_list</name></param>
2335            <param>const <type>cl_event</type>*            <name>event_wait_list</name></param>
2336            <param><type>cl_event</type>*                  <name>event</name></param>
2337        </command>
2338        <command suffix="CL_EXT_SUFFIX__VERSION_1_2">
2339            <proto><type>cl_int</type>                     <name>clEnqueueSVMMemFillARM</name></proto>
2340            <param><type>cl_command_queue</type>           <name>command_queue</name></param>
2341            <param><type>void</type>*                      <name>svm_ptr</name></param>
2342            <param>const <type>void</type>*                <name>pattern</name></param>
2343            <param><type>size_t</type>                     <name>pattern_size</name></param>
2344            <param><type>size_t</type>                     <name>size</name></param>
2345            <param><type>cl_uint</type>                    <name>num_events_in_wait_list</name></param>
2346            <param>const <type>cl_event</type>*            <name>event_wait_list</name></param>
2347            <param><type>cl_event</type>*                  <name>event</name></param>
2348        </command>
2349        <command suffix="CL_EXT_SUFFIX__VERSION_1_2">
2350            <proto><type>cl_int</type>                     <name>clEnqueueSVMMapARM</name></proto>
2351            <param><type>cl_command_queue</type>           <name>command_queue</name></param>
2352            <param><type>cl_bool</type>                    <name>blocking_map</name></param>
2353            <param><type>cl_map_flags</type>               <name>flags</name></param>
2354            <param><type>void</type>*                      <name>svm_ptr</name></param>
2355            <param><type>size_t</type>                     <name>size</name></param>
2356            <param><type>cl_uint</type>                    <name>num_events_in_wait_list</name></param>
2357            <param>const <type>cl_event</type>*            <name>event_wait_list</name></param>
2358            <param><type>cl_event</type>*                  <name>event</name></param>
2359        </command>
2360        <command suffix="CL_EXT_SUFFIX__VERSION_1_2">
2361            <proto><type>cl_int</type>                     <name>clEnqueueSVMUnmapARM</name></proto>
2362            <param><type>cl_command_queue</type>           <name>command_queue</name></param>
2363            <param><type>void</type>*                      <name>svm_ptr</name></param>
2364            <param><type>cl_uint</type>                    <name>num_events_in_wait_list</name></param>
2365            <param>const <type>cl_event</type>*            <name>event_wait_list</name></param>
2366            <param><type>cl_event</type>*                  <name>event</name></param>
2367        </command>
2368        <command suffix="CL_EXT_SUFFIX__VERSION_1_2">
2369            <proto><type>cl_int</type>                     <name>clSetKernelArgSVMPointerARM</name></proto>
2370            <param><type>cl_kernel</type>                  <name>kernel</name></param>
2371            <param><type>cl_uint</type>                    <name>arg_index</name></param>
2372            <param>const <type>void</type>*                <name>arg_value</name></param>
2373        </command>
2374        <command suffix="CL_EXT_SUFFIX__VERSION_1_2">
2375            <proto><type>cl_int</type>                     <name>clSetKernelExecInfoARM</name></proto>
2376            <param><type>cl_kernel</type>                  <name>kernel</name></param>
2377            <param><type>cl_kernel_exec_info_arm</type>    <name>param_name</name></param>
2378            <param><type>size_t</type>                     <name>param_value_size</name></param>
2379            <param>const <type>void</type>*                <name>param_value</name></param>
2380        </command>
2381        <command suffix="CL_EXT_SUFFIX__VERSION_1_2">
2382            <proto><type>cl_accelerator_intel</type>       <name>clCreateAcceleratorINTEL</name></proto>
2383            <param><type>cl_context</type>                 <name>context</name></param>
2384            <param><type>cl_accelerator_type_intel</type>  <name>accelerator_type</name></param>
2385            <param><type>size_t</type>                     <name>descriptor_size</name></param>
2386            <param>const <type>void</type>*                <name>descriptor</name></param>
2387            <param><type>cl_int</type>*                    <name>errcode_ret</name></param>
2388        </command>
2389        <command suffix="CL_EXT_SUFFIX__VERSION_1_2">
2390            <proto><type>cl_int</type>                     <name>clGetAcceleratorInfoINTEL</name></proto>
2391            <param><type>cl_accelerator_intel</type>       <name>accelerator</name></param>
2392            <param><type>cl_accelerator_info_intel</type>  <name>param_name</name></param>
2393            <param><type>size_t</type>                     <name>param_value_size</name></param>
2394            <param><type>void</type>*                      <name>param_value</name></param>
2395            <param><type>size_t</type>*                    <name>param_value_size_ret</name></param>
2396        </command>
2397        <command suffix="CL_EXT_SUFFIX__VERSION_1_2">
2398            <proto><type>cl_int</type>                     <name>clRetainAcceleratorINTEL</name></proto>
2399            <param><type>cl_accelerator_intel</type>       <name>accelerator</name></param>
2400        </command>
2401        <command suffix="CL_EXT_SUFFIX__VERSION_1_2">
2402            <proto><type>cl_int</type>                     <name>clReleaseAcceleratorINTEL</name></proto>
2403            <param><type>cl_accelerator_intel</type>       <name>accelerator</name></param>
2404        </command>
2405        <command suffix="CL_EXT_SUFFIX__VERSION_1_1">
2406            <proto><type>cl_event</type>                   <name>clCreateEventFromGLsyncKHR</name></proto>
2407            <param><type>cl_context</type>                 <name>context</name></param>
2408            <param><type>cl_GLsync</type>                  <name>sync</name></param>
2409            <param><type>cl_int</type>*                    <name>errcode_ret</name></param>
2410        </command>
2411        <command suffix="CL_API_SUFFIX__VERSION_1_0">
2412            <proto><type>cl_int</type>                     <name>clGetGLContextInfoKHR</name></proto>
2413            <param>const <type>cl_context_properties</type>*  <name>properties</name></param>
2414            <param><type>cl_gl_context_info</type>         <name>param_name</name></param>
2415            <param><type>size_t</type>                     <name>param_value_size</name></param>
2416            <param><type>void</type>*                      <name>param_value</name></param>
2417            <param><type>size_t</type>*                    <name>param_value_size_ret</name></param>
2418        </command>
2419        <command suffix="CL_API_SUFFIX__VERSION_1_0">
2420            <proto><type>cl_mem</type>                     <name>clCreateFromGLBuffer</name></proto>
2421            <param><type>cl_context</type>                 <name>context</name></param>
2422            <param><type>cl_mem_flags</type>               <name>flags</name></param>
2423            <param><type>cl_GLuint</type>                  <name>bufobj</name></param>
2424            <param><type>int</type>*                       <name>errcode_ret</name></param>
2425        </command>
2426        <command suffix="CL_API_SUFFIX__VERSION_1_2">
2427            <proto><type>cl_mem</type>                     <name>clCreateFromGLTexture</name></proto>
2428            <param><type>cl_context</type>                 <name>context</name></param>
2429            <param><type>cl_mem_flags</type>               <name>flags</name></param>
2430            <param><type>cl_GLenum</type>                  <name>target</name></param>
2431            <param><type>cl_GLint</type>                   <name>miplevel</name></param>
2432            <param><type>cl_GLuint</type>                  <name>texture</name></param>
2433            <param><type>cl_int</type>*                    <name>errcode_ret</name></param>
2434        </command>
2435        <command suffix="CL_API_SUFFIX__VERSION_1_0">
2436            <proto><type>cl_mem</type>                     <name>clCreateFromGLRenderbuffer</name></proto>
2437            <param><type>cl_context</type>                 <name>context</name></param>
2438            <param><type>cl_mem_flags</type>               <name>flags</name></param>
2439            <param><type>cl_GLuint</type>                  <name>renderbuffer</name></param>
2440            <param><type>cl_int</type>*                    <name>errcode_ret</name></param>
2441        </command>
2442        <command suffix="CL_API_SUFFIX__VERSION_1_0">
2443            <proto><type>cl_int</type>                     <name>clGetGLObjectInfo</name></proto>
2444            <param><type>cl_mem</type>                     <name>memobj</name></param>
2445            <param><type>cl_gl_object_type</type>*         <name>gl_object_type</name></param>
2446            <param><type>cl_GLuint</type>*                 <name>gl_object_name</name></param>
2447        </command>
2448        <command suffix="CL_API_SUFFIX__VERSION_1_0">
2449            <proto><type>cl_int</type>                     <name>clGetGLTextureInfo</name></proto>
2450            <param><type>cl_mem</type>                     <name>memobj</name></param>
2451            <param><type>cl_gl_texture_info</type>         <name>param_name</name></param>
2452            <param><type>size_t</type>                     <name>param_value_size</name></param>
2453            <param><type>void</type>*                      <name>param_value</name></param>
2454            <param><type>size_t</type>*                    <name>param_value_size_ret</name></param>
2455        </command>
2456        <command suffix="CL_API_SUFFIX__VERSION_1_0">
2457            <proto><type>cl_int</type>                     <name>clEnqueueAcquireGLObjects</name></proto>
2458            <param><type>cl_command_queue</type>           <name>command_queue</name></param>
2459            <param><type>cl_uint</type>                    <name>num_objects</name></param>
2460            <param>const <type>cl_mem</type>*              <name>mem_objects</name></param>
2461            <param><type>cl_uint</type>                    <name>num_events_in_wait_list</name></param>
2462            <param>const <type>cl_event</type>*            <name>event_wait_list</name></param>
2463            <param><type>cl_event</type>*                  <name>event</name></param>
2464        </command>
2465        <command suffix="CL_API_SUFFIX__VERSION_1_0">
2466            <proto><type>cl_int</type>                     <name>clEnqueueReleaseGLObjects</name></proto>
2467            <param><type>cl_command_queue</type>           <name>command_queue</name></param>
2468            <param><type>cl_uint</type>                    <name>num_objects</name></param>
2469            <param>const <type>cl_mem</type>*              <name>mem_objects</name></param>
2470            <param><type>cl_uint</type>                    <name>num_events_in_wait_list</name></param>
2471            <param>const <type>cl_event</type>*            <name>event_wait_list</name></param>
2472            <param><type>cl_event</type>*                  <name>event</name></param>
2473        </command>
2474        <command prefix="CL_EXT_PREFIX__VERSION_1_1_DEPRECATED" suffix="CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED">
2475            <proto><type>cl_mem</type>                     <name>clCreateFromGLTexture2D</name></proto>
2476            <param><type>cl_context</type>                 <name>context</name></param>
2477            <param><type>cl_mem_flags</type>               <name>flags</name></param>
2478            <param><type>cl_GLenum</type>                  <name>target</name></param>
2479            <param><type>cl_GLint</type>                   <name>miplevel</name></param>
2480            <param><type>cl_GLuint</type>                  <name>texture</name></param>
2481            <param><type>cl_int</type>*                    <name>errcode_ret</name></param>
2482        </command>
2483        <command prefix="CL_EXT_PREFIX__VERSION_1_1_DEPRECATED" suffix="CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED">
2484            <proto><type>cl_mem</type>                     <name>clCreateFromGLTexture3D</name></proto>
2485            <param><type>cl_context</type>                 <name>context</name></param>
2486            <param><type>cl_mem_flags</type>               <name>flags</name></param>
2487            <param><type>cl_GLenum</type>                  <name>target</name></param>
2488            <param><type>cl_GLint</type>                   <name>miplevel</name></param>
2489            <param><type>cl_GLuint</type>                  <name>texture</name></param>
2490            <param><type>cl_int</type>*                    <name>errcode_ret</name></param>
2491        </command>
2492        <command suffix="CL_EXT_SUFFIX__VERSION_1_2">
2493            <proto><type>cl_int</type>                     <name>clGetDeviceIDsFromVA_APIMediaAdapterINTEL</name></proto>
2494            <param><type>cl_platform_id</type>             <name>platform</name></param>
2495            <param><type>cl_va_api_device_source_intel</type> <name>media_adapter_type</name></param>
2496            <param><type>void</type>*                      <name>media_adapter</name></param>
2497            <param><type>cl_va_api_device_set_intel</type> <name>media_adapter_set</name></param>
2498            <param><type>cl_uint</type>                    <name>num_entries</name></param>
2499            <param><type>cl_device_id</type>*              <name>devices</name></param>
2500            <param><type>cl_uint</type>*                   <name>num_devices</name></param>
2501        </command>
2502        <command suffix="CL_EXT_SUFFIX__VERSION_1_2">
2503            <proto><type>cl_mem</type>                     <name>clCreateFromVA_APIMediaSurfaceINTEL</name></proto>
2504            <param><type>cl_context</type>                 <name>context</name></param>
2505            <param><type>cl_mem_flags</type>               <name>flags</name></param>
2506            <param><type>VASurfaceID</type>*               <name>surface</name></param>
2507            <param><type>cl_uint</type>                    <name>plane</name></param>
2508            <param><type>cl_int</type>*                    <name>errcode_ret</name></param>
2509        </command>
2510        <command suffix="CL_EXT_SUFFIX__VERSION_1_2">
2511            <proto><type>cl_int</type>                     <name>clEnqueueAcquireVA_APIMediaSurfacesINTEL</name></proto>
2512            <param><type>cl_command_queue</type>           <name>command_queue</name></param>
2513            <param><type>cl_uint</type>                    <name>num_objects</name></param>
2514            <param>const <type>cl_mem</type>*              <name>mem_objects</name></param>
2515            <param><type>cl_uint</type>                    <name>num_events_in_wait_list</name></param>
2516            <param>const <type>cl_event</type>*            <name>event_wait_list</name></param>
2517            <param><type>cl_event</type>*                  <name>event</name></param>
2518        </command>
2519        <command suffix="CL_EXT_SUFFIX__VERSION_1_2">
2520            <proto><type>cl_int</type>                     <name>clEnqueueReleaseVA_APIMediaSurfacesINTEL</name></proto>
2521            <param><type>cl_command_queue</type>           <name>command_queue</name></param>
2522            <param><type>cl_uint</type>                    <name>num_objects</name></param>
2523            <param>const <type>cl_mem</type>*              <name>mem_objects</name></param>
2524            <param><type>cl_uint</type>                    <name>num_events_in_wait_list</name></param>
2525            <param>const <type>cl_event</type>*            <name>event_wait_list</name></param>
2526            <param><type>cl_event</type>*                  <name>event</name></param>
2527        </command>
2528        <command>
2529            <proto><type>void</type>*                           <name>clHostMemAllocINTEL</name></proto>
2530            <param><type>cl_context</type>                      <name>context</name></param>
2531            <param>const <type>cl_mem_properties_intel</type>*  <name>properties</name></param>
2532            <param><type>size_t</type>                          <name>size</name></param>
2533            <param><type>cl_uint</type>                         <name>alignment</name></param>
2534            <param><type>cl_int</type>*                         <name>errcode_ret</name></param>
2535        </command>
2536        <command>
2537            <proto><type>void</type>*                           <name>clDeviceMemAllocINTEL</name></proto>
2538            <param><type>cl_context</type>                      <name>context</name></param>
2539            <param><type>cl_device_id</type>                    <name>device</name></param>
2540            <param>const <type>cl_mem_properties_intel</type>*  <name>properties</name></param>
2541            <param><type>size_t</type>                          <name>size</name></param>
2542            <param><type>cl_uint</type>                         <name>alignment</name></param>
2543            <param><type>cl_int</type>*                         <name>errcode_ret</name></param>
2544        </command>
2545        <command>
2546            <proto><type>void</type>*                           <name>clSharedMemAllocINTEL</name></proto>
2547            <param><type>cl_context</type>                      <name>context</name></param>
2548            <param><type>cl_device_id</type>                    <name>device</name></param>
2549            <param>const <type>cl_mem_properties_intel</type>*  <name>properties</name></param>
2550            <param><type>size_t</type>                          <name>size</name></param>
2551            <param><type>cl_uint</type>                         <name>alignment</name></param>
2552            <param><type>cl_int</type>*                         <name>errcode_ret</name></param>
2553        </command>
2554        <command>
2555            <proto><type>cl_int</type>                          <name>clMemFreeINTEL</name></proto>
2556            <param><type>cl_context</type>                      <name>context</name></param>
2557            <param><type>void</type>*                           <name>ptr</name></param>
2558        </command>
2559        <command>
2560            <proto><type>cl_int</type>                          <name>clGetMemAllocInfoINTEL</name></proto>
2561            <param><type>cl_context</type>                      <name>context</name></param>
2562            <param>const <type>void</type>*                     <name>ptr</name></param>
2563            <param><type>cl_mem_info_intel</type>               <name>param_name</name></param>
2564            <param><type>size_t</type>                          <name>param_value_size</name></param>
2565            <param><type>void</type>*                           <name>param_value</name></param>
2566            <param><type>size_t</type>*                         <name>param_value_size_ret</name></param>
2567        </command>
2568        <command>
2569            <proto><type>cl_int</type>                          <name>clSetKernelArgMemPointerINTEL</name></proto>
2570            <param><type>cl_kernel</type>                       <name>kernel</name></param>
2571            <param><type>cl_uint</type>                         <name>arg_index</name></param>
2572            <param>const <type>void</type>*                     <name>arg_value</name></param>
2573        </command>
2574        <command comment="Deprecated">
2575            <proto><type>cl_int</type>                          <name>clEnqueueMemsetINTEL</name></proto>
2576            <param><type>cl_command_queue</type>                <name>command_queue</name></param>
2577            <param><type>void</type>*                           <name>dst_ptr</name></param>
2578            <param><type>cl_int</type>                          <name>value</name></param>
2579            <param><type>size_t</type>                          <name>size</name></param>
2580            <param><type>cl_uint</type>                         <name>num_events_in_wait_list</name></param>
2581            <param>const <type>cl_event</type>*                 <name>event_wait_list</name></param>
2582            <param><type>cl_event</type>*                       <name>event</name></param>
2583        </command>
2584        <command>
2585            <proto><type>cl_int</type>                          <name>clEnqueueMemFillINTEL</name></proto>
2586            <param><type>cl_command_queue</type>                <name>command_queue</name></param>
2587            <param><type>void</type>*                           <name>dst_ptr</name></param>
2588            <param>const <type>void</type>*                     <name>pattern</name></param>
2589            <param><type>size_t</type>                          <name>pattern_size</name></param>
2590            <param><type>size_t</type>                          <name>size</name></param>
2591            <param><type>cl_uint</type>                         <name>num_events_in_wait_list</name></param>
2592            <param>const <type>cl_event</type>*                 <name>event_wait_list</name></param>
2593            <param><type>cl_event</type>*                       <name>event</name></param>
2594        </command>
2595        <command>
2596            <proto><type>cl_int</type>                          <name>clEnqueueMemcpyINTEL</name></proto>
2597            <param><type>cl_command_queue</type>                <name>command_queue</name></param>
2598            <param><type>cl_bool</type>                         <name>blocking</name></param>
2599            <param><type>void</type>*                           <name>dst_ptr</name></param>
2600            <param>const <type>void</type>*                     <name>src_ptr</name></param>
2601            <param><type>size_t</type>                          <name>size</name></param>
2602            <param><type>cl_uint</type>                         <name>num_events_in_wait_list</name></param>
2603            <param>const <type>cl_event</type>*                 <name>event_wait_list</name></param>
2604            <param><type>cl_event</type>*                       <name>event</name></param>
2605        </command>
2606        <command>
2607            <proto><type>cl_int</type>                          <name>clEnqueueMigrateMemINTEL</name></proto>
2608            <param><type>cl_command_queue</type>                <name>command_queue</name></param>
2609            <param>const <type>void</type>*                     <name>ptr</name></param>
2610            <param><type>size_t</type>                          <name>size</name></param>
2611            <param><type>cl_mem_migration_flags</type>          <name>flags</name></param>
2612            <param><type>cl_uint</type>                         <name>num_events_in_wait_list</name></param>
2613            <param>const <type>cl_event</type>*                 <name>event_wait_list</name></param>
2614            <param><type>cl_event</type>*                       <name>event</name></param>
2615        </command>
2616        <command>
2617            <proto><type>cl_int</type>                          <name>clEnqueueMemAdviseINTEL</name></proto>
2618            <param><type>cl_command_queue</type>                <name>command_queue</name></param>
2619            <param>const <type>void</type>*                     <name>ptr</name></param>
2620            <param><type>size_t</type>                          <name>size</name></param>
2621            <param><type>cl_mem_advice_intel</type>             <name>advice</name></param>
2622            <param><type>cl_uint</type>                         <name>num_events_in_wait_list</name></param>
2623            <param>const <type>cl_event</type>*                 <name>event_wait_list</name></param>
2624            <param><type>cl_event</type>*                       <name>event</name></param>
2625        </command>
2626        <command>
2627            <proto><type>cl_mem</type>                          <name>clCreateBufferWithPropertiesINTEL</name></proto>
2628            <param><type>cl_context</type>                      <name>context</name></param>
2629            <param>const <type>cl_mem_properties_intel</type>*  <name>properties</name></param>
2630            <param><type>cl_mem_flags</type>                    <name>flags</name></param>
2631            <param><type>size_t</type>                          <name>size</name></param>
2632            <param><type>void</type>*                           <name>host_ptr</name></param>
2633            <param><type>cl_int</type>*                         <name>errcode_ret</name></param>
2634        </command>
2635        <command suffix="CL_API_SUFFIX__VERSION_1_0">
2636            <proto><type>cl_int</type>                                  <name>clGetPlatformIDs</name></proto>
2637            <param><type>cl_uint</type>                                 <name>num_entries</name></param>
2638            <param><type>cl_platform_id</type>*                         <name>platforms</name></param>
2639            <param><type>cl_uint</type>*                                <name>num_platforms</name></param>
2640        </command>
2641        <command suffix="CL_API_SUFFIX__VERSION_1_0">
2642            <proto><type>cl_int</type>                                  <name>clGetPlatformInfo</name></proto>
2643            <param><type>cl_platform_id</type>                          <name>platform</name></param>
2644            <param><type>cl_platform_info</type>                        <name>param_name</name></param>
2645            <param><type>size_t</type>                                  <name>param_value_size</name></param>
2646            <param><type>void</type>*                                   <name>param_value</name></param>
2647            <param><type>size_t</type>*                                 <name>param_value_size_ret</name></param>
2648        </command>
2649        <command suffix="CL_API_SUFFIX__VERSION_1_0">
2650            <proto><type>cl_int</type>                                  <name>clGetDeviceIDs</name></proto>
2651            <param><type>cl_platform_id</type>                          <name>platform</name></param>
2652            <param><type>cl_device_type</type>                          <name>device_type</name></param>
2653            <param><type>cl_uint</type>                                 <name>num_entries</name></param>
2654            <param><type>cl_device_id</type>*                           <name>devices</name></param>
2655            <param><type>cl_uint</type>*                                <name>num_devices</name></param>
2656        </command>
2657        <command suffix="CL_API_SUFFIX__VERSION_1_0">
2658            <proto><type>cl_int</type>                                  <name>clGetDeviceInfo</name></proto>
2659            <param><type>cl_device_id</type>                            <name>device</name></param>
2660            <param><type>cl_device_info</type>                          <name>param_name</name></param>
2661            <param><type>size_t</type>                                  <name>param_value_size</name></param>
2662            <param><type>void</type>*                                   <name>param_value</name></param>
2663            <param><type>size_t</type>*                                 <name>param_value_size_ret</name></param>
2664        </command>
2665        <command suffix="CL_API_SUFFIX__VERSION_1_2">
2666            <proto><type>cl_int</type>                                  <name>clCreateSubDevices</name></proto>
2667            <param><type>cl_device_id</type>                            <name>in_device</name></param>
2668            <param>const <type>cl_device_partition_property</type>*     <name>properties</name></param>
2669            <param><type>cl_uint</type>                                 <name>num_devices</name></param>
2670            <param><type>cl_device_id</type>*                           <name>out_devices</name></param>
2671            <param><type>cl_uint</type>*                                <name>num_devices_ret</name></param>
2672        </command>
2673        <command suffix="CL_API_SUFFIX__VERSION_1_2">
2674            <proto><type>cl_int</type>                                  <name>clRetainDevice</name></proto>
2675            <param><type>cl_device_id</type>                            <name>device</name></param>
2676        </command>
2677        <command suffix="CL_API_SUFFIX__VERSION_1_2">
2678            <proto><type>cl_int</type>                                  <name>clReleaseDevice</name></proto>
2679            <param><type>cl_device_id</type>                            <name>device</name></param>
2680        </command>
2681        <command suffix="CL_API_SUFFIX__VERSION_2_1">
2682            <proto><type>cl_int</type>                                  <name>clSetDefaultDeviceCommandQueue</name></proto>
2683            <param><type>cl_context</type>                              <name>context</name></param>
2684            <param><type>cl_device_id</type>                            <name>device</name></param>
2685            <param><type>cl_command_queue</type>                        <name>command_queue</name></param>
2686        </command>
2687        <command suffix="CL_API_SUFFIX__VERSION_2_1">
2688            <proto><type>cl_int</type>                                  <name>clGetDeviceAndHostTimer</name></proto>
2689            <param><type>cl_device_id</type>                            <name>device</name></param>
2690            <param><type>cl_ulong</type>*                               <name>device_timestamp</name></param>
2691            <param><type>cl_ulong</type>*                               <name>host_timestamp</name></param>
2692        </command>
2693        <command suffix="CL_API_SUFFIX__VERSION_2_1">
2694            <proto><type>cl_int</type>                                  <name>clGetHostTimer</name></proto>
2695            <param><type>cl_device_id</type>                            <name>device</name></param>
2696            <param><type>cl_ulong</type>*                               <name>host_timestamp</name></param>
2697        </command>
2698        <command suffix="CL_API_SUFFIX__VERSION_1_0">
2699            <proto><type>cl_context</type>                              <name>clCreateContext</name></proto>
2700            <param>const <type>cl_context_properties</type>*            <name>properties</name></param>
2701            <param><type>cl_uint</type>                                 <name>num_devices</name></param>
2702            <param>const <type>cl_device_id</type>*                     <name>devices</name></param>
2703            <param>void (CL_CALLBACK*                                   <name>pfn_notify</name>)(const char* errinfo, const void* private_info, size_t cb, void* user_data)</param>
2704            <param><type>void</type>*                                   <name>user_data</name></param>
2705            <param><type>cl_int</type>*                                 <name>errcode_ret</name></param>
2706        </command>
2707        <command suffix="CL_API_SUFFIX__VERSION_1_0">
2708            <proto><type>cl_context</type>                              <name>clCreateContextFromType</name></proto>
2709            <param>const <type>cl_context_properties</type>*            <name>properties</name></param>
2710            <param><type>cl_device_type</type>                          <name>device_type</name></param>
2711            <param>void (CL_CALLBACK*                                   <name>pfn_notify</name>)(const char* errinfo, const void* private_info, size_t cb, void* user_data)</param>
2712            <param><type>void</type>*                                   <name>user_data</name></param>
2713            <param><type>cl_int</type>*                                 <name>errcode_ret</name></param>
2714        </command>
2715        <command suffix="CL_API_SUFFIX__VERSION_1_0">
2716            <proto><type>cl_int</type>                                  <name>clRetainContext</name></proto>
2717            <param><type>cl_context</type>                              <name>context</name></param>
2718        </command>
2719        <command suffix="CL_API_SUFFIX__VERSION_1_0">
2720            <proto><type>cl_int</type>                                  <name>clReleaseContext</name></proto>
2721            <param><type>cl_context</type>                              <name>context</name></param>
2722        </command>
2723        <command suffix="CL_API_SUFFIX__VERSION_1_0">
2724            <proto><type>cl_int</type>                                  <name>clGetContextInfo</name></proto>
2725            <param><type>cl_context</type>                              <name>context</name></param>
2726            <param><type>cl_context_info</type>                         <name>param_name</name></param>
2727            <param><type>size_t</type>                                  <name>param_value_size</name></param>
2728            <param><type>void</type>*                                   <name>param_value</name></param>
2729            <param><type>size_t</type>*                                 <name>param_value_size_ret</name></param>
2730        </command>
2731        <command suffix="CL_API_SUFFIX__VERSION_3_0">
2732            <proto><type>cl_int</type>                                  <name>clSetContextDestructorCallback</name></proto>
2733            <param><type>cl_context</type>                              <name>context</name></param>
2734            <param>void (CL_CALLBACK*                                   <name>pfn_notify</name>)(cl_context context, void* user_data)</param>
2735            <param><type>void</type>*                                   <name>user_data</name></param>
2736        </command>
2737        <command suffix="CL_API_SUFFIX__VERSION_2_0">
2738            <proto><type>cl_command_queue</type>                        <name>clCreateCommandQueueWithProperties</name></proto>
2739            <param><type>cl_context</type>                              <name>context</name></param>
2740            <param><type>cl_device_id</type>                            <name>device</name></param>
2741            <param>const <type>cl_queue_properties</type>*              <name>properties</name></param>
2742            <param><type>cl_int</type>*                                 <name>errcode_ret</name></param>
2743        </command>
2744        <command suffix="CL_API_SUFFIX__VERSION_1_0">
2745            <proto><type>cl_int</type>                                  <name>clRetainCommandQueue</name></proto>
2746            <param><type>cl_command_queue</type>                        <name>command_queue</name></param>
2747        </command>
2748        <command suffix="CL_API_SUFFIX__VERSION_1_0">
2749            <proto><type>cl_int</type>                                  <name>clReleaseCommandQueue</name></proto>
2750            <param><type>cl_command_queue</type>                        <name>command_queue</name></param>
2751        </command>
2752        <command suffix="CL_API_SUFFIX__VERSION_1_0">
2753            <proto><type>cl_int</type>                                  <name>clGetCommandQueueInfo</name></proto>
2754            <param><type>cl_command_queue</type>                        <name>command_queue</name></param>
2755            <param><type>cl_command_queue_info</type>                   <name>param_name</name></param>
2756            <param><type>size_t</type>                                  <name>param_value_size</name></param>
2757            <param><type>void</type>*                                   <name>param_value</name></param>
2758            <param><type>size_t</type>*                                 <name>param_value_size_ret</name></param>
2759        </command>
2760        <command suffix="CL_API_SUFFIX__VERSION_1_0">
2761            <proto><type>cl_mem</type>                                  <name>clCreateBuffer</name></proto>
2762            <param><type>cl_context</type>                              <name>context</name></param>
2763            <param><type>cl_mem_flags</type>                            <name>flags</name></param>
2764            <param><type>size_t</type>                                  <name>size</name></param>
2765            <param><type>void</type>*                                   <name>host_ptr</name></param>
2766            <param><type>cl_int</type>*                                 <name>errcode_ret</name></param>
2767        </command>
2768        <command suffix="CL_API_SUFFIX__VERSION_3_0">
2769            <proto><type>cl_mem</type>                                  <name>clCreateBufferWithProperties</name></proto>
2770            <param><type>cl_context</type>                              <name>context</name></param>
2771            <param>const <type>cl_mem_properties</type>*                <name>properties</name></param>
2772            <param><type>cl_mem_flags</type>                            <name>flags</name></param>
2773            <param><type>size_t</type>                                  <name>size</name></param>
2774            <param><type>void</type>*                                   <name>host_ptr</name></param>
2775            <param><type>cl_int</type>*                                 <name>errcode_ret</name></param>
2776        </command>
2777        <command suffix="CL_API_SUFFIX__VERSION_1_1">
2778            <proto><type>cl_mem</type>                                  <name>clCreateSubBuffer</name></proto>
2779            <param><type>cl_mem</type>                                  <name>buffer</name></param>
2780            <param><type>cl_mem_flags</type>                            <name>flags</name></param>
2781            <param><type>cl_buffer_create_type</type>                   <name>buffer_create_type</name></param>
2782            <param>const <type>void</type>*                             <name>buffer_create_info</name></param>
2783            <param><type>cl_int</type>*                                 <name>errcode_ret</name></param>
2784        </command>
2785        <command suffix="CL_API_SUFFIX__VERSION_1_2">
2786            <proto><type>cl_mem</type>                                  <name>clCreateImage</name></proto>
2787            <param><type>cl_context</type>                              <name>context</name></param>
2788            <param><type>cl_mem_flags</type>                            <name>flags</name></param>
2789            <param>const <type>cl_image_format</type>*                  <name>image_format</name></param>
2790            <param>const <type>cl_image_desc</type>*                    <name>image_desc</name></param>
2791            <param><type>void</type>*                                   <name>host_ptr</name></param>
2792            <param><type>cl_int</type>*                                 <name>errcode_ret</name></param>
2793        </command>
2794        <command suffix="CL_API_SUFFIX__VERSION_3_0">
2795            <proto><type>cl_mem</type>                                  <name>clCreateImageWithProperties</name></proto>
2796            <param><type>cl_context</type>                              <name>context</name></param>
2797            <param>const <type>cl_mem_properties</type>*                <name>properties</name></param>
2798            <param><type>cl_mem_flags</type>                            <name>flags</name></param>
2799            <param>const <type>cl_image_format</type>*                  <name>image_format</name></param>
2800            <param>const <type>cl_image_desc</type>*                    <name>image_desc</name></param>
2801            <param><type>void</type>*                                   <name>host_ptr</name></param>
2802            <param><type>cl_int</type>*                                 <name>errcode_ret</name></param>
2803        </command>
2804        <command suffix="CL_API_SUFFIX__VERSION_2_0">
2805            <proto><type>cl_mem</type>                                  <name>clCreatePipe</name></proto>
2806            <param><type>cl_context</type>                              <name>context</name></param>
2807            <param><type>cl_mem_flags</type>                            <name>flags</name></param>
2808            <param><type>cl_uint</type>                                 <name>pipe_packet_size</name></param>
2809            <param><type>cl_uint</type>                                 <name>pipe_max_packets</name></param>
2810            <param>const <type>cl_pipe_properties</type>*               <name>properties</name></param>
2811            <param><type>cl_int</type>*                                 <name>errcode_ret</name></param>
2812        </command>
2813        <command suffix="CL_API_SUFFIX__VERSION_1_0">
2814            <proto><type>cl_int</type>                                  <name>clRetainMemObject</name></proto>
2815            <param><type>cl_mem</type>                                  <name>memobj</name></param>
2816        </command>
2817        <command suffix="CL_API_SUFFIX__VERSION_1_0">
2818            <proto><type>cl_int</type>                                  <name>clReleaseMemObject</name></proto>
2819            <param><type>cl_mem</type>                                  <name>memobj</name></param>
2820        </command>
2821        <command suffix="CL_API_SUFFIX__VERSION_1_0">
2822            <proto><type>cl_int</type>                                  <name>clGetSupportedImageFormats</name></proto>
2823            <param><type>cl_context</type>                              <name>context</name></param>
2824            <param><type>cl_mem_flags</type>                            <name>flags</name></param>
2825            <param><type>cl_mem_object_type</type>                      <name>image_type</name></param>
2826            <param><type>cl_uint</type>                                 <name>num_entries</name></param>
2827            <param><type>cl_image_format</type>*                        <name>image_formats</name></param>
2828            <param><type>cl_uint</type>*                                <name>num_image_formats</name></param>
2829        </command>
2830        <command suffix="CL_API_SUFFIX__VERSION_1_0">
2831            <proto><type>cl_int</type>                                  <name>clGetMemObjectInfo</name></proto>
2832            <param><type>cl_mem</type>                                  <name>memobj</name></param>
2833            <param><type>cl_mem_info</type>                             <name>param_name</name></param>
2834            <param><type>size_t</type>                                  <name>param_value_size</name></param>
2835            <param><type>void</type>*                                   <name>param_value</name></param>
2836            <param><type>size_t</type>*                                 <name>param_value_size_ret</name></param>
2837        </command>
2838        <command suffix="CL_API_SUFFIX__VERSION_1_0">
2839            <proto><type>cl_int</type>                                  <name>clGetImageInfo</name></proto>
2840            <param><type>cl_mem</type>                                  <name>image</name></param>
2841            <param><type>cl_image_info</type>                           <name>param_name</name></param>
2842            <param><type>size_t</type>                                  <name>param_value_size</name></param>
2843            <param><type>void</type>*                                   <name>param_value</name></param>
2844            <param><type>size_t</type>*                                 <name>param_value_size_ret</name></param>
2845        </command>
2846        <command suffix="CL_API_SUFFIX__VERSION_2_0">
2847            <proto><type>cl_int</type>                                  <name>clGetPipeInfo</name></proto>
2848            <param><type>cl_mem</type>                                  <name>pipe</name></param>
2849            <param><type>cl_pipe_info</type>                            <name>param_name</name></param>
2850            <param><type>size_t</type>                                  <name>param_value_size</name></param>
2851            <param><type>void</type>*                                   <name>param_value</name></param>
2852            <param><type>size_t</type>*                                 <name>param_value_size_ret</name></param>
2853        </command>
2854        <command suffix="CL_API_SUFFIX__VERSION_1_1">
2855            <proto><type>cl_int</type>                                  <name>clSetMemObjectDestructorCallback</name></proto>
2856            <param><type>cl_mem</type>                                  <name>memobj</name></param>
2857            <param>void (CL_CALLBACK*                                   <name>pfn_notify</name>)(cl_mem memobj, void* user_data)</param>
2858            <param><type>void</type>*                                   <name>user_data</name></param>
2859        </command>
2860        <command suffix="CL_EXT_SUFFIX__VERSION_1_0">
2861            <proto><type>cl_int</type>                                  <name>clSetMemObjectDestructorAPPLE</name></proto>
2862            <param><type>cl_mem</type>                                  <name>memobj</name></param>
2863            <param>void (CL_CALLBACK*                                   <name>pfn_notify</name>)(cl_mem memobj, void* user_data)</param>
2864            <param><type>void</type>*                                   <name>user_data</name></param>
2865        </command>
2866        <command suffix="CL_API_SUFFIX__VERSION_2_0">
2867            <proto><type>void</type>*                                   <name>clSVMAlloc</name></proto>
2868            <param><type>cl_context</type>                              <name>context</name></param>
2869            <param><type>cl_svm_mem_flags</type>                        <name>flags</name></param>
2870            <param><type>size_t</type>                                  <name>size</name></param>
2871            <param><type>cl_uint</type>                                 <name>alignment</name></param>
2872        </command>
2873        <command suffix="CL_API_SUFFIX__VERSION_2_0">
2874            <proto><type>void</type>                                    <name>clSVMFree</name></proto>
2875            <param><type>cl_context</type>                              <name>context</name></param>
2876            <param><type>void</type>*                                   <name>svm_pointer</name></param>
2877        </command>
2878        <command suffix="CL_API_SUFFIX__VERSION_2_0">
2879            <proto><type>cl_sampler</type>                              <name>clCreateSamplerWithProperties</name></proto>
2880            <param><type>cl_context</type>                              <name>context</name></param>
2881            <param>const <type>cl_sampler_properties</type>*            <name>sampler_properties</name></param>
2882            <param><type>cl_int</type>*                                 <name>errcode_ret</name></param>
2883        </command>
2884        <command suffix="CL_API_SUFFIX__VERSION_1_0">
2885            <proto><type>cl_int</type>                                  <name>clRetainSampler</name></proto>
2886            <param><type>cl_sampler</type>                              <name>sampler</name></param>
2887        </command>
2888        <command suffix="CL_API_SUFFIX__VERSION_1_0">
2889            <proto><type>cl_int</type>                                  <name>clReleaseSampler</name></proto>
2890            <param><type>cl_sampler</type>                              <name>sampler</name></param>
2891        </command>
2892        <command suffix="CL_API_SUFFIX__VERSION_1_0">
2893            <proto><type>cl_int</type>                                  <name>clGetSamplerInfo</name></proto>
2894            <param><type>cl_sampler</type>                              <name>sampler</name></param>
2895            <param><type>cl_sampler_info</type>                         <name>param_name</name></param>
2896            <param><type>size_t</type>                                  <name>param_value_size</name></param>
2897            <param><type>void</type>*                                   <name>param_value</name></param>
2898            <param><type>size_t</type>*                                 <name>param_value_size_ret</name></param>
2899        </command>
2900        <command suffix="CL_API_SUFFIX__VERSION_1_0">
2901            <proto><type>cl_program</type>                              <name>clCreateProgramWithSource</name></proto>
2902            <param><type>cl_context</type>                              <name>context</name></param>
2903            <param><type>cl_uint</type>                                 <name>count</name></param>
2904            <param>const <type>char</type>**                            <name>strings</name></param>
2905            <param>const <type>size_t</type>*                           <name>lengths</name></param>
2906            <param><type>cl_int</type>*                                 <name>errcode_ret</name></param>
2907        </command>
2908        <command suffix="CL_API_SUFFIX__VERSION_1_0">
2909            <proto><type>cl_program</type>                              <name>clCreateProgramWithBinary</name></proto>
2910            <param><type>cl_context</type>                              <name>context</name></param>
2911            <param><type>cl_uint</type>                                 <name>num_devices</name></param>
2912            <param>const <type>cl_device_id</type>*                     <name>device_list</name></param>
2913            <param>const <type>size_t</type>*                           <name>lengths</name></param>
2914            <param>const <type>unsigned char</type>**                   <name>binaries</name></param>
2915            <param><type>cl_int</type>*                                 <name>binary_status</name></param>
2916            <param><type>cl_int</type>*                                 <name>errcode_ret</name></param>
2917        </command>
2918        <command suffix="CL_API_SUFFIX__VERSION_1_2">
2919            <proto><type>cl_program</type>                              <name>clCreateProgramWithBuiltInKernels</name></proto>
2920            <param><type>cl_context</type>                              <name>context</name></param>
2921            <param><type>cl_uint</type>                                 <name>num_devices</name></param>
2922            <param>const <type>cl_device_id</type>*                     <name>device_list</name></param>
2923            <param>const <type>char</type>*                             <name>kernel_names</name></param>
2924            <param><type>cl_int</type>*                                 <name>errcode_ret</name></param>
2925        </command>
2926        <command suffix="CL_API_SUFFIX__VERSION_2_1">
2927            <proto><type>cl_program</type>                              <name>clCreateProgramWithIL</name></proto>
2928            <param><type>cl_context</type>                              <name>context</name></param>
2929            <param>const <type>void</type>*                             <name>il</name></param>
2930            <param><type>size_t</type>                                  <name>length</name></param>
2931            <param><type>cl_int</type>*                                 <name>errcode_ret</name></param>
2932        </command>
2933        <command suffix="CL_API_SUFFIX__VERSION_1_0">
2934            <proto><type>cl_int</type>                                  <name>clRetainProgram</name></proto>
2935            <param><type>cl_program</type>                              <name>program</name></param>
2936        </command>
2937        <command suffix="CL_API_SUFFIX__VERSION_1_0">
2938            <proto><type>cl_int</type>                                  <name>clReleaseProgram</name></proto>
2939            <param><type>cl_program</type>                              <name>program</name></param>
2940        </command>
2941        <command suffix="CL_API_SUFFIX__VERSION_1_0">
2942            <proto><type>cl_int</type>                                  <name>clBuildProgram</name></proto>
2943            <param><type>cl_program</type>                              <name>program</name></param>
2944            <param><type>cl_uint</type>                                 <name>num_devices</name></param>
2945            <param>const <type>cl_device_id</type>*                     <name>device_list</name></param>
2946            <param>const <type>char</type>*                             <name>options</name></param>
2947            <param>void (CL_CALLBACK*                                   <name>pfn_notify</name>)(cl_program program, void* user_data)</param>
2948            <param><type>void</type>*                                   <name>user_data</name></param>
2949        </command>
2950        <command suffix="CL_API_SUFFIX__VERSION_1_2">
2951            <proto><type>cl_int</type>                                  <name>clCompileProgram</name></proto>
2952            <param><type>cl_program</type>                              <name>program</name></param>
2953            <param><type>cl_uint</type>                                 <name>num_devices</name></param>
2954            <param>const <type>cl_device_id</type>*                     <name>device_list</name></param>
2955            <param>const <type>char</type>*                             <name>options</name></param>
2956            <param><type>cl_uint</type>                                 <name>num_input_headers</name></param>
2957            <param>const <type>cl_program</type>*                       <name>input_headers</name></param>
2958            <param>const <type>char</type>**                            <name>header_include_names</name></param>
2959            <param>void (CL_CALLBACK*                                   <name>pfn_notify</name>)(cl_program program, void* user_data)</param>
2960            <param><type>void</type>*                                   <name>user_data</name></param>
2961        </command>
2962        <command suffix="CL_API_SUFFIX__VERSION_1_2">
2963            <proto><type>cl_program</type>                              <name>clLinkProgram</name></proto>
2964            <param><type>cl_context</type>                              <name>context</name></param>
2965            <param><type>cl_uint</type>                                 <name>num_devices</name></param>
2966            <param>const <type>cl_device_id</type>*                     <name>device_list</name></param>
2967            <param>const <type>char</type>*                             <name>options</name></param>
2968            <param><type>cl_uint</type>                                 <name>num_input_programs</name></param>
2969            <param>const <type>cl_program</type>*                       <name>input_programs</name></param>
2970            <param>void (CL_CALLBACK*                                   <name>pfn_notify</name>)(cl_program program, void* user_data)</param>
2971            <param><type>void</type>*                                   <name>user_data</name></param>
2972            <param><type>cl_int</type>*                                 <name>errcode_ret</name></param>
2973        </command>
2974        <command prefix="CL_EXT_PREFIX__VERSION_2_2_DEPRECATED" suffix="CL_EXT_SUFFIX__VERSION_2_2_DEPRECATED">
2975            <proto><type>cl_int</type>                                  <name>clSetProgramReleaseCallback</name></proto>
2976            <param><type>cl_program</type>                              <name>program</name></param>
2977            <param>void (CL_CALLBACK*                                   <name>pfn_notify</name>)(cl_program program, void* user_data)</param>
2978            <param><type>void</type>*                                   <name>user_data</name></param>
2979        </command>
2980        <command suffix="CL_API_SUFFIX__VERSION_2_2">
2981            <proto><type>cl_int</type>                                  <name>clSetProgramSpecializationConstant</name></proto>
2982            <param><type>cl_program</type>                              <name>program</name></param>
2983            <param><type>cl_uint</type>                                 <name>spec_id</name></param>
2984            <param><type>size_t</type>                                  <name>spec_size</name></param>
2985            <param>const <type>void</type>*                             <name>spec_value</name></param>
2986        </command>
2987        <command suffix="CL_API_SUFFIX__VERSION_1_2">
2988            <proto><type>cl_int</type>                                  <name>clUnloadPlatformCompiler</name></proto>
2989            <param><type>cl_platform_id</type>                          <name>platform</name></param>
2990        </command>
2991        <command suffix="CL_API_SUFFIX__VERSION_1_0">
2992            <proto><type>cl_int</type>                                  <name>clGetProgramInfo</name></proto>
2993            <param><type>cl_program</type>                              <name>program</name></param>
2994            <param><type>cl_program_info</type>                         <name>param_name</name></param>
2995            <param><type>size_t</type>                                  <name>param_value_size</name></param>
2996            <param><type>void</type>*                                   <name>param_value</name></param>
2997            <param><type>size_t</type>*                                 <name>param_value_size_ret</name></param>
2998        </command>
2999        <command suffix="CL_API_SUFFIX__VERSION_1_0">
3000            <proto><type>cl_int</type>                                  <name>clGetProgramBuildInfo</name></proto>
3001            <param><type>cl_program</type>                              <name>program</name></param>
3002            <param><type>cl_device_id</type>                            <name>device</name></param>
3003            <param><type>cl_program_build_info</type>                   <name>param_name</name></param>
3004            <param><type>size_t</type>                                  <name>param_value_size</name></param>
3005            <param><type>void</type>*                                   <name>param_value</name></param>
3006            <param><type>size_t</type>*                                 <name>param_value_size_ret</name></param>
3007        </command>
3008        <command suffix="CL_API_SUFFIX__VERSION_1_0">
3009            <proto><type>cl_kernel</type>                               <name>clCreateKernel</name></proto>
3010            <param><type>cl_program</type>                              <name>program</name></param>
3011            <param>const <type>char</type>*                             <name>kernel_name</name></param>
3012            <param><type>cl_int</type>*                                 <name>errcode_ret</name></param>
3013        </command>
3014        <command suffix="CL_API_SUFFIX__VERSION_1_0">
3015            <proto><type>cl_int</type>                                  <name>clCreateKernelsInProgram</name></proto>
3016            <param><type>cl_program</type>                              <name>program</name></param>
3017            <param><type>cl_uint</type>                                 <name>num_kernels</name></param>
3018            <param><type>cl_kernel</type>*                              <name>kernels</name></param>
3019            <param><type>cl_uint</type>*                                <name>num_kernels_ret</name></param>
3020        </command>
3021        <command suffix="CL_API_SUFFIX__VERSION_2_1">
3022            <proto><type>cl_kernel</type>                               <name>clCloneKernel</name></proto>
3023            <param><type>cl_kernel</type>                               <name>source_kernel</name></param>
3024            <param><type>cl_int</type>*                                 <name>errcode_ret</name></param>
3025        </command>
3026        <command suffix="CL_API_SUFFIX__VERSION_1_0">
3027            <proto><type>cl_int</type>                                  <name>clRetainKernel</name></proto>
3028            <param><type>cl_kernel</type>                               <name>kernel</name></param>
3029        </command>
3030        <command suffix="CL_API_SUFFIX__VERSION_1_0">
3031            <proto><type>cl_int</type>                                  <name>clReleaseKernel</name></proto>
3032            <param><type>cl_kernel</type>                               <name>kernel</name></param>
3033        </command>
3034        <command suffix="CL_API_SUFFIX__VERSION_1_0">
3035            <proto><type>cl_int</type>                                  <name>clSetKernelArg</name></proto>
3036            <param><type>cl_kernel</type>                               <name>kernel</name></param>
3037            <param><type>cl_uint</type>                                 <name>arg_index</name></param>
3038            <param><type>size_t</type>                                  <name>arg_size</name></param>
3039            <param>const <type>void</type>*                             <name>arg_value</name></param>
3040        </command>
3041        <command suffix="CL_API_SUFFIX__VERSION_2_0">
3042            <proto><type>cl_int</type>                                  <name>clSetKernelArgSVMPointer</name></proto>
3043            <param><type>cl_kernel</type>                               <name>kernel</name></param>
3044            <param><type>cl_uint</type>                                 <name>arg_index</name></param>
3045            <param>const <type>void</type>*                             <name>arg_value</name></param>
3046        </command>
3047        <command suffix="CL_API_SUFFIX__VERSION_2_0">
3048            <proto><type>cl_int</type>                                  <name>clSetKernelExecInfo</name></proto>
3049            <param><type>cl_kernel</type>                               <name>kernel</name></param>
3050            <param><type>cl_kernel_exec_info</type>                     <name>param_name</name></param>
3051            <param><type>size_t</type>                                  <name>param_value_size</name></param>
3052            <param>const <type>void</type>*                             <name>param_value</name></param>
3053        </command>
3054        <command suffix="CL_API_SUFFIX__VERSION_1_0">
3055            <proto><type>cl_int</type>                                  <name>clGetKernelInfo</name></proto>
3056            <param><type>cl_kernel</type>                               <name>kernel</name></param>
3057            <param><type>cl_kernel_info</type>                          <name>param_name</name></param>
3058            <param><type>size_t</type>                                  <name>param_value_size</name></param>
3059            <param><type>void</type>*                                   <name>param_value</name></param>
3060            <param><type>size_t</type>*                                 <name>param_value_size_ret</name></param>
3061        </command>
3062        <command suffix="CL_API_SUFFIX__VERSION_1_2">
3063            <proto><type>cl_int</type>                                  <name>clGetKernelArgInfo</name></proto>
3064            <param><type>cl_kernel</type>                               <name>kernel</name></param>
3065            <param><type>cl_uint</type>                                 <name>arg_index</name></param>
3066            <param><type>cl_kernel_arg_info</type>                      <name>param_name</name></param>
3067            <param><type>size_t</type>                                  <name>param_value_size</name></param>
3068            <param><type>void</type>*                                   <name>param_value</name></param>
3069            <param><type>size_t</type>*                                 <name>param_value_size_ret</name></param>
3070        </command>
3071        <command suffix="CL_API_SUFFIX__VERSION_1_0">
3072            <proto><type>cl_int</type>                                  <name>clGetKernelWorkGroupInfo</name></proto>
3073            <param><type>cl_kernel</type>                               <name>kernel</name></param>
3074            <param><type>cl_device_id</type>                            <name>device</name></param>
3075            <param><type>cl_kernel_work_group_info</type>               <name>param_name</name></param>
3076            <param><type>size_t</type>                                  <name>param_value_size</name></param>
3077            <param><type>void</type>*                                   <name>param_value</name></param>
3078            <param><type>size_t</type>*                                 <name>param_value_size_ret</name></param>
3079        </command>
3080        <command suffix="CL_API_SUFFIX__VERSION_2_1">
3081            <proto><type>cl_int</type>                                  <name>clGetKernelSubGroupInfo</name></proto>
3082            <param><type>cl_kernel</type>                               <name>kernel</name></param>
3083            <param><type>cl_device_id</type>                            <name>device</name></param>
3084            <param><type>cl_kernel_sub_group_info</type>                <name>param_name</name></param>
3085            <param><type>size_t</type>                                  <name>input_value_size</name></param>
3086            <param>const <type>void</type>*                             <name>input_value</name></param>
3087            <param><type>size_t</type>                                  <name>param_value_size</name></param>
3088            <param><type>void</type>*                                   <name>param_value</name></param>
3089            <param><type>size_t</type>*                                 <name>param_value_size_ret</name></param>
3090        </command>
3091        <command suffix="CL_API_SUFFIX__VERSION_1_0">
3092            <proto><type>cl_int</type>                                  <name>clWaitForEvents</name></proto>
3093            <param><type>cl_uint</type>                                 <name>num_events</name></param>
3094            <param>const <type>cl_event</type>*                         <name>event_list</name></param>
3095        </command>
3096        <command suffix="CL_API_SUFFIX__VERSION_1_0">
3097            <proto><type>cl_int</type>                                  <name>clGetEventInfo</name></proto>
3098            <param><type>cl_event</type>                                <name>event</name></param>
3099            <param><type>cl_event_info</type>                           <name>param_name</name></param>
3100            <param><type>size_t</type>                                  <name>param_value_size</name></param>
3101            <param><type>void</type>*                                   <name>param_value</name></param>
3102            <param><type>size_t</type>*                                 <name>param_value_size_ret</name></param>
3103        </command>
3104        <command suffix="CL_API_SUFFIX__VERSION_1_1">
3105            <proto><type>cl_event</type>                                <name>clCreateUserEvent</name></proto>
3106            <param><type>cl_context</type>                              <name>context</name></param>
3107            <param><type>cl_int</type>*                                 <name>errcode_ret</name></param>
3108        </command>
3109        <command suffix="CL_API_SUFFIX__VERSION_1_0">
3110            <proto><type>cl_int</type>                                  <name>clRetainEvent</name></proto>
3111            <param><type>cl_event</type>                                <name>event</name></param>
3112        </command>
3113        <command suffix="CL_API_SUFFIX__VERSION_1_0">
3114            <proto><type>cl_int</type>                                  <name>clReleaseEvent</name></proto>
3115            <param><type>cl_event</type>                                <name>event</name></param>
3116        </command>
3117        <command suffix="CL_API_SUFFIX__VERSION_1_1">
3118            <proto><type>cl_int</type>                                  <name>clSetUserEventStatus</name></proto>
3119            <param><type>cl_event</type>                                <name>event</name></param>
3120            <param><type>cl_int</type>                                  <name>execution_status</name></param>
3121        </command>
3122        <command suffix="CL_API_SUFFIX__VERSION_1_1">
3123            <proto><type>cl_int</type>                                  <name>clSetEventCallback</name></proto>
3124            <param><type>cl_event</type>                                <name>event</name></param>
3125            <param><type>cl_int</type>                                  <name>command_exec_callback_type</name></param>
3126            <param>void (CL_CALLBACK*                                   <name>pfn_notify</name>)(cl_event event, cl_int event_command_status, void *user_data)</param>
3127            <param><type>void</type>*                                   <name>user_data</name></param>
3128        </command>
3129        <command suffix="CL_API_SUFFIX__VERSION_1_0">
3130            <proto><type>cl_int</type>                                  <name>clGetEventProfilingInfo</name></proto>
3131            <param><type>cl_event</type>                                <name>event</name></param>
3132            <param><type>cl_profiling_info</type>                       <name>param_name</name></param>
3133            <param><type>size_t</type>                                  <name>param_value_size</name></param>
3134            <param><type>void</type>*                                   <name>param_value</name></param>
3135            <param><type>size_t</type>*                                 <name>param_value_size_ret</name></param>
3136        </command>
3137        <command suffix="CL_API_SUFFIX__VERSION_1_0">
3138            <proto><type>cl_int</type>                                  <name>clFlush</name></proto>
3139            <param><type>cl_command_queue</type>                        <name>command_queue</name></param>
3140        </command>
3141        <command suffix="CL_API_SUFFIX__VERSION_1_0">
3142            <proto><type>cl_int</type>                                  <name>clFinish</name></proto>
3143            <param><type>cl_command_queue</type>                        <name>command_queue</name></param>
3144        </command>
3145        <command suffix="CL_API_SUFFIX__VERSION_1_0">
3146            <proto><type>cl_int</type>                                  <name>clEnqueueReadBuffer</name></proto>
3147            <param><type>cl_command_queue</type>                        <name>command_queue</name></param>
3148            <param><type>cl_mem</type>                                  <name>buffer</name></param>
3149            <param><type>cl_bool</type>                                 <name>blocking_read</name></param>
3150            <param><type>size_t</type>                                  <name>offset</name></param>
3151            <param><type>size_t</type>                                  <name>size</name></param>
3152            <param><type>void</type>*                                   <name>ptr</name></param>
3153            <param><type>cl_uint</type>                                 <name>num_events_in_wait_list</name></param>
3154            <param>const <type>cl_event</type>*                         <name>event_wait_list</name></param>
3155            <param><type>cl_event</type>*                               <name>event</name></param>
3156        </command>
3157        <command suffix="CL_API_SUFFIX__VERSION_1_1">
3158            <proto><type>cl_int</type>                                  <name>clEnqueueReadBufferRect</name></proto>
3159            <param><type>cl_command_queue</type>                        <name>command_queue</name></param>
3160            <param><type>cl_mem</type>                                  <name>buffer</name></param>
3161            <param><type>cl_bool</type>                                 <name>blocking_read</name></param>
3162            <param>const <type>size_t</type>*                           <name>buffer_origin</name></param>
3163            <param>const <type>size_t</type>*                           <name>host_origin</name></param>
3164            <param>const <type>size_t</type>*                           <name>region</name></param>
3165            <param><type>size_t</type>                                  <name>buffer_row_pitch</name></param>
3166            <param><type>size_t</type>                                  <name>buffer_slice_pitch</name></param>
3167            <param><type>size_t</type>                                  <name>host_row_pitch</name></param>
3168            <param><type>size_t</type>                                  <name>host_slice_pitch</name></param>
3169            <param><type>void</type>*                                   <name>ptr</name></param>
3170            <param><type>cl_uint</type>                                 <name>num_events_in_wait_list</name></param>
3171            <param>const <type>cl_event</type>*                         <name>event_wait_list</name></param>
3172            <param><type>cl_event</type>*                               <name>event</name></param>
3173        </command>
3174        <command suffix="CL_API_SUFFIX__VERSION_1_0">
3175            <proto><type>cl_int</type>                                  <name>clEnqueueWriteBuffer</name></proto>
3176            <param><type>cl_command_queue</type>                        <name>command_queue</name></param>
3177            <param><type>cl_mem</type>                                  <name>buffer</name></param>
3178            <param><type>cl_bool</type>                                 <name>blocking_write</name></param>
3179            <param><type>size_t</type>                                  <name>offset</name></param>
3180            <param><type>size_t</type>                                  <name>size</name></param>
3181            <param>const <type>void</type>*                             <name>ptr</name></param>
3182            <param><type>cl_uint</type>                                 <name>num_events_in_wait_list</name></param>
3183            <param>const <type>cl_event</type>*                         <name>event_wait_list</name></param>
3184            <param><type>cl_event</type>*                               <name>event</name></param>
3185        </command>
3186        <command suffix="CL_API_SUFFIX__VERSION_1_1">
3187            <proto><type>cl_int</type>                                  <name>clEnqueueWriteBufferRect</name></proto>
3188            <param><type>cl_command_queue</type>                        <name>command_queue</name></param>
3189            <param><type>cl_mem</type>                                  <name>buffer</name></param>
3190            <param><type>cl_bool</type>                                 <name>blocking_write</name></param>
3191            <param>const <type>size_t</type>*                           <name>buffer_origin</name></param>
3192            <param>const <type>size_t</type>*                           <name>host_origin</name></param>
3193            <param>const <type>size_t</type>*                           <name>region</name></param>
3194            <param><type>size_t</type>                                  <name>buffer_row_pitch</name></param>
3195            <param><type>size_t</type>                                  <name>buffer_slice_pitch</name></param>
3196            <param><type>size_t</type>                                  <name>host_row_pitch</name></param>
3197            <param><type>size_t</type>                                  <name>host_slice_pitch</name></param>
3198            <param>const <type>void</type>*                             <name>ptr</name></param>
3199            <param><type>cl_uint</type>                                 <name>num_events_in_wait_list</name></param>
3200            <param>const <type>cl_event</type>*                         <name>event_wait_list</name></param>
3201            <param><type>cl_event</type>*                               <name>event</name></param>
3202        </command>
3203        <command suffix="CL_API_SUFFIX__VERSION_1_2">
3204            <proto><type>cl_int</type>                                  <name>clEnqueueFillBuffer</name></proto>
3205            <param><type>cl_command_queue</type>                        <name>command_queue</name></param>
3206            <param><type>cl_mem</type>                                  <name>buffer</name></param>
3207            <param>const <type>void</type>*                             <name>pattern</name></param>
3208            <param><type>size_t</type>                                  <name>pattern_size</name></param>
3209            <param><type>size_t</type>                                  <name>offset</name></param>
3210            <param><type>size_t</type>                                  <name>size</name></param>
3211            <param><type>cl_uint</type>                                 <name>num_events_in_wait_list</name></param>
3212            <param>const <type>cl_event</type>*                         <name>event_wait_list</name></param>
3213            <param><type>cl_event</type>*                               <name>event</name></param>
3214        </command>
3215        <command suffix="CL_API_SUFFIX__VERSION_1_0">
3216            <proto><type>cl_int</type>                                  <name>clEnqueueCopyBuffer</name></proto>
3217            <param><type>cl_command_queue</type>                        <name>command_queue</name></param>
3218            <param><type>cl_mem</type>                                  <name>src_buffer</name></param>
3219            <param><type>cl_mem</type>                                  <name>dst_buffer</name></param>
3220            <param><type>size_t</type>                                  <name>src_offset</name></param>
3221            <param><type>size_t</type>                                  <name>dst_offset</name></param>
3222            <param><type>size_t</type>                                  <name>size</name></param>
3223            <param><type>cl_uint</type>                                 <name>num_events_in_wait_list</name></param>
3224            <param>const <type>cl_event</type>*                         <name>event_wait_list</name></param>
3225            <param><type>cl_event</type>*                               <name>event</name></param>
3226        </command>
3227        <command suffix="CL_API_SUFFIX__VERSION_1_1">
3228            <proto><type>cl_int</type>                                  <name>clEnqueueCopyBufferRect</name></proto>
3229            <param><type>cl_command_queue</type>                        <name>command_queue</name></param>
3230            <param><type>cl_mem</type>                                  <name>src_buffer</name></param>
3231            <param><type>cl_mem</type>                                  <name>dst_buffer</name></param>
3232            <param>const <type>size_t</type>*                           <name>src_origin</name></param>
3233            <param>const <type>size_t</type>*                           <name>dst_origin</name></param>
3234            <param>const <type>size_t</type>*                           <name>region</name></param>
3235            <param><type>size_t</type>                                  <name>src_row_pitch</name></param>
3236            <param><type>size_t</type>                                  <name>src_slice_pitch</name></param>
3237            <param><type>size_t</type>                                  <name>dst_row_pitch</name></param>
3238            <param><type>size_t</type>                                  <name>dst_slice_pitch</name></param>
3239            <param><type>cl_uint</type>                                 <name>num_events_in_wait_list</name></param>
3240            <param>const <type>cl_event</type>*                         <name>event_wait_list</name></param>
3241            <param><type>cl_event</type>*                               <name>event</name></param>
3242        </command>
3243        <command suffix="CL_API_SUFFIX__VERSION_1_0">
3244            <proto><type>cl_int</type>                                  <name>clEnqueueReadImage</name></proto>
3245            <param><type>cl_command_queue</type>                        <name>command_queue</name></param>
3246            <param><type>cl_mem</type>                                  <name>image</name></param>
3247            <param><type>cl_bool</type>                                 <name>blocking_read</name></param>
3248            <param>const <type>size_t</type>*                           <name>origin</name></param>
3249            <param>const <type>size_t</type>*                           <name>region</name></param>
3250            <param><type>size_t</type>                                  <name>row_pitch</name></param>
3251            <param><type>size_t</type>                                  <name>slice_pitch</name></param>
3252            <param><type>void</type>*                                   <name>ptr</name></param>
3253            <param><type>cl_uint</type>                                 <name>num_events_in_wait_list</name></param>
3254            <param>const <type>cl_event</type>*                         <name>event_wait_list</name></param>
3255            <param><type>cl_event</type>*                               <name>event</name></param>
3256        </command>
3257        <command suffix="CL_API_SUFFIX__VERSION_1_0">
3258            <proto><type>cl_int</type>                                  <name>clEnqueueWriteImage</name></proto>
3259            <param><type>cl_command_queue</type>                        <name>command_queue</name></param>
3260            <param><type>cl_mem</type>                                  <name>image</name></param>
3261            <param><type>cl_bool</type>                                 <name>blocking_write</name></param>
3262            <param>const <type>size_t</type>*                           <name>origin</name></param>
3263            <param>const <type>size_t</type>*                           <name>region</name></param>
3264            <param><type>size_t</type>                                  <name>input_row_pitch</name></param>
3265            <param><type>size_t</type>                                  <name>input_slice_pitch</name></param>
3266            <param>const <type>void</type>*                             <name>ptr</name></param>
3267            <param><type>cl_uint</type>                                 <name>num_events_in_wait_list</name></param>
3268            <param>const <type>cl_event</type>*                         <name>event_wait_list</name></param>
3269            <param><type>cl_event</type>*                               <name>event</name></param>
3270        </command>
3271        <command suffix="CL_API_SUFFIX__VERSION_1_2">
3272            <proto><type>cl_int</type>                                  <name>clEnqueueFillImage</name></proto>
3273            <param><type>cl_command_queue</type>                        <name>command_queue</name></param>
3274            <param><type>cl_mem</type>                                  <name>image</name></param>
3275            <param>const <type>void</type>*                             <name>fill_color</name></param>
3276            <param>const <type>size_t</type>*                           <name>origin</name></param>
3277            <param>const <type>size_t</type>*                           <name>region</name></param>
3278            <param><type>cl_uint</type>                                 <name>num_events_in_wait_list</name></param>
3279            <param>const <type>cl_event</type>*                         <name>event_wait_list</name></param>
3280            <param><type>cl_event</type>*                               <name>event</name></param>
3281        </command>
3282        <command suffix="CL_API_SUFFIX__VERSION_1_0">
3283            <proto><type>cl_int</type>                                  <name>clEnqueueCopyImage</name></proto>
3284            <param><type>cl_command_queue</type>                        <name>command_queue</name></param>
3285            <param><type>cl_mem</type>                                  <name>src_image</name></param>
3286            <param><type>cl_mem</type>                                  <name>dst_image</name></param>
3287            <param>const <type>size_t</type>*                           <name>src_origin</name></param>
3288            <param>const <type>size_t</type>*                           <name>dst_origin</name></param>
3289            <param>const <type>size_t</type>*                           <name>region</name></param>
3290            <param><type>cl_uint</type>                                 <name>num_events_in_wait_list</name></param>
3291            <param>const <type>cl_event</type>*                         <name>event_wait_list</name></param>
3292            <param><type>cl_event</type>*                               <name>event</name></param>
3293        </command>
3294        <command suffix="CL_API_SUFFIX__VERSION_1_0">
3295            <proto><type>cl_int</type>                                  <name>clEnqueueCopyImageToBuffer</name></proto>
3296            <param><type>cl_command_queue</type>                        <name>command_queue</name></param>
3297            <param><type>cl_mem</type>                                  <name>src_image</name></param>
3298            <param><type>cl_mem</type>                                  <name>dst_buffer</name></param>
3299            <param>const <type>size_t</type>*                           <name>src_origin</name></param>
3300            <param>const <type>size_t</type>*                           <name>region</name></param>
3301            <param><type>size_t</type>                                  <name>dst_offset</name></param>
3302            <param><type>cl_uint</type>                                 <name>num_events_in_wait_list</name></param>
3303            <param>const <type>cl_event</type>*                         <name>event_wait_list</name></param>
3304            <param><type>cl_event</type>*                               <name>event</name></param>
3305        </command>
3306        <command suffix="CL_API_SUFFIX__VERSION_1_0">
3307            <proto><type>cl_int</type>                                  <name>clEnqueueCopyBufferToImage</name></proto>
3308            <param><type>cl_command_queue</type>                        <name>command_queue</name></param>
3309            <param><type>cl_mem</type>                                  <name>src_buffer</name></param>
3310            <param><type>cl_mem</type>                                  <name>dst_image</name></param>
3311            <param><type>size_t</type>                                  <name>src_offset</name></param>
3312            <param>const <type>size_t</type>*                           <name>dst_origin</name></param>
3313            <param>const <type>size_t</type>*                           <name>region</name></param>
3314            <param><type>cl_uint</type>                                 <name>num_events_in_wait_list</name></param>
3315            <param>const <type>cl_event</type>*                         <name>event_wait_list</name></param>
3316            <param><type>cl_event</type>*                               <name>event</name></param>
3317        </command>
3318        <command suffix="CL_API_SUFFIX__VERSION_1_0">
3319            <proto><type>void</type>*                                   <name>clEnqueueMapBuffer</name></proto>
3320            <param><type>cl_command_queue</type>                        <name>command_queue</name></param>
3321            <param><type>cl_mem</type>                                  <name>buffer</name></param>
3322            <param><type>cl_bool</type>                                 <name>blocking_map</name></param>
3323            <param><type>cl_map_flags</type>                            <name>map_flags</name></param>
3324            <param><type>size_t</type>                                  <name>offset</name></param>
3325            <param><type>size_t</type>                                  <name>size</name></param>
3326            <param><type>cl_uint</type>                                 <name>num_events_in_wait_list</name></param>
3327            <param>const <type>cl_event</type>*                         <name>event_wait_list</name></param>
3328            <param><type>cl_event</type>*                               <name>event</name></param>
3329            <param><type>cl_int</type>*                                 <name>errcode_ret</name></param>
3330        </command>
3331        <command suffix="CL_API_SUFFIX__VERSION_1_0">
3332            <proto><type>void</type>*                                   <name>clEnqueueMapImage</name></proto>
3333            <param><type>cl_command_queue</type>                        <name>command_queue</name></param>
3334            <param><type>cl_mem</type>                                  <name>image</name></param>
3335            <param><type>cl_bool</type>                                 <name>blocking_map</name></param>
3336            <param><type>cl_map_flags</type>                            <name>map_flags</name></param>
3337            <param>const <type>size_t</type>*                           <name>origin</name></param>
3338            <param>const <type>size_t</type>*                           <name>region</name></param>
3339            <param><type>size_t</type>*                                 <name>image_row_pitch</name></param>
3340            <param><type>size_t</type>*                                 <name>image_slice_pitch</name></param>
3341            <param><type>cl_uint</type>                                 <name>num_events_in_wait_list</name></param>
3342            <param>const <type>cl_event</type>*                         <name>event_wait_list</name></param>
3343            <param><type>cl_event</type>*                               <name>event</name></param>
3344            <param><type>cl_int</type>*                                 <name>errcode_ret</name></param>
3345        </command>
3346        <command suffix="CL_API_SUFFIX__VERSION_1_0">
3347            <proto><type>cl_int</type>                                  <name>clEnqueueUnmapMemObject</name></proto>
3348            <param><type>cl_command_queue</type>                        <name>command_queue</name></param>
3349            <param><type>cl_mem</type>                                  <name>memobj</name></param>
3350            <param><type>void</type>*                                   <name>mapped_ptr</name></param>
3351            <param><type>cl_uint</type>                                 <name>num_events_in_wait_list</name></param>
3352            <param>const <type>cl_event</type>*                         <name>event_wait_list</name></param>
3353            <param><type>cl_event</type>*                               <name>event</name></param>
3354        </command>
3355        <command suffix="CL_API_SUFFIX__VERSION_1_2">
3356            <proto><type>cl_int</type>                                  <name>clEnqueueMigrateMemObjects</name></proto>
3357            <param><type>cl_command_queue</type>                        <name>command_queue</name></param>
3358            <param><type>cl_uint</type>                                 <name>num_mem_objects</name></param>
3359            <param>const <type>cl_mem</type>*                           <name>mem_objects</name></param>
3360            <param><type>cl_mem_migration_flags</type>                  <name>flags</name></param>
3361            <param><type>cl_uint</type>                                 <name>num_events_in_wait_list</name></param>
3362            <param>const <type>cl_event</type>*                         <name>event_wait_list</name></param>
3363            <param><type>cl_event</type>*                               <name>event</name></param>
3364        </command>
3365        <command suffix="CL_API_SUFFIX__VERSION_1_0">
3366            <proto><type>cl_int</type>                                  <name>clEnqueueNDRangeKernel</name></proto>
3367            <param><type>cl_command_queue</type>                        <name>command_queue</name></param>
3368            <param><type>cl_kernel</type>                               <name>kernel</name></param>
3369            <param><type>cl_uint</type>                                 <name>work_dim</name></param>
3370            <param>const <type>size_t</type>*                           <name>global_work_offset</name></param>
3371            <param>const <type>size_t</type>*                           <name>global_work_size</name></param>
3372            <param>const <type>size_t</type>*                           <name>local_work_size</name></param>
3373            <param><type>cl_uint</type>                                 <name>num_events_in_wait_list</name></param>
3374            <param>const <type>cl_event</type>*                         <name>event_wait_list</name></param>
3375            <param><type>cl_event</type>*                               <name>event</name></param>
3376        </command>
3377        <command suffix="CL_API_SUFFIX__VERSION_1_0">
3378            <proto><type>cl_int</type>                                  <name>clEnqueueNativeKernel</name></proto>
3379            <param><type>cl_command_queue</type>                        <name>command_queue</name></param>
3380            <param>void (CL_CALLBACK*                                   <name>user_func</name>)(void*)</param>
3381            <param><type>void</type>*                                   <name>args</name></param>
3382            <param><type>size_t</type>                                  <name>cb_args</name></param>
3383            <param><type>cl_uint</type>                                 <name>num_mem_objects</name></param>
3384            <param>const <type>cl_mem</type>*                           <name>mem_list</name></param>
3385            <param>const <type>void</type>**                            <name>args_mem_loc</name></param>
3386            <param><type>cl_uint</type>                                 <name>num_events_in_wait_list</name></param>
3387            <param>const <type>cl_event</type>*                         <name>event_wait_list</name></param>
3388            <param><type>cl_event</type>*                               <name>event</name></param>
3389        </command>
3390        <command suffix="CL_API_SUFFIX__VERSION_1_2">
3391            <proto><type>cl_int</type>                                  <name>clEnqueueMarkerWithWaitList</name></proto>
3392            <param><type>cl_command_queue</type>                        <name>command_queue</name></param>
3393            <param><type>cl_uint</type>                                 <name>num_events_in_wait_list</name></param>
3394            <param>const <type>cl_event</type>*                         <name>event_wait_list</name></param>
3395            <param><type>cl_event</type>*                               <name>event</name></param>
3396        </command>
3397        <command suffix="CL_API_SUFFIX__VERSION_1_2">
3398            <proto><type>cl_int</type>                                  <name>clEnqueueBarrierWithWaitList</name></proto>
3399            <param><type>cl_command_queue</type>                        <name>command_queue</name></param>
3400            <param><type>cl_uint</type>                                 <name>num_events_in_wait_list</name></param>
3401            <param>const <type>cl_event</type>*                         <name>event_wait_list</name></param>
3402            <param><type>cl_event</type>*                               <name>event</name></param>
3403        </command>
3404        <command suffix="CL_API_SUFFIX__VERSION_2_0">
3405            <proto><type>cl_int</type>                                  <name>clEnqueueSVMFree</name></proto>
3406            <param><type>cl_command_queue</type>                        <name>command_queue</name></param>
3407            <param><type>cl_uint</type>                                 <name>num_svm_pointers</name></param>
3408            <param><type>void</type>*                                   <name>svm_pointers</name>[]</param>
3409            <param>void (CL_CALLBACK*                                   <name>pfn_free_func</name>)(cl_command_queue queue, cl_uint num_svm_pointers, void* svm_pointers[], void* user_data)</param>
3410            <param><type>void</type>*                                   <name>user_data</name></param>
3411            <param><type>cl_uint</type>                                 <name>num_events_in_wait_list</name></param>
3412            <param>const <type>cl_event</type>*                         <name>event_wait_list</name></param>
3413            <param><type>cl_event</type>*                               <name>event</name></param>
3414        </command>
3415        <command suffix="CL_API_SUFFIX__VERSION_2_0">
3416            <proto><type>cl_int</type>                                  <name>clEnqueueSVMMemcpy</name></proto>
3417            <param><type>cl_command_queue</type>                        <name>command_queue</name></param>
3418            <param><type>cl_bool</type>                                 <name>blocking_copy</name></param>
3419            <param><type>void</type>*                                   <name>dst_ptr</name></param>
3420            <param>const <type>void</type>*                             <name>src_ptr</name></param>
3421            <param><type>size_t</type>                                  <name>size</name></param>
3422            <param><type>cl_uint</type>                                 <name>num_events_in_wait_list</name></param>
3423            <param>const <type>cl_event</type>*                         <name>event_wait_list</name></param>
3424            <param><type>cl_event</type>*                               <name>event</name></param>
3425        </command>
3426        <command suffix="CL_API_SUFFIX__VERSION_2_0">
3427            <proto><type>cl_int</type>                                  <name>clEnqueueSVMMemFill</name></proto>
3428            <param><type>cl_command_queue</type>                        <name>command_queue</name></param>
3429            <param><type>void</type>*                                   <name>svm_ptr</name></param>
3430            <param>const <type>void</type>*                             <name>pattern</name></param>
3431            <param><type>size_t</type>                                  <name>pattern_size</name></param>
3432            <param><type>size_t</type>                                  <name>size</name></param>
3433            <param><type>cl_uint</type>                                 <name>num_events_in_wait_list</name></param>
3434            <param>const <type>cl_event</type>*                         <name>event_wait_list</name></param>
3435            <param><type>cl_event</type>*                               <name>event</name></param>
3436        </command>
3437        <command suffix="CL_API_SUFFIX__VERSION_2_0">
3438            <proto><type>cl_int</type>                                  <name>clEnqueueSVMMap</name></proto>
3439            <param><type>cl_command_queue</type>                        <name>command_queue</name></param>
3440            <param><type>cl_bool</type>                                 <name>blocking_map</name></param>
3441            <param><type>cl_map_flags</type>                            <name>flags</name></param>
3442            <param><type>void</type>*                                   <name>svm_ptr</name></param>
3443            <param><type>size_t</type>                                  <name>size</name></param>
3444            <param><type>cl_uint</type>                                 <name>num_events_in_wait_list</name></param>
3445            <param>const <type>cl_event</type>*                         <name>event_wait_list</name></param>
3446            <param><type>cl_event</type>*                               <name>event</name></param>
3447        </command>
3448        <command suffix="CL_API_SUFFIX__VERSION_2_0">
3449            <proto><type>cl_int</type>                                  <name>clEnqueueSVMUnmap</name></proto>
3450            <param><type>cl_command_queue</type>                        <name>command_queue</name></param>
3451            <param><type>void</type>*                                   <name>svm_ptr</name></param>
3452            <param><type>cl_uint</type>                                 <name>num_events_in_wait_list</name></param>
3453            <param>const <type>cl_event</type>*                         <name>event_wait_list</name></param>
3454            <param><type>cl_event</type>*                               <name>event</name></param>
3455        </command>
3456        <command suffix="CL_API_SUFFIX__VERSION_2_1">
3457            <proto><type>cl_int</type>                                  <name>clEnqueueSVMMigrateMem</name></proto>
3458            <param><type>cl_command_queue</type>                        <name>command_queue</name></param>
3459            <param><type>cl_uint</type>                                 <name>num_svm_pointers</name></param>
3460            <param>const <type>void</type>**                            <name>svm_pointers</name></param>
3461            <param>const <type>size_t</type>*                           <name>sizes</name></param>
3462            <param><type>cl_mem_migration_flags</type>                  <name>flags</name></param>
3463            <param><type>cl_uint</type>                                 <name>num_events_in_wait_list</name></param>
3464            <param>const <type>cl_event</type>*                         <name>event_wait_list</name></param>
3465            <param><type>cl_event</type>*                               <name>event</name></param>
3466        </command>
3467        <command suffix="CL_API_SUFFIX__VERSION_1_2">
3468            <proto><type>void</type>*                                   <name>clGetExtensionFunctionAddressForPlatform</name></proto>
3469            <param><type>cl_platform_id</type>                          <name>platform</name></param>
3470            <param>const <type>char</type>*                             <name>func_name</name></param>
3471        </command>
3472        <command suffix="CL_EXT_SUFFIX__VERSION_1_0_DEPRECATED">
3473            <proto><type>cl_int</type>                                  <name>clSetCommandQueueProperty</name></proto>
3474            <param><type>cl_command_queue</type>                        <name>command_queue</name></param>
3475            <param><type>cl_command_queue_properties</type>             <name>properties</name></param>
3476            <param><type>cl_bool</type>                                 <name>enable</name></param>
3477            <param><type>cl_command_queue_properties</type>*            <name>old_properties</name></param>
3478        </command>
3479        <command prefix="CL_EXT_PREFIX__VERSION_1_1_DEPRECATED" suffix="CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED">
3480            <proto><type>cl_mem</type>                                  <name>clCreateImage2D</name></proto>
3481            <param><type>cl_context</type>                              <name>context</name></param>
3482            <param><type>cl_mem_flags</type>                            <name>flags</name></param>
3483            <param>const <type>cl_image_format</type>*                  <name>image_format</name></param>
3484            <param><type>size_t</type>                                  <name>image_width</name></param>
3485            <param><type>size_t</type>                                  <name>image_height</name></param>
3486            <param><type>size_t</type>                                  <name>image_row_pitch</name></param>
3487            <param><type>void</type>*                                   <name>host_ptr</name></param>
3488            <param><type>cl_int</type>*                                 <name>errcode_ret</name></param>
3489        </command>
3490        <command prefix="CL_EXT_PREFIX__VERSION_1_1_DEPRECATED" suffix="CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED">
3491            <proto><type>cl_mem</type> <name>clCreateImage3D</name></proto>
3492            <param><type>cl_context</type>                              <name>context</name></param>
3493            <param><type>cl_mem_flags</type>                            <name>flags</name></param>
3494            <param>const <type>cl_image_format</type>*                  <name>image_format</name></param>
3495            <param><type>size_t</type>                                  <name>image_width</name></param>
3496            <param><type>size_t</type>                                  <name>image_height</name></param>
3497            <param><type>size_t</type>                                  <name>image_depth</name></param>
3498            <param><type>size_t</type>                                  <name>image_row_pitch</name></param>
3499            <param><type>size_t</type>                                  <name>image_slice_pitch</name></param>
3500            <param><type>void</type>*                                   <name>host_ptr</name></param>
3501            <param><type>cl_int</type>*                                 <name>errcode_ret</name></param>
3502        </command>
3503        <command prefix="CL_EXT_PREFIX__VERSION_1_1_DEPRECATED" suffix="CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED">
3504            <proto><type>cl_int</type> <name>clEnqueueMarker</name></proto>
3505            <param><type>cl_command_queue</type>                        <name>command_queue</name></param>
3506            <param><type>cl_event</type>*                               <name>event</name></param>
3507        </command>
3508        <command prefix="CL_EXT_PREFIX__VERSION_1_1_DEPRECATED" suffix="CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED">
3509            <proto><type>cl_int</type> <name>clEnqueueWaitForEvents</name></proto>
3510            <param><type>cl_command_queue</type>                        <name>command_queue</name></param>
3511            <param><type>cl_uint</type>                                 <name>num_events</name></param>
3512            <param>const <type>cl_event</type>*                         <name>event_list</name></param>
3513        </command>
3514        <command prefix="CL_EXT_PREFIX__VERSION_1_1_DEPRECATED" suffix="CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED">
3515            <proto><type>cl_int</type> <name>clEnqueueBarrier</name></proto>
3516            <param><type>cl_command_queue</type>                        <name>command_queue</name></param>
3517        </command>
3518        <command prefix="CL_EXT_PREFIX__VERSION_1_1_DEPRECATED" suffix="CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED">
3519            <proto><type>cl_int</type> <name>clUnloadCompiler</name></proto>
3520        </command>
3521        <command prefix="CL_EXT_PREFIX__VERSION_1_1_DEPRECATED" suffix="CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED">
3522            <proto><type>void</type>*  <name>clGetExtensionFunctionAddress</name></proto>
3523            <param>const <type>char</type>*  <name>func_name</name></param>
3524        </command>
3525        <command prefix="CL_EXT_PREFIX__VERSION_1_1_DEPRECATED" suffix="CL_EXT_SUFFIX__VERSION_1_2_DEPRECATED">
3526            <proto><type>cl_command_queue</type> <name>clCreateCommandQueue</name></proto>
3527            <param><type>cl_context</type>                              <name>context</name></param>
3528            <param><type>cl_device_id</type>                            <name>device</name></param>
3529            <param><type>cl_command_queue_properties</type>             <name>properties</name></param>
3530            <param><type>cl_int</type>*                                 <name>errcode_ret</name></param>
3531        </command>
3532        <command prefix="CL_EXT_PREFIX__VERSION_1_1_DEPRECATED" suffix="CL_EXT_SUFFIX__VERSION_1_2_DEPRECATED">
3533            <proto><type>cl_sampler</type> <name>clCreateSampler</name></proto>
3534            <param><type>cl_context</type>                              <name>context</name></param>
3535            <param><type>cl_bool</type>                                 <name>normalized_coords</name></param>
3536            <param><type>cl_addressing_mode</type>                      <name>addressing_mode</name></param>
3537            <param><type>cl_filter_mode</type>                          <name>filter_mode</name></param>
3538            <param><type>cl_int</type>*                                 <name>errcode_ret</name></param>
3539        </command>
3540        <command prefix="CL_EXT_PREFIX__VERSION_1_1_DEPRECATED" suffix="CL_EXT_SUFFIX__VERSION_1_2_DEPRECATED">
3541            <proto><type>cl_int</type> <name>clEnqueueTask</name></proto>
3542            <param><type>cl_command_queue</type>                        <name>command_queue</name></param>
3543            <param><type>cl_kernel</type>                               <name>kernel</name></param>
3544            <param><type>cl_uint</type>                                 <name>num_events_in_wait_list</name></param>
3545            <param>const <type>cl_event</type>*                         <name>event_wait_list</name></param>
3546            <param><type>cl_event</type>*                               <name>event</name></param>
3547        </command>
3548        <command>
3549            <proto><type>cl_int</type>                                  <name>clGetLayerInfo</name></proto>
3550            <param><type>size_t</type>                                  <name>param_value_size</name></param>
3551            <param><type>cl_layer_info</type>                           <name>param_name</name></param>
3552            <param><type>void</type>*                                   <name>param_value</name></param>
3553            <param><type>size_t</type>*                                 <name>param_value_size_ret</name></param>
3554        </command>
3555        <command>
3556            <proto><type>cl_int</type>                                  <name>clInitLayer</name></proto>
3557            <param><type>cl_uint</type>                                 <name>num_entries</name></param>
3558            <param>const <type>cl_icd_dispatch</type>*                  <name>target_dispatch</name></param>
3559            <param><type>cl_uint</type>*                                <name>num_entries_ret</name></param>
3560            <param>const <type>cl_icd_dispatch</type>**                 <name>layer_dispatch</name></param>
3561        </command>
3562    </commands>
3563
3564    <!-- SECTION: OpenCL API interface definitions -->
3565    <feature api="opencl" name="CL_VERSION_1_0" number="1.0" comment="OpenCL core API interface definitions">
3566        <require comment="Header boilerplate">
3567            <type name="CL/cl_version.h"/>
3568            <type name="CL/cl_platform.h"/>
3569        </require>
3570        <require comment="API types">
3571            <type name="cl_platform_id"/>
3572            <type name="cl_device_id"/>
3573            <type name="cl_context"/>
3574            <type name="cl_command_queue"/>
3575            <type name="cl_mem"/>
3576            <type name="cl_program"/>
3577            <type name="cl_kernel"/>
3578            <type name="cl_event"/>
3579            <type name="cl_sampler"/>
3580            <type name="cl_bool" comment="WARNING! Unlike cl_ types in cl_platform.h, cl_bool is not guaranteed to be the same size as the bool in kernels."/>
3581            <type name="cl_bitfield"/>
3582            <type name="cl_device_type"/>
3583            <type name="cl_platform_info"/>
3584            <type name="cl_device_info"/>
3585            <type name="cl_device_fp_config"/>
3586            <type name="cl_device_mem_cache_type"/>
3587            <type name="cl_device_local_mem_type"/>
3588            <type name="cl_device_exec_capabilities"/>
3589            <type name="cl_command_queue_properties"/>
3590            <type name="cl_context_properties"/>
3591            <type name="cl_context_info"/>
3592            <type name="cl_command_queue_info"/>
3593            <type name="cl_channel_order"/>
3594            <type name="cl_channel_type"/>
3595            <type name="cl_mem_flags"/>
3596            <type name="cl_mem_object_type"/>
3597            <type name="cl_mem_info"/>
3598            <type name="cl_image_info"/>
3599            <type name="cl_addressing_mode"/>
3600            <type name="cl_filter_mode"/>
3601            <type name="cl_sampler_info"/>
3602            <type name="cl_map_flags"/>
3603            <type name="cl_program_info"/>
3604            <type name="cl_program_build_info"/>
3605            <type name="cl_build_status"/>
3606            <type name="cl_kernel_info"/>
3607            <type name="cl_kernel_work_group_info"/>
3608            <type name="cl_event_info"/>
3609            <type name="cl_command_type"/>
3610            <type name="cl_profiling_info"/>
3611            <type name="cl_image_format"/>
3612            <type name="cl_buffer_region"/>
3613        </require>
3614        <require comment="Constants">
3615            <enum name="CL_CHAR_BIT"/>
3616            <enum name="CL_CHAR_MAX"/>
3617            <enum name="CL_CHAR_MIN"/>
3618            <enum name="CL_UCHAR_MAX"/>
3619            <enum name="CL_SCHAR_MAX"/>
3620            <enum name="CL_SCHAR_MIN"/>
3621            <enum name="CL_SHRT_MAX"/>
3622            <enum name="CL_SHRT_MIN"/>
3623            <enum name="CL_USHRT_MAX"/>
3624            <enum name="CL_INT_MAX"/>
3625            <enum name="CL_INT_MIN"/>
3626            <enum name="CL_UINT_MAX"/>
3627            <enum name="CL_LONG_MAX"/>
3628            <enum name="CL_LONG_MIN"/>
3629            <enum name="CL_ULONG_MAX"/>
3630            <enum name="CL_FLT_DIG"/>
3631            <enum name="CL_FLT_MANT_DIG"/>
3632            <enum name="CL_FLT_MAX_10_EXP"/>
3633            <enum name="CL_FLT_MAX_EXP"/>
3634            <enum name="CL_FLT_MIN_10_EXP"/>
3635            <enum name="CL_FLT_MIN_EXP"/>
3636            <enum name="CL_FLT_RADIX"/>
3637            <enum name="CL_FLT_MAX"/>
3638            <enum name="CL_FLT_MIN"/>
3639            <enum name="CL_FLT_EPSILON"/>
3640            <enum name="CL_DBL_DIG"/>
3641            <enum name="CL_DBL_MANT_DIG"/>
3642            <enum name="CL_DBL_MAX_10_EXP"/>
3643            <enum name="CL_DBL_MAX_EXP"/>
3644            <enum name="CL_DBL_MIN_10_EXP"/>
3645            <enum name="CL_DBL_MIN_EXP"/>
3646            <enum name="CL_DBL_RADIX"/>
3647            <enum name="CL_DBL_MAX"/>
3648            <enum name="CL_DBL_MIN"/>
3649            <enum name="CL_DBL_EPSILON"/>
3650            <enum name="CL_NAN"/>
3651            <enum name="CL_HUGE_VALF"/>
3652            <enum name="CL_HUGE_VAL"/>
3653            <enum name="CL_MAXFLOAT"/>
3654            <enum name="CL_INFINITY"/>
3655        </require>
3656        <require comment="Error codes">
3657            <enum name="CL_SUCCESS"/>
3658            <enum name="CL_DEVICE_NOT_FOUND"/>
3659            <enum name="CL_DEVICE_NOT_AVAILABLE"/>
3660            <enum name="CL_COMPILER_NOT_AVAILABLE"/>
3661            <enum name="CL_MEM_OBJECT_ALLOCATION_FAILURE"/>
3662            <enum name="CL_OUT_OF_RESOURCES"/>
3663            <enum name="CL_OUT_OF_HOST_MEMORY"/>
3664            <enum name="CL_PROFILING_INFO_NOT_AVAILABLE"/>
3665            <enum name="CL_MEM_COPY_OVERLAP"/>
3666            <enum name="CL_IMAGE_FORMAT_MISMATCH"/>
3667            <enum name="CL_IMAGE_FORMAT_NOT_SUPPORTED"/>
3668            <enum name="CL_BUILD_PROGRAM_FAILURE"/>
3669            <enum name="CL_MAP_FAILURE"/>
3670            <enum name="CL_INVALID_VALUE"/>
3671            <enum name="CL_INVALID_DEVICE_TYPE"/>
3672            <enum name="CL_INVALID_PLATFORM"/>
3673            <enum name="CL_INVALID_DEVICE"/>
3674            <enum name="CL_INVALID_CONTEXT"/>
3675            <enum name="CL_INVALID_QUEUE_PROPERTIES"/>
3676            <enum name="CL_INVALID_COMMAND_QUEUE"/>
3677            <enum name="CL_INVALID_HOST_PTR"/>
3678            <enum name="CL_INVALID_MEM_OBJECT"/>
3679            <enum name="CL_INVALID_IMAGE_FORMAT_DESCRIPTOR"/>
3680            <enum name="CL_INVALID_IMAGE_SIZE"/>
3681            <enum name="CL_INVALID_SAMPLER"/>
3682            <enum name="CL_INVALID_BINARY"/>
3683            <enum name="CL_INVALID_BUILD_OPTIONS"/>
3684            <enum name="CL_INVALID_PROGRAM"/>
3685            <enum name="CL_INVALID_PROGRAM_EXECUTABLE"/>
3686            <enum name="CL_INVALID_KERNEL_NAME"/>
3687            <enum name="CL_INVALID_KERNEL_DEFINITION"/>
3688            <enum name="CL_INVALID_KERNEL"/>
3689            <enum name="CL_INVALID_ARG_INDEX"/>
3690            <enum name="CL_INVALID_ARG_VALUE"/>
3691            <enum name="CL_INVALID_ARG_SIZE"/>
3692            <enum name="CL_INVALID_KERNEL_ARGS"/>
3693            <enum name="CL_INVALID_WORK_DIMENSION"/>
3694            <enum name="CL_INVALID_WORK_GROUP_SIZE"/>
3695            <enum name="CL_INVALID_WORK_ITEM_SIZE"/>
3696            <enum name="CL_INVALID_GLOBAL_OFFSET"/>
3697            <enum name="CL_INVALID_EVENT_WAIT_LIST"/>
3698            <enum name="CL_INVALID_EVENT"/>
3699            <enum name="CL_INVALID_OPERATION"/>
3700            <enum name="CL_INVALID_GL_OBJECT"/>
3701            <enum name="CL_INVALID_BUFFER_SIZE"/>
3702            <enum name="CL_INVALID_MIP_LEVEL"/>
3703            <enum name="CL_INVALID_GLOBAL_WORK_SIZE"/>
3704        </require>
3705        <require comment="cl_bool">
3706            <enum name="CL_FALSE"/>
3707            <enum name="CL_TRUE"/>
3708        </require>
3709        <require comment="cl_platform_info">
3710            <enum name="CL_PLATFORM_PROFILE"/>
3711            <enum name="CL_PLATFORM_VERSION"/>
3712            <enum name="CL_PLATFORM_NAME"/>
3713            <enum name="CL_PLATFORM_VENDOR"/>
3714            <enum name="CL_PLATFORM_EXTENSIONS"/>
3715        </require>
3716        <require comment="cl_device_type - bitfield">
3717            <enum name="CL_DEVICE_TYPE_DEFAULT"/>
3718            <enum name="CL_DEVICE_TYPE_CPU"/>
3719            <enum name="CL_DEVICE_TYPE_GPU"/>
3720            <enum name="CL_DEVICE_TYPE_ACCELERATOR"/>
3721            <enum name="CL_DEVICE_TYPE_ALL"/>
3722        </require>
3723        <require comment="cl_device_info">
3724            <enum name="CL_DEVICE_TYPE"/>
3725            <enum name="CL_DEVICE_VENDOR_ID"/>
3726            <enum name="CL_DEVICE_MAX_COMPUTE_UNITS"/>
3727            <enum name="CL_DEVICE_MAX_WORK_ITEM_DIMENSIONS"/>
3728            <enum name="CL_DEVICE_MAX_WORK_GROUP_SIZE"/>
3729            <enum name="CL_DEVICE_MAX_WORK_ITEM_SIZES"/>
3730            <enum name="CL_DEVICE_PREFERRED_VECTOR_WIDTH_CHAR"/>
3731            <enum name="CL_DEVICE_PREFERRED_VECTOR_WIDTH_SHORT"/>
3732            <enum name="CL_DEVICE_PREFERRED_VECTOR_WIDTH_INT"/>
3733            <enum name="CL_DEVICE_PREFERRED_VECTOR_WIDTH_LONG"/>
3734            <enum name="CL_DEVICE_PREFERRED_VECTOR_WIDTH_FLOAT"/>
3735            <enum name="CL_DEVICE_PREFERRED_VECTOR_WIDTH_DOUBLE"/>
3736            <enum name="CL_DEVICE_MAX_CLOCK_FREQUENCY"/>
3737            <enum name="CL_DEVICE_ADDRESS_BITS"/>
3738            <enum name="CL_DEVICE_MAX_READ_IMAGE_ARGS"/>
3739            <enum name="CL_DEVICE_MAX_WRITE_IMAGE_ARGS"/>
3740            <enum name="CL_DEVICE_MAX_MEM_ALLOC_SIZE"/>
3741            <enum name="CL_DEVICE_IMAGE2D_MAX_WIDTH"/>
3742            <enum name="CL_DEVICE_IMAGE2D_MAX_HEIGHT"/>
3743            <enum name="CL_DEVICE_IMAGE3D_MAX_WIDTH"/>
3744            <enum name="CL_DEVICE_IMAGE3D_MAX_HEIGHT"/>
3745            <enum name="CL_DEVICE_IMAGE3D_MAX_DEPTH"/>
3746            <enum name="CL_DEVICE_IMAGE_SUPPORT"/>
3747            <enum name="CL_DEVICE_MAX_PARAMETER_SIZE"/>
3748            <enum name="CL_DEVICE_MAX_SAMPLERS"/>
3749            <enum name="CL_DEVICE_MEM_BASE_ADDR_ALIGN"/>
3750            <enum name="CL_DEVICE_SINGLE_FP_CONFIG"/>
3751            <enum name="CL_DEVICE_GLOBAL_MEM_CACHE_TYPE"/>
3752            <enum name="CL_DEVICE_GLOBAL_MEM_CACHELINE_SIZE"/>
3753            <enum name="CL_DEVICE_GLOBAL_MEM_CACHE_SIZE"/>
3754            <enum name="CL_DEVICE_GLOBAL_MEM_SIZE"/>
3755            <enum name="CL_DEVICE_MAX_CONSTANT_BUFFER_SIZE"/>
3756            <enum name="CL_DEVICE_MAX_CONSTANT_ARGS"/>
3757            <enum name="CL_DEVICE_LOCAL_MEM_TYPE"/>
3758            <enum name="CL_DEVICE_LOCAL_MEM_SIZE"/>
3759            <enum name="CL_DEVICE_ERROR_CORRECTION_SUPPORT"/>
3760            <enum name="CL_DEVICE_PROFILING_TIMER_RESOLUTION"/>
3761            <enum name="CL_DEVICE_ENDIAN_LITTLE"/>
3762            <enum name="CL_DEVICE_AVAILABLE"/>
3763            <enum name="CL_DEVICE_COMPILER_AVAILABLE"/>
3764            <enum name="CL_DEVICE_EXECUTION_CAPABILITIES"/>
3765            <enum name="CL_DEVICE_NAME"/>
3766            <enum name="CL_DEVICE_VENDOR"/>
3767            <enum name="CL_DRIVER_VERSION"/>
3768            <enum name="CL_DEVICE_PROFILE"/>
3769            <enum name="CL_DEVICE_VERSION"/>
3770            <enum name="CL_DEVICE_EXTENSIONS"/>
3771            <enum name="CL_DEVICE_PLATFORM"/>
3772        </require>
3773        <require comment="cl_device_fp_config - bitfield">
3774            <enum name="CL_FP_DENORM"/>
3775            <enum name="CL_FP_INF_NAN"/>
3776            <enum name="CL_FP_ROUND_TO_NEAREST"/>
3777            <enum name="CL_FP_ROUND_TO_ZERO"/>
3778            <enum name="CL_FP_ROUND_TO_INF"/>
3779            <enum name="CL_FP_FMA"/>
3780        </require>
3781        <require comment="cl_device_mem_cache_type">
3782            <enum name="CL_NONE"/>
3783            <enum name="CL_READ_ONLY_CACHE"/>
3784            <enum name="CL_READ_WRITE_CACHE"/>
3785        </require>
3786        <require comment="cl_device_local_mem_type">
3787            <enum name="CL_LOCAL"/>
3788            <enum name="CL_GLOBAL"/>
3789        </require>
3790        <require comment="cl_device_exec_capabilities - bitfield">
3791            <enum name="CL_EXEC_KERNEL"/>
3792            <enum name="CL_EXEC_NATIVE_KERNEL"/>
3793        </require>
3794        <require comment="cl_command_queue_properties - bitfield">
3795            <enum name="CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE"/>
3796            <enum name="CL_QUEUE_PROFILING_ENABLE"/>
3797        </require>
3798        <require comment="cl_context_info">
3799            <enum name="CL_CONTEXT_REFERENCE_COUNT"/>
3800            <enum name="CL_CONTEXT_DEVICES"/>
3801            <enum name="CL_CONTEXT_PROPERTIES"/>
3802        </require>
3803        <require comment="cl_context_properties">
3804            <enum name="CL_CONTEXT_PLATFORM"/>
3805        </require>
3806        <require comment="cl_command_queue_info">
3807            <enum name="CL_QUEUE_CONTEXT"/>
3808            <enum name="CL_QUEUE_DEVICE"/>
3809            <enum name="CL_QUEUE_REFERENCE_COUNT"/>
3810            <enum name="CL_QUEUE_PROPERTIES"/>
3811        </require>
3812        <require comment="cl_mem_flags and cl_svm_mem_flags - bitfield">
3813            <enum name="CL_MEM_READ_WRITE"/>
3814            <enum name="CL_MEM_WRITE_ONLY"/>
3815            <enum name="CL_MEM_READ_ONLY"/>
3816            <enum name="CL_MEM_USE_HOST_PTR"/>
3817            <enum name="CL_MEM_ALLOC_HOST_PTR"/>
3818            <enum name="CL_MEM_COPY_HOST_PTR"/>
3819        </require>
3820        <require comment="cl_profiling_info">
3821            <enum name="CL_PROFILING_COMMAND_QUEUED"/>
3822            <enum name="CL_PROFILING_COMMAND_SUBMIT"/>
3823            <enum name="CL_PROFILING_COMMAND_START"/>
3824            <enum name="CL_PROFILING_COMMAND_END"/>
3825        </require>
3826        <require comment="cl_channel_order">
3827            <enum name="CL_R"/>
3828            <enum name="CL_A"/>
3829            <enum name="CL_RG"/>
3830            <enum name="CL_RA"/>
3831            <enum name="CL_RGB"/>
3832            <enum name="CL_RGBA"/>
3833            <enum name="CL_BGRA"/>
3834            <enum name="CL_ARGB"/>
3835            <enum name="CL_INTENSITY"/>
3836            <enum name="CL_LUMINANCE"/>
3837        </require>
3838        <require comment="cl_channel_type">
3839            <enum name="CL_SNORM_INT8"/>
3840            <enum name="CL_SNORM_INT16"/>
3841            <enum name="CL_UNORM_INT8"/>
3842            <enum name="CL_UNORM_INT16"/>
3843            <enum name="CL_UNORM_SHORT_565"/>
3844            <enum name="CL_UNORM_SHORT_555"/>
3845            <enum name="CL_UNORM_INT_101010"/>
3846            <enum name="CL_SIGNED_INT8"/>
3847            <enum name="CL_SIGNED_INT16"/>
3848            <enum name="CL_SIGNED_INT32"/>
3849            <enum name="CL_UNSIGNED_INT8"/>
3850            <enum name="CL_UNSIGNED_INT16"/>
3851            <enum name="CL_UNSIGNED_INT32"/>
3852            <enum name="CL_HALF_FLOAT"/>
3853            <enum name="CL_FLOAT"/>
3854        </require>
3855        <require comment="cl_mem_object_type">
3856            <enum name="CL_MEM_OBJECT_BUFFER"/>
3857            <enum name="CL_MEM_OBJECT_IMAGE2D"/>
3858            <enum name="CL_MEM_OBJECT_IMAGE3D"/>
3859        </require>
3860        <require comment="cl_mem_info">
3861            <enum name="CL_MEM_TYPE"/>
3862            <enum name="CL_MEM_FLAGS"/>
3863            <enum name="CL_MEM_SIZE"/>
3864            <enum name="CL_MEM_HOST_PTR"/>
3865            <enum name="CL_MEM_MAP_COUNT"/>
3866            <enum name="CL_MEM_REFERENCE_COUNT"/>
3867            <enum name="CL_MEM_CONTEXT"/>
3868        </require>
3869        <require comment="cl_image_info">
3870            <enum name="CL_IMAGE_FORMAT"/>
3871            <enum name="CL_IMAGE_ELEMENT_SIZE"/>
3872            <enum name="CL_IMAGE_ROW_PITCH"/>
3873            <enum name="CL_IMAGE_SLICE_PITCH"/>
3874            <enum name="CL_IMAGE_WIDTH"/>
3875            <enum name="CL_IMAGE_HEIGHT"/>
3876            <enum name="CL_IMAGE_DEPTH"/>
3877        </require>
3878        <require comment="cl_addressing_mode">
3879            <enum name="CL_ADDRESS_NONE"/>
3880            <enum name="CL_ADDRESS_CLAMP_TO_EDGE"/>
3881            <enum name="CL_ADDRESS_CLAMP"/>
3882            <enum name="CL_ADDRESS_REPEAT"/>
3883        </require>
3884        <require comment="cl_filter_mode">
3885            <enum name="CL_FILTER_NEAREST"/>
3886            <enum name="CL_FILTER_LINEAR"/>
3887        </require>
3888        <require comment="cl_sampler_info">
3889            <enum name="CL_SAMPLER_REFERENCE_COUNT"/>
3890            <enum name="CL_SAMPLER_CONTEXT"/>
3891            <enum name="CL_SAMPLER_NORMALIZED_COORDS"/>
3892            <enum name="CL_SAMPLER_ADDRESSING_MODE"/>
3893            <enum name="CL_SAMPLER_FILTER_MODE"/>
3894        </require>
3895        <require comment="cl_map_flags - bitfield">
3896            <enum name="CL_MAP_READ"/>
3897            <enum name="CL_MAP_WRITE"/>
3898        </require>
3899        <require comment="cl_program_info">
3900            <enum name="CL_PROGRAM_REFERENCE_COUNT"/>
3901            <enum name="CL_PROGRAM_CONTEXT"/>
3902            <enum name="CL_PROGRAM_NUM_DEVICES"/>
3903            <enum name="CL_PROGRAM_DEVICES"/>
3904            <enum name="CL_PROGRAM_SOURCE"/>
3905            <enum name="CL_PROGRAM_BINARY_SIZES"/>
3906            <enum name="CL_PROGRAM_BINARIES"/>
3907        </require>
3908        <require comment="cl_program_build_info">
3909            <enum name="CL_PROGRAM_BUILD_STATUS"/>
3910            <enum name="CL_PROGRAM_BUILD_OPTIONS"/>
3911            <enum name="CL_PROGRAM_BUILD_LOG"/>
3912        </require>
3913        <require comment="cl_build_status">
3914            <enum name="CL_BUILD_SUCCESS"/>
3915            <enum name="CL_BUILD_NONE"/>
3916            <enum name="CL_BUILD_ERROR"/>
3917            <enum name="CL_BUILD_IN_PROGRESS"/>
3918        </require>
3919        <require comment="cl_kernel_info">
3920            <enum name="CL_KERNEL_FUNCTION_NAME"/>
3921            <enum name="CL_KERNEL_NUM_ARGS"/>
3922            <enum name="CL_KERNEL_REFERENCE_COUNT"/>
3923            <enum name="CL_KERNEL_CONTEXT"/>
3924            <enum name="CL_KERNEL_PROGRAM"/>
3925        </require>
3926        <require comment="cl_kernel_work_group_info">
3927            <enum name="CL_KERNEL_WORK_GROUP_SIZE"/>
3928            <enum name="CL_KERNEL_COMPILE_WORK_GROUP_SIZE"/>
3929            <enum name="CL_KERNEL_LOCAL_MEM_SIZE"/>
3930            <enum name="CL_KERNEL_PREFERRED_WORK_GROUP_SIZE_MULTIPLE"/>
3931            <enum name="CL_KERNEL_PRIVATE_MEM_SIZE"/>
3932        </require>
3933        <require comment="cl_event_info">
3934            <enum name="CL_EVENT_COMMAND_QUEUE"/>
3935            <enum name="CL_EVENT_COMMAND_TYPE"/>
3936            <enum name="CL_EVENT_REFERENCE_COUNT"/>
3937            <enum name="CL_EVENT_COMMAND_EXECUTION_STATUS"/>
3938        </require>
3939        <require comment="cl_command_type">
3940            <enum name="CL_COMMAND_NDRANGE_KERNEL"/>
3941            <enum name="CL_COMMAND_TASK"/>
3942            <enum name="CL_COMMAND_NATIVE_KERNEL"/>
3943            <enum name="CL_COMMAND_READ_BUFFER"/>
3944            <enum name="CL_COMMAND_WRITE_BUFFER"/>
3945            <enum name="CL_COMMAND_COPY_BUFFER"/>
3946            <enum name="CL_COMMAND_READ_IMAGE"/>
3947            <enum name="CL_COMMAND_WRITE_IMAGE"/>
3948            <enum name="CL_COMMAND_COPY_IMAGE"/>
3949            <enum name="CL_COMMAND_COPY_IMAGE_TO_BUFFER"/>
3950            <enum name="CL_COMMAND_COPY_BUFFER_TO_IMAGE"/>
3951            <enum name="CL_COMMAND_MAP_BUFFER"/>
3952            <enum name="CL_COMMAND_MAP_IMAGE"/>
3953            <enum name="CL_COMMAND_UNMAP_MEM_OBJECT"/>
3954            <enum name="CL_COMMAND_MARKER"/>
3955            <enum name="CL_COMMAND_ACQUIRE_GL_OBJECTS"/>
3956            <enum name="CL_COMMAND_RELEASE_GL_OBJECTS"/>
3957        </require>
3958        <require comment="command execution status">
3959            <enum name="CL_COMPLETE"/>
3960            <enum name="CL_RUNNING"/>
3961            <enum name="CL_SUBMITTED"/>
3962            <enum name="CL_QUEUED"/>
3963        </require>
3964        <require comment="Platform APIs">
3965            <command name="clGetPlatformIDs"/>
3966            <command name="clGetPlatformInfo"/>
3967        </require>
3968        <require comment="Device APIs">
3969            <command name="clGetDeviceIDs"/>
3970            <command name="clGetDeviceInfo"/>
3971        </require>
3972        <require comment="Context APIs">
3973            <command name="clCreateContext"/>
3974            <command name="clCreateContextFromType"/>
3975            <command name="clRetainContext"/>
3976            <command name="clReleaseContext"/>
3977            <command name="clGetContextInfo"/>
3978        </require>
3979        <require comment="Command Queue APIs">
3980            <command name="clRetainCommandQueue"/>
3981            <command name="clReleaseCommandQueue"/>
3982            <command name="clGetCommandQueueInfo"/>
3983        </require>
3984        <require comment="Memory Object APIs">
3985            <command name="clCreateBuffer"/>
3986            <command name="clRetainMemObject"/>
3987            <command name="clReleaseMemObject"/>
3988            <command name="clGetSupportedImageFormats"/>
3989            <command name="clGetMemObjectInfo"/>
3990            <command name="clGetImageInfo"/>
3991        </require>
3992        <require comment="Sampler APIs">
3993            <command name="clRetainSampler"/>
3994            <command name="clReleaseSampler"/>
3995            <command name="clGetSamplerInfo"/>
3996        </require>
3997        <require comment="Program Object APIs">
3998            <command name="clCreateProgramWithSource"/>
3999            <command name="clCreateProgramWithBinary"/>
4000            <command name="clRetainProgram"/>
4001            <command name="clReleaseProgram"/>
4002            <command name="clBuildProgram"/>
4003            <command name="clGetProgramInfo"/>
4004            <command name="clGetProgramBuildInfo"/>
4005        </require>
4006        <require comment="Kernel Object APIs">
4007            <command name="clCreateKernel"/>
4008            <command name="clCreateKernelsInProgram"/>
4009            <command name="clRetainKernel"/>
4010            <command name="clReleaseKernel"/>
4011            <command name="clSetKernelArg"/>
4012            <command name="clGetKernelInfo"/>
4013            <command name="clGetKernelWorkGroupInfo"/>
4014        </require>
4015        <require comment="Event Object APIs">
4016            <command name="clWaitForEvents"/>
4017            <command name="clGetEventInfo"/>
4018            <command name="clRetainEvent"/>
4019            <command name="clReleaseEvent"/>
4020        </require>
4021        <require comment="Profiling APIs">
4022            <command name="clGetEventProfilingInfo"/>
4023        </require>
4024        <require comment="Flush and Finish APIs">
4025            <command name="clFlush"/>
4026            <command name="clFinish"/>
4027        </require>
4028        <require comment="Enqueued Commands APIs">
4029            <command name="clEnqueueReadBuffer"/>
4030            <command name="clEnqueueWriteBuffer"/>
4031            <command name="clEnqueueCopyBuffer"/>
4032            <command name="clEnqueueReadImage"/>
4033            <command name="clEnqueueWriteImage"/>
4034            <command name="clEnqueueCopyImage"/>
4035            <command name="clEnqueueCopyImageToBuffer"/>
4036            <command name="clEnqueueCopyBufferToImage"/>
4037            <command name="clEnqueueMapBuffer"/>
4038            <command name="clEnqueueMapImage"/>
4039            <command name="clEnqueueUnmapMemObject"/>
4040            <command name="clEnqueueNDRangeKernel"/>
4041            <command name="clEnqueueNativeKernel"/>
4042        </require>
4043        <require comment="OpenCL 1.0 APIs that were deprecated in OpenCL 1.1">
4044            <comment>
4045            #ifdef CL_USE_DEPRECATED_OPENCL_1_0_APIS
4046                /*
4047                 *  WARNING:
4048                 *     This API introduces mutable state into the OpenCL implementation. It has been REMOVED
4049                 *  to better facilitate thread safety.  The 1.0 API is not thread safe. It is not tested by the
4050                 *  OpenCL 1.1 conformance test, and consequently may not work or may not work dependably.
4051                 *  It is likely to be non-performant. Use of this API is not advised. Use at your own risk.
4052                 *
4053                 *  Software developers previously relying on this API are instructed to set the command queue
4054                 *  properties when creating the queue, instead.
4055                 */
4056            #endif /* CL_USE_DEPRECATED_OPENCL_1_0_APIS */
4057            </comment>
4058            <command name="clSetCommandQueueProperty"/>
4059        </require>
4060        <require comment="OpenCL 1.0 APIs that were deprecated in OpenCL 1.2">
4061            <command name="clCreateImage2D"/>
4062            <command name="clCreateImage3D"/>
4063            <command name="clEnqueueMarker"/>
4064            <command name="clEnqueueWaitForEvents"/>
4065            <command name="clEnqueueBarrier"/>
4066            <command name="clUnloadCompiler"/>
4067            <command name="clGetExtensionFunctionAddress"/>
4068        </require>
4069        <require comment="OpenCL 1.0 cl_device_info enums that were deprecated in OpenCL 1.2">
4070            <enum name="CL_DEVICE_MIN_DATA_TYPE_ALIGN_SIZE"/>
4071        </require>
4072        <require comment="OpenCL 1.0 APIs that were deprecated in OpenCL 2.0">
4073            <command name="clCreateCommandQueue"/>
4074            <command name="clCreateSampler"/>
4075            <command name="clEnqueueTask"/>
4076        </require>
4077        <require comment="OpenCL 1.0 cl_device_info enums that were deprecated in OpenCL 2.0">
4078            <enum name="CL_DEVICE_QUEUE_PROPERTIES"/>
4079        </require>
4080    </feature>
4081
4082    <feature api="opencl" name="CL_VERSION_1_1" number="1.1" comment="OpenCL core API interface definitions">
4083        <require>
4084            <type name="cl_buffer_create_type"/>
4085        </require>
4086        <require comment="Constants">
4087            <enum name="CL_NAN"/>
4088            <enum name="CL_HUGE_VALF"/>
4089            <enum name="CL_HUGE_VAL"/>
4090            <enum name="CL_MAXFLOAT"/>
4091            <enum name="CL_INFINITY"/>
4092        </require>
4093        <require comment="Error codes">
4094            <enum name="CL_MISALIGNED_SUB_BUFFER_OFFSET"/>
4095            <enum name="CL_EXEC_STATUS_ERROR_FOR_EVENTS_IN_WAIT_LIST"/>
4096            <enum name="CL_INVALID_PROPERTY"/>
4097        </require>
4098        <require comment="cl_device_info">
4099            <enum name="CL_DEVICE_PREFERRED_VECTOR_WIDTH_HALF"/>
4100            <enum name="CL_DEVICE_NATIVE_VECTOR_WIDTH_CHAR"/>
4101            <enum name="CL_DEVICE_NATIVE_VECTOR_WIDTH_SHORT"/>
4102            <enum name="CL_DEVICE_NATIVE_VECTOR_WIDTH_INT"/>
4103            <enum name="CL_DEVICE_NATIVE_VECTOR_WIDTH_LONG"/>
4104            <enum name="CL_DEVICE_NATIVE_VECTOR_WIDTH_FLOAT"/>
4105            <enum name="CL_DEVICE_NATIVE_VECTOR_WIDTH_DOUBLE"/>
4106            <enum name="CL_DEVICE_NATIVE_VECTOR_WIDTH_HALF"/>
4107        </require>
4108        <require comment="cl_device_fp_config - bitfield">
4109            <enum name="CL_FP_SOFT_FLOAT"/>
4110        </require>
4111        <require comment="cl_context_info">
4112            <enum name="CL_CONTEXT_NUM_DEVICES"/>
4113        </require>
4114        <require comment="cl_channel_order">
4115            <enum name="CL_Rx"/>
4116            <enum name="CL_RGx"/>
4117            <enum name="CL_RGBx"/>
4118        </require>
4119        <require comment="cl_mem_info">
4120            <enum name="CL_MEM_ASSOCIATED_MEMOBJECT"/>
4121            <enum name="CL_MEM_OFFSET"/>
4122        </require>
4123        <require comment="cl_addressing_mode">
4124            <enum name="CL_ADDRESS_MIRRORED_REPEAT"/>
4125        </require>
4126        <require comment="cl_event_info">
4127            <enum name="CL_EVENT_CONTEXT"/>
4128        </require>
4129        <require comment="cl_command_type">
4130            <enum name="CL_COMMAND_READ_BUFFER_RECT"/>
4131            <enum name="CL_COMMAND_WRITE_BUFFER_RECT"/>
4132            <enum name="CL_COMMAND_COPY_BUFFER_RECT"/>
4133            <enum name="CL_COMMAND_USER"/>
4134        </require>
4135        <require comment="cl_buffer_create_type">
4136            <enum name="CL_BUFFER_CREATE_TYPE_REGION"/>
4137        </require>
4138        <require comment="Memory Object APIs">
4139            <command name="clCreateSubBuffer"/>
4140            <command name="clSetMemObjectDestructorCallback"/>
4141        </require>
4142        <require comment="Event Object APIs">
4143            <command name="clCreateUserEvent"/>
4144            <command name="clSetUserEventStatus"/>
4145            <command name="clSetEventCallback"/>
4146        </require>
4147        <require comment="Enqueued Commands APIs">
4148            <command name="clEnqueueReadBufferRect"/>
4149            <command name="clEnqueueWriteBufferRect"/>
4150            <command name="clEnqueueCopyBufferRect"/>
4151        </require>
4152        <require comment="OpenCL 1.1 cl_device_info enums that were deprecated in OpenCL 2.0">
4153            <enum name="CL_DEVICE_HOST_UNIFIED_MEMORY"/>
4154        </require>
4155        <require comment="OpenCL 1.1 cl_device_info enums that were deprecated in OpenCL 3.0">
4156            <enum name="CL_DEVICE_OPENCL_C_VERSION"/>
4157        </require>
4158    </feature>
4159
4160    <feature api="opencl" name="CL_VERSION_1_2" number="1.2" comment="OpenCL core API interface definitions">
4161        <require>
4162            <type name="cl_device_partition_property"/>
4163            <type name="cl_device_affinity_domain"/>
4164            <type name="cl_mem_migration_flags"/>
4165            <type name="cl_program_binary_type"/>
4166            <type name="cl_kernel_arg_info"/>
4167            <type name="cl_kernel_arg_address_qualifier"/>
4168            <type name="cl_kernel_arg_access_qualifier"/>
4169            <type name="cl_kernel_arg_type_qualifier"/>
4170            <type name="cl_image_desc"/>
4171        </require>
4172        <require comment="Constants">
4173            <enum name="CL_DBL_DIG"/>
4174            <enum name="CL_DBL_MANT_DIG"/>
4175            <enum name="CL_DBL_MAX_10_EXP"/>
4176            <enum name="CL_DBL_MAX_EXP"/>
4177            <enum name="CL_DBL_MIN_10_EXP"/>
4178            <enum name="CL_DBL_MIN_EXP"/>
4179            <enum name="CL_DBL_RADIX"/>
4180            <enum name="CL_DBL_MAX"/>
4181            <enum name="CL_DBL_MIN"/>
4182            <enum name="CL_DBL_EPSILON"/>
4183        </require>
4184        <require comment="Error codes">
4185            <enum name="CL_COMPILE_PROGRAM_FAILURE"/>
4186            <enum name="CL_LINKER_NOT_AVAILABLE"/>
4187            <enum name="CL_LINK_PROGRAM_FAILURE"/>
4188            <enum name="CL_DEVICE_PARTITION_FAILED"/>
4189            <enum name="CL_KERNEL_ARG_INFO_NOT_AVAILABLE"/>
4190            <enum name="CL_INVALID_IMAGE_DESCRIPTOR"/>
4191            <enum name="CL_INVALID_COMPILER_OPTIONS"/>
4192            <enum name="CL_INVALID_LINKER_OPTIONS"/>
4193            <enum name="CL_INVALID_DEVICE_PARTITION_COUNT"/>
4194        </require>
4195        <require comment="cl_command_type">
4196            <enum name="CL_COMMAND_BARRIER"/>
4197            <enum name="CL_COMMAND_MIGRATE_MEM_OBJECTS"/>
4198            <enum name="CL_COMMAND_FILL_BUFFER"/>
4199            <enum name="CL_COMMAND_FILL_IMAGE"/>
4200        </require>
4201        <require comment="cl_bool">
4202            <enum name="CL_BLOCKING"/>
4203            <enum name="CL_NON_BLOCKING"/>
4204        </require>
4205        <require comment="cl_device_type - bitfield">
4206            <enum name="CL_DEVICE_TYPE_CUSTOM"/>
4207        </require>
4208        <require comment="cl_device_info">
4209            <enum name="CL_DEVICE_DOUBLE_FP_CONFIG"/>
4210            <enum name="CL_DEVICE_LINKER_AVAILABLE"/>
4211            <enum name="CL_DEVICE_BUILT_IN_KERNELS"/>
4212            <enum name="CL_DEVICE_IMAGE_MAX_BUFFER_SIZE"/>
4213            <enum name="CL_DEVICE_IMAGE_MAX_ARRAY_SIZE"/>
4214            <enum name="CL_DEVICE_PARENT_DEVICE"/>
4215            <enum name="CL_DEVICE_PARTITION_MAX_SUB_DEVICES"/>
4216            <enum name="CL_DEVICE_PARTITION_PROPERTIES"/>
4217            <enum name="CL_DEVICE_PARTITION_AFFINITY_DOMAIN"/>
4218            <enum name="CL_DEVICE_PARTITION_TYPE"/>
4219            <enum name="CL_DEVICE_REFERENCE_COUNT"/>
4220            <enum name="CL_DEVICE_PREFERRED_INTEROP_USER_SYNC"/>
4221            <enum name="CL_DEVICE_PRINTF_BUFFER_SIZE"/>
4222        </require>
4223        <require comment="cl_device_fp_config - bitfield">
4224            <enum name="CL_FP_CORRECTLY_ROUNDED_DIVIDE_SQRT"/>
4225        </require>
4226        <require comment="cl_context_properties">
4227            <enum name="CL_CONTEXT_INTEROP_USER_SYNC"/>
4228        </require>
4229        <require comment="cl_device_partition_property">
4230            <enum name="CL_DEVICE_PARTITION_EQUALLY"/>
4231            <enum name="CL_DEVICE_PARTITION_BY_COUNTS"/>
4232            <enum name="CL_DEVICE_PARTITION_BY_COUNTS_LIST_END"/>
4233            <enum name="CL_DEVICE_PARTITION_BY_AFFINITY_DOMAIN"/>
4234        </require>
4235        <require comment="cl_device_affinity_domain">
4236            <enum name="CL_DEVICE_AFFINITY_DOMAIN_NUMA"/>
4237            <enum name="CL_DEVICE_AFFINITY_DOMAIN_L4_CACHE"/>
4238            <enum name="CL_DEVICE_AFFINITY_DOMAIN_L3_CACHE"/>
4239            <enum name="CL_DEVICE_AFFINITY_DOMAIN_L2_CACHE"/>
4240            <enum name="CL_DEVICE_AFFINITY_DOMAIN_L1_CACHE"/>
4241            <enum name="CL_DEVICE_AFFINITY_DOMAIN_NEXT_PARTITIONABLE"/>
4242        </require>
4243        <require comment="cl_mem_flags and cl_svm_mem_flags - bitfield">
4244            <enum name="CL_MEM_HOST_WRITE_ONLY"/>
4245            <enum name="CL_MEM_HOST_READ_ONLY"/>
4246            <enum name="CL_MEM_HOST_NO_ACCESS"/>
4247        </require>
4248        <require comment="cl_mem_migration_flags - bitfield">
4249            <enum name="CL_MIGRATE_MEM_OBJECT_HOST"/>
4250            <enum name="CL_MIGRATE_MEM_OBJECT_CONTENT_UNDEFINED"/>
4251        </require>
4252        <require comment="cl_mem_object_type">
4253            <enum name="CL_MEM_OBJECT_IMAGE2D_ARRAY"/>
4254            <enum name="CL_MEM_OBJECT_IMAGE1D"/>
4255            <enum name="CL_MEM_OBJECT_IMAGE1D_ARRAY"/>
4256            <enum name="CL_MEM_OBJECT_IMAGE1D_BUFFER"/>
4257        </require>
4258        <require comment="cl_image_info">
4259            <enum name="CL_IMAGE_ARRAY_SIZE"/>
4260            <enum name="CL_IMAGE_NUM_MIP_LEVELS"/>
4261            <enum name="CL_IMAGE_NUM_SAMPLES"/>
4262        </require>
4263        <require comment="cl_map_flags - bitfield">
4264            <enum name="CL_MAP_WRITE_INVALIDATE_REGION"/>
4265        </require>
4266        <require comment="cl_program_info">
4267            <enum name="CL_PROGRAM_NUM_KERNELS"/>
4268            <enum name="CL_PROGRAM_KERNEL_NAMES"/>
4269        </require>
4270        <require comment="cl_program_build_info">
4271            <enum name="CL_PROGRAM_BINARY_TYPE"/>
4272        </require>
4273        <require comment="cl_program_binary_type">
4274            <enum name="CL_PROGRAM_BINARY_TYPE_NONE"/>
4275            <enum name="CL_PROGRAM_BINARY_TYPE_COMPILED_OBJECT"/>
4276            <enum name="CL_PROGRAM_BINARY_TYPE_LIBRARY"/>
4277            <enum name="CL_PROGRAM_BINARY_TYPE_EXECUTABLE"/>
4278        </require>
4279        <require comment="cl_kernel_info">
4280            <enum name="CL_KERNEL_ATTRIBUTES"/>
4281        </require>
4282        <require comment="cl_kernel_arg_info">
4283            <enum name="CL_KERNEL_ARG_ADDRESS_QUALIFIER"/>
4284            <enum name="CL_KERNEL_ARG_ACCESS_QUALIFIER"/>
4285            <enum name="CL_KERNEL_ARG_TYPE_NAME"/>
4286            <enum name="CL_KERNEL_ARG_TYPE_QUALIFIER"/>
4287            <enum name="CL_KERNEL_ARG_NAME"/>
4288        </require>
4289        <require comment="cl_kernel_arg_address_qualifier">
4290            <enum name="CL_KERNEL_ARG_ADDRESS_GLOBAL"/>
4291            <enum name="CL_KERNEL_ARG_ADDRESS_LOCAL"/>
4292            <enum name="CL_KERNEL_ARG_ADDRESS_CONSTANT"/>
4293            <enum name="CL_KERNEL_ARG_ADDRESS_PRIVATE"/>
4294        </require>
4295        <require comment="cl_kernel_arg_access_qualifier">
4296            <enum name="CL_KERNEL_ARG_ACCESS_READ_ONLY"/>
4297            <enum name="CL_KERNEL_ARG_ACCESS_WRITE_ONLY"/>
4298            <enum name="CL_KERNEL_ARG_ACCESS_READ_WRITE"/>
4299            <enum name="CL_KERNEL_ARG_ACCESS_NONE"/>
4300        </require>
4301        <require comment="cl_kernel_arg_type_qualifier">
4302            <enum name="CL_KERNEL_ARG_TYPE_NONE"/>
4303            <enum name="CL_KERNEL_ARG_TYPE_CONST"/>
4304            <enum name="CL_KERNEL_ARG_TYPE_RESTRICT"/>
4305            <enum name="CL_KERNEL_ARG_TYPE_VOLATILE"/>
4306        </require>
4307        <require comment="cl_kernel_work_group_info">
4308            <enum name="CL_KERNEL_GLOBAL_WORK_SIZE"/>
4309        </require>
4310        <require comment="Platform APIs">
4311            <command name="clCreateSubDevices"/>
4312            <command name="clRetainDevice"/>
4313            <command name="clReleaseDevice"/>
4314        </require>
4315        <require comment="Memory Object APIs">
4316            <command name="clCreateImage"/>
4317        </require>
4318        <require comment="Program Object APIs">
4319            <command name="clCreateProgramWithBuiltInKernels"/>
4320            <command name="clCompileProgram"/>
4321            <command name="clLinkProgram"/>
4322            <command name="clUnloadPlatformCompiler"/>
4323        </require>
4324        <require comment="Kernel Object APIs">
4325            <command name="clGetKernelArgInfo"/>
4326        </require>
4327        <require comment="Enqueued Commands APIs">
4328            <command name="clEnqueueFillBuffer"/>
4329            <command name="clEnqueueFillImage"/>
4330            <command name="clEnqueueMigrateMemObjects"/>
4331            <command name="clEnqueueMarkerWithWaitList"/>
4332            <command name="clEnqueueBarrierWithWaitList"/>
4333        </require>
4334        <require comment="Extension function access">
4335            <command name="clGetExtensionFunctionAddressForPlatform"/>
4336        </require>
4337        <require comment="OpenCL 1.2 cl_image_info enums that were deprecated in OpenCL 2.0">
4338            <enum name="CL_IMAGE_BUFFER"/>
4339        </require>
4340    </feature>
4341
4342    <feature api="opencl" name="CL_VERSION_2_0" number="2.0" comment="OpenCL core API interface definitions">
4343        <require>
4344            <type name="cl_device_svm_capabilities"/>
4345            <type name="cl_queue_properties"/>
4346            <type name="cl_svm_mem_flags"/>
4347            <type name="cl_pipe_properties"/>
4348            <type name="cl_pipe_info"/>
4349            <type name="cl_sampler_properties"/>
4350            <type name="cl_kernel_exec_info"/>
4351        </require>
4352        <require comment="Error codes">
4353            <enum name="CL_INVALID_PIPE_SIZE"/>
4354            <enum name="CL_INVALID_DEVICE_QUEUE"/>
4355        </require>
4356        <require comment="cl_device_info">
4357            <enum name="CL_DEVICE_QUEUE_ON_HOST_PROPERTIES"/>
4358            <enum name="CL_DEVICE_IMAGE_PITCH_ALIGNMENT"/>
4359            <enum name="CL_DEVICE_IMAGE_BASE_ADDRESS_ALIGNMENT"/>
4360            <enum name="CL_DEVICE_MAX_READ_WRITE_IMAGE_ARGS"/>
4361            <enum name="CL_DEVICE_MAX_GLOBAL_VARIABLE_SIZE"/>
4362            <enum name="CL_DEVICE_QUEUE_ON_DEVICE_PROPERTIES"/>
4363            <enum name="CL_DEVICE_QUEUE_ON_DEVICE_PREFERRED_SIZE"/>
4364            <enum name="CL_DEVICE_QUEUE_ON_DEVICE_MAX_SIZE"/>
4365            <enum name="CL_DEVICE_MAX_ON_DEVICE_QUEUES"/>
4366            <enum name="CL_DEVICE_MAX_ON_DEVICE_EVENTS"/>
4367            <enum name="CL_DEVICE_SVM_CAPABILITIES"/>
4368            <enum name="CL_DEVICE_GLOBAL_VARIABLE_PREFERRED_TOTAL_SIZE"/>
4369            <enum name="CL_DEVICE_MAX_PIPE_ARGS"/>
4370            <enum name="CL_DEVICE_PIPE_MAX_ACTIVE_RESERVATIONS"/>
4371            <enum name="CL_DEVICE_PIPE_MAX_PACKET_SIZE"/>
4372            <enum name="CL_DEVICE_PREFERRED_PLATFORM_ATOMIC_ALIGNMENT"/>
4373            <enum name="CL_DEVICE_PREFERRED_GLOBAL_ATOMIC_ALIGNMENT"/>
4374            <enum name="CL_DEVICE_PREFERRED_LOCAL_ATOMIC_ALIGNMENT"/>
4375        </require>
4376        <require comment="cl_command_queue_properties - bitfield">
4377            <enum name="CL_QUEUE_ON_DEVICE"/>
4378            <enum name="CL_QUEUE_ON_DEVICE_DEFAULT"/>
4379        </require>
4380        <require comment="cl_device_svm_capabilities">
4381            <enum name="CL_DEVICE_SVM_COARSE_GRAIN_BUFFER"/>
4382            <enum name="CL_DEVICE_SVM_FINE_GRAIN_BUFFER"/>
4383            <enum name="CL_DEVICE_SVM_FINE_GRAIN_SYSTEM"/>
4384            <enum name="CL_DEVICE_SVM_ATOMICS"/>
4385        </require>
4386        <require comment="cl_command_queue_info">
4387            <enum name="CL_QUEUE_SIZE"/>
4388        </require>
4389        <require comment="cl_mem_flags and cl_svm_mem_flags - bitfield">
4390            <enum name="CL_MEM_SVM_FINE_GRAIN_BUFFER"/>
4391            <enum name="CL_MEM_SVM_ATOMICS"/>
4392            <enum name="CL_MEM_KERNEL_READ_AND_WRITE"/>
4393        </require>
4394        <require comment="cl_channel_order">
4395            <enum name="CL_DEPTH"/>
4396            <enum name="CL_sRGB"/>
4397            <enum name="CL_sRGBx"/>
4398            <enum name="CL_sRGBA"/>
4399            <enum name="CL_sBGRA"/>
4400            <enum name="CL_ABGR"/>
4401        </require>
4402        <require comment="cl_mem_object_type">
4403            <enum name="CL_MEM_OBJECT_PIPE"/>
4404        </require>
4405        <require comment="cl_mem_info">
4406            <enum name="CL_MEM_USES_SVM_POINTER"/>
4407        </require>
4408        <require comment="cl_pipe_info">
4409            <enum name="CL_PIPE_PACKET_SIZE"/>
4410            <enum name="CL_PIPE_MAX_PACKETS"/>
4411        </require>
4412        <require comment="cl_sampler_info">
4413            <enum name="CL_SAMPLER_MIP_FILTER_MODE"/>
4414            <enum name="CL_SAMPLER_LOD_MIN"/>
4415            <enum name="CL_SAMPLER_LOD_MAX"/>
4416        </require>
4417        <require comment="cl_program_build_info">
4418            <enum name="CL_PROGRAM_BUILD_GLOBAL_VARIABLE_TOTAL_SIZE"/>
4419        </require>
4420        <require comment="cl_kernel_arg_type_qualifier">
4421            <enum name="CL_KERNEL_ARG_TYPE_PIPE"/>
4422        </require>
4423        <require comment="cl_kernel_exec_info">
4424            <enum name="CL_KERNEL_EXEC_INFO_SVM_PTRS"/>
4425            <enum name="CL_KERNEL_EXEC_INFO_SVM_FINE_GRAIN_SYSTEM"/>
4426        </require>
4427        <require comment="cl_command_type">
4428            <enum name="CL_COMMAND_SVM_FREE"/>
4429            <enum name="CL_COMMAND_SVM_MEMCPY"/>
4430            <enum name="CL_COMMAND_SVM_MEMFILL"/>
4431            <enum name="CL_COMMAND_SVM_MAP"/>
4432            <enum name="CL_COMMAND_SVM_UNMAP"/>
4433        </require>
4434        <require comment="cl_profiling_info">
4435            <enum name="CL_PROFILING_COMMAND_COMPLETE"/>
4436        </require>
4437        <require comment="Command Queue APIs">
4438            <command name="clCreateCommandQueueWithProperties"/>
4439        </require>
4440        <require comment="Pipe APIs">
4441            <command name="clCreatePipe"/>
4442            <command name="clGetPipeInfo"/>
4443        </require>
4444        <require comment="SVM Allocation APIs">
4445            <command name="clSVMAlloc"/>
4446            <command name="clSVMFree"/>
4447        </require>
4448        <require comment="Sampler APIs">
4449            <command name="clCreateSamplerWithProperties"/>
4450        </require>
4451        <require comment="Kernel Object APIs">
4452            <command name="clSetKernelArgSVMPointer"/>
4453            <command name="clSetKernelExecInfo"/>
4454        </require>
4455        <require comment="Enqueued Commands APIs">
4456            <command name="clEnqueueSVMFree"/>
4457            <command name="clEnqueueSVMMemcpy"/>
4458            <command name="clEnqueueSVMMemFill"/>
4459            <command name="clEnqueueSVMMap"/>
4460            <command name="clEnqueueSVMUnmap"/>
4461        </require>
4462    </feature>
4463
4464    <feature api="opencl" name="CL_VERSION_2_1" number="2.1" comment="OpenCL core API interface definitions">
4465        <require>
4466            <type name="cl_kernel_sub_group_info"/>
4467        </require>
4468        <require comment="cl_platform_info">
4469            <enum name="CL_PLATFORM_HOST_TIMER_RESOLUTION"/>
4470        </require>
4471        <require comment="cl_device_info">
4472            <enum name="CL_DEVICE_IL_VERSION"/>
4473            <enum name="CL_DEVICE_MAX_NUM_SUB_GROUPS"/>
4474            <enum name="CL_DEVICE_SUB_GROUP_INDEPENDENT_FORWARD_PROGRESS"/>
4475        </require>
4476        <require comment="cl_command_queue_info">
4477            <enum name="CL_QUEUE_DEVICE_DEFAULT"/>
4478        </require>
4479        <require comment="cl_channel_type">
4480            <enum name="CL_UNORM_INT_101010_2"/>
4481        </require>
4482        <require comment="cl_program_info">
4483            <enum name="CL_PROGRAM_IL"/>
4484        </require>
4485        <require comment="cl_kernel_sub_group_info">
4486            <enum name="CL_KERNEL_MAX_NUM_SUB_GROUPS"/>
4487            <enum name="CL_KERNEL_COMPILE_NUM_SUB_GROUPS"/>
4488            <enum name="CL_KERNEL_MAX_SUB_GROUP_SIZE_FOR_NDRANGE"/>
4489            <enum name="CL_KERNEL_SUB_GROUP_COUNT_FOR_NDRANGE"/>
4490            <enum name="CL_KERNEL_LOCAL_SIZE_FOR_SUB_GROUP_COUNT"/>
4491        </require>
4492        <require comment="Platform APIs">
4493            <command name="clSetDefaultDeviceCommandQueue"/>
4494        </require>
4495        <require comment="Device APIs">
4496            <command name="clGetDeviceAndHostTimer"/>
4497            <command name="clGetHostTimer"/>
4498        </require>
4499        <require comment="Program Object APIs">
4500            <command name="clCreateProgramWithIL"/>
4501        </require>
4502        <require comment="Kernel Object APIs">
4503            <command name="clCloneKernel"/>
4504            <command name="clGetKernelSubGroupInfo"/>
4505        </require>
4506        <require comment="Enqueued Commands APIs">
4507            <command name="clEnqueueSVMMigrateMem"/>
4508        </require>
4509    </feature>
4510
4511    <feature api="opencl" name="CL_VERSION_2_2" number="2.2" comment="OpenCL core API interface definitions">
4512        <require comment="Error codes">
4513            <enum name="CL_INVALID_SPEC_ID"/>
4514            <enum name="CL_MAX_SIZE_RESTRICTION_EXCEEDED"/>
4515        </require>
4516        <require comment="Program Object APIs">
4517            <command name="clSetProgramSpecializationConstant"/>
4518        </require>
4519        <require comment="OpenCL 2.2 Program Object APIs that were deprecated in OpenCL 3.0">
4520            <command name="clSetProgramReleaseCallback"/>
4521        </require>
4522        <require comment="OpenCL 2.2 cl_program_info enums that were deprecated in OpenCL 3.0">
4523            <enum name="CL_PROGRAM_SCOPE_GLOBAL_CTORS_PRESENT"/>
4524            <enum name="CL_PROGRAM_SCOPE_GLOBAL_DTORS_PRESENT"/>
4525        </require>
4526    </feature>
4527
4528    <feature api="opencl" name="CL_VERSION_3_0" number="3.0" comment="OpenCL experimental API interface definitions">
4529        <require>
4530            <type name="cl_device_atomic_capabilities"/>
4531            <type name="cl_device_device_enqueue_capabilities"/>
4532            <type name="cl_khronos_vendor_id"/>
4533            <type name="cl_mem_properties"/>
4534            <type name="cl_version"/>
4535            <type name="cl_name_version"/>
4536        </require>
4537        <require comment="cl_device_atomic_capabilities - bitfield">
4538            <enum name="CL_DEVICE_ATOMIC_ORDER_RELAXED"/>
4539            <enum name="CL_DEVICE_ATOMIC_ORDER_ACQ_REL"/>
4540            <enum name="CL_DEVICE_ATOMIC_ORDER_SEQ_CST"/>
4541            <enum name="CL_DEVICE_ATOMIC_SCOPE_WORK_ITEM"/>
4542            <enum name="CL_DEVICE_ATOMIC_SCOPE_WORK_GROUP"/>
4543            <enum name="CL_DEVICE_ATOMIC_SCOPE_DEVICE"/>
4544            <enum name="CL_DEVICE_ATOMIC_SCOPE_ALL_DEVICES"/>
4545        </require>
4546        <require comment="cl_device_device_enqueue_capabilities - bitfield">
4547            <enum name="CL_DEVICE_QUEUE_SUPPORTED"/>
4548            <enum name="CL_DEVICE_QUEUE_REPLACEABLE_DEFAULT"/>
4549        </require>
4550        <require comment="cl_platform_info">
4551            <enum name="CL_PLATFORM_NUMERIC_VERSION"/>
4552            <enum name="CL_PLATFORM_EXTENSIONS_WITH_VERSION"/>
4553        </require>
4554        <require comment="cl_device_info">
4555            <enum name="CL_DEVICE_ATOMIC_MEMORY_CAPABILITIES"/>
4556            <enum name="CL_DEVICE_ATOMIC_FENCE_CAPABILITIES"/>
4557            <enum name="CL_DEVICE_NON_UNIFORM_WORK_GROUP_SUPPORT"/>
4558            <enum name="CL_DEVICE_OPENCL_C_ALL_VERSIONS"/>
4559            <enum name="CL_DEVICE_WORK_GROUP_COLLECTIVE_FUNCTIONS_SUPPORT"/>
4560            <enum name="CL_DEVICE_GENERIC_ADDRESS_SPACE_SUPPORT"/>
4561            <enum name="CL_DEVICE_OPENCL_C_FEATURES"/>
4562            <enum name="CL_DEVICE_DEVICE_ENQUEUE_CAPABILITIES"/>
4563            <enum name="CL_DEVICE_PIPE_SUPPORT"/>
4564            <enum name="CL_DEVICE_NUMERIC_VERSION"/>
4565            <enum name="CL_DEVICE_EXTENSIONS_WITH_VERSION"/>
4566            <enum name="CL_DEVICE_ILS_WITH_VERSION"/>
4567            <enum name="CL_DEVICE_BUILT_IN_KERNELS_WITH_VERSION"/>
4568            <enum name="CL_DEVICE_PREFERRED_WORK_GROUP_SIZE_MULTIPLE"/>
4569            <enum name="CL_DEVICE_LATEST_CONFORMANCE_VERSION_PASSED"/>
4570        </require>
4571        <require comment="cl_pipe_info">
4572            <enum name="CL_PIPE_PROPERTIES"/>
4573        </require>
4574        <require comment="cl_sampler_info">
4575            <enum name="CL_SAMPLER_PROPERTIES"/>
4576        </require>
4577        <require comment="cl_command_queue_info">
4578            <enum name="CL_QUEUE_PROPERTIES_ARRAY"/>
4579        </require>
4580        <require comment="cl_mem_info">
4581            <enum name="CL_MEM_PROPERTIES"/>
4582        </require>
4583        <require comment="cl_command_type">
4584            <enum name="CL_COMMAND_SVM_MIGRATE_MEM"/>
4585        </require>
4586        <require comment="Misc API enums">
4587            <enum name="CL_VERSION_MAJOR_BITS"/>
4588            <enum name="CL_VERSION_MINOR_BITS"/>
4589            <enum name="CL_VERSION_PATCH_BITS"/>
4590            <enum name="CL_NAME_VERSION_MAX_NAME_SIZE"/>
4591        </require>
4592        <require comment="Context APIs">
4593            <command name="clSetContextDestructorCallback"/>
4594        </require>
4595        <require comment="Memory Object APIs">
4596            <command name="clCreateBufferWithProperties"/>
4597            <command name="clCreateImageWithProperties"/>
4598        </require>
4599    </feature>
4600
4601    <!-- SECTION: OpenCL extension interface definitions -->
4602    <extensions>
4603        <extension name="cl_khr_d3d10_sharing" supported="opencl">
4604            <require>
4605                <type name="d3d10.h"/>
4606                <type name="CL/cl.h"/>
4607                <type name="CL/cl_platform.h"/>
4608            </require>
4609            <require>
4610                <type name="cl_d3d10_device_source_khr"/>
4611                <type name="cl_d3d10_device_set_khr"/>
4612            </require>
4613            <require comment="Error codes">
4614                <enum name="CL_INVALID_D3D10_DEVICE_KHR"/>
4615                <enum name="CL_INVALID_D3D10_RESOURCE_KHR"/>
4616                <enum name="CL_D3D10_RESOURCE_ALREADY_ACQUIRED_KHR"/>
4617                <enum name="CL_D3D10_RESOURCE_NOT_ACQUIRED_KHR"/>
4618            </require>
4619            <require comment="cl_d3d10_device_source_khr">
4620                <enum name="CL_D3D10_DEVICE_KHR"/>
4621                <enum name="CL_D3D10_DXGI_ADAPTER_KHR"/>
4622            </require>
4623            <require comment="cl_d3d10_device_set_khr">
4624                <enum name="CL_PREFERRED_DEVICES_FOR_D3D10_KHR"/>
4625                <enum name="CL_ALL_DEVICES_FOR_D3D10_KHR"/>
4626            </require>
4627            <require comment="cl_context_info">
4628                <enum name="CL_CONTEXT_D3D10_DEVICE_KHR"/>
4629                <enum name="CL_CONTEXT_D3D10_PREFER_SHARED_RESOURCES_KHR"/>
4630            </require>
4631            <require comment="cl_mem_info">
4632                <enum name="CL_MEM_D3D10_RESOURCE_KHR"/>
4633            </require>
4634            <require comment="cl_image_info">
4635                <enum name="CL_IMAGE_D3D10_SUBRESOURCE_KHR"/>
4636            </require>
4637            <require comment="cl_command_type">
4638                <enum name="CL_COMMAND_ACQUIRE_D3D10_OBJECTS_KHR"/>
4639                <enum name="CL_COMMAND_RELEASE_D3D10_OBJECTS_KHR"/>
4640            </require>
4641            <require>
4642                <command name="clGetDeviceIDsFromD3D10KHR"/>
4643                <command name="clCreateFromD3D10BufferKHR"/>
4644                <command name="clCreateFromD3D10Texture2DKHR"/>
4645                <command name="clCreateFromD3D10Texture3DKHR"/>
4646                <command name="clEnqueueAcquireD3D10ObjectsKHR"/>
4647                <command name="clEnqueueReleaseD3D10ObjectsKHR"/>
4648            </require>
4649        </extension>
4650        <extension name="cl_khr_d3d11_sharing" supported="opencl">
4651            <require>
4652                <type name="d3d11.h"/>
4653                <type name="CL/cl.h"/>
4654                <type name="CL/cl_platform.h"/>
4655            </require>
4656            <require>
4657                <type name="cl_d3d11_device_source_khr"/>
4658                <type name="cl_d3d11_device_set_khr"/>
4659            </require>
4660            <require comment="Error codes">
4661                <enum name="CL_INVALID_D3D11_DEVICE_KHR"/>
4662                <enum name="CL_INVALID_D3D11_RESOURCE_KHR"/>
4663                <enum name="CL_D3D11_RESOURCE_ALREADY_ACQUIRED_KHR"/>
4664                <enum name="CL_D3D11_RESOURCE_NOT_ACQUIRED_KHR"/>
4665            </require>
4666            <require comment="cl_d3d11_device_source_khr">
4667                <enum name="CL_D3D11_DEVICE_KHR"/>
4668                <enum name="CL_D3D11_DXGI_ADAPTER_KHR"/>
4669            </require>
4670            <require comment="cl_d3d11_device_set_khr">
4671                <enum name="CL_PREFERRED_DEVICES_FOR_D3D11_KHR"/>
4672                <enum name="CL_ALL_DEVICES_FOR_D3D11_KHR"/>
4673            </require>
4674            <require comment="cl_context_info">
4675                <enum name="CL_CONTEXT_D3D11_DEVICE_KHR"/>
4676                <enum name="CL_CONTEXT_D3D11_PREFER_SHARED_RESOURCES_KHR"/>
4677            </require>
4678            <require comment="cl_mem_info">
4679                <enum name="CL_MEM_D3D11_RESOURCE_KHR"/>
4680            </require>
4681            <require comment="cl_image_info">
4682                <enum name="CL_IMAGE_D3D11_SUBRESOURCE_KHR"/>
4683            </require>
4684            <require comment="cl_command_type">
4685                <enum name="CL_COMMAND_ACQUIRE_D3D11_OBJECTS_KHR"/>
4686                <enum name="CL_COMMAND_RELEASE_D3D11_OBJECTS_KHR"/>
4687            </require>
4688            <require>
4689                <command name="clGetDeviceIDsFromD3D11KHR"/>
4690                <command name="clCreateFromD3D11BufferKHR"/>
4691                <command name="clCreateFromD3D11Texture2DKHR"/>
4692                <command name="clCreateFromD3D11Texture3DKHR"/>
4693                <command name="clEnqueueAcquireD3D11ObjectsKHR"/>
4694                <command name="clEnqueueReleaseD3D11ObjectsKHR"/>
4695            </require>
4696        </extension>
4697        <extension name="cl_khr_dx9_media_sharing" supported="opencl">
4698            <require>
4699                <type name="CL/cl.h"/>
4700                <type name="CL/cl_platform.h"/>
4701            </require>
4702            <require>
4703                <type name="cl_dx9_media_adapter_type_khr"/>
4704                <type name="cl_dx9_media_adapter_set_khr"/>
4705                <type name="cl_dx9_surface_info_khr"/>
4706            </require>
4707            <require comment="Error codes">
4708                <enum name="CL_INVALID_DX9_MEDIA_ADAPTER_KHR"/>
4709                <enum name="CL_INVALID_DX9_MEDIA_SURFACE_KHR"/>
4710                <enum name="CL_DX9_MEDIA_SURFACE_ALREADY_ACQUIRED_KHR"/>
4711                <enum name="CL_DX9_MEDIA_SURFACE_NOT_ACQUIRED_KHR"/>
4712            </require>
4713            <require comment="cl_media_adapter_type_khr">
4714                <enum name="CL_ADAPTER_D3D9_KHR"/>
4715                <enum name="CL_ADAPTER_D3D9EX_KHR"/>
4716                <enum name="CL_ADAPTER_DXVA_KHR"/>
4717            </require>
4718            <require comment="cl_media_adapter_set_khr">
4719                <enum name="CL_PREFERRED_DEVICES_FOR_DX9_MEDIA_ADAPTER_KHR"/>
4720                <enum name="CL_ALL_DEVICES_FOR_DX9_MEDIA_ADAPTER_KHR"/>
4721            </require>
4722            <require comment="cl_context_info">
4723                <enum name="CL_CONTEXT_ADAPTER_D3D9_KHR"/>
4724                <enum name="CL_CONTEXT_ADAPTER_D3D9EX_KHR"/>
4725                <enum name="CL_CONTEXT_ADAPTER_DXVA_KHR"/>
4726            </require>
4727            <require comment="cl_mem_info">
4728                <enum name="CL_MEM_DX9_MEDIA_ADAPTER_TYPE_KHR"/>
4729                <enum name="CL_MEM_DX9_MEDIA_SURFACE_INFO_KHR"/>
4730            </require>
4731            <require comment="cl_image_info">
4732                <enum name="CL_IMAGE_DX9_MEDIA_PLANE_KHR"/>
4733            </require>
4734            <require comment="cl_command_type">
4735                <enum name="CL_COMMAND_ACQUIRE_DX9_MEDIA_SURFACES_KHR"/>
4736                <enum name="CL_COMMAND_RELEASE_DX9_MEDIA_SURFACES_KHR"/>
4737            </require>
4738            <require>
4739                <command name="clGetDeviceIDsFromDX9MediaAdapterKHR"/>
4740                <command name="clCreateFromDX9MediaSurfaceKHR"/>
4741                <command name="clEnqueueAcquireDX9MediaSurfacesKHR"/>
4742                <command name="clEnqueueReleaseDX9MediaSurfacesKHR"/>
4743            </require>
4744        </extension>
4745        <extension name="cl_khr_egl_image" supported="opencl">
4746            <require>
4747                <type name="CL/cl.h"/>
4748            </require>
4749            <require comment="Command type for events created with clEnqueueAcquireEGLObjectsKHR">
4750                <enum name="CL_COMMAND_EGL_FENCE_SYNC_OBJECT_KHR"/>
4751                <enum name="CL_COMMAND_ACQUIRE_EGL_OBJECTS_KHR"/>
4752                <enum name="CL_COMMAND_RELEASE_EGL_OBJECTS_KHR"/>
4753            </require>
4754            <require comment="Error type for clCreateFromEGLImageKHR">
4755                <enum name="CL_INVALID_EGL_OBJECT_KHR"/>
4756                <enum name="CL_EGL_RESOURCE_NOT_ACQUIRED_KHR"/>
4757            </require>
4758            <require comment="CLeglImageKHR is an opaque handle to an EGLImage">
4759                <type name="CLeglImageKHR"/>
4760            </require>
4761            <require comment="CLeglDisplayKHR is an opaque handle to an EGLDisplay">
4762                <type name="CLeglDisplayKHR"/>
4763            </require>
4764            <require comment="CLeglSyncKHR is an opaque handle to an EGLSync object">
4765                <type name="CLeglSyncKHR"/>
4766            </require>
4767            <require comment="properties passed to clCreateFromEGLImageKHR">
4768                <type name="cl_egl_image_properties_khr"/>
4769            </require>
4770            <require>
4771                <command name="clCreateFromEGLImageKHR"/>
4772                <command name="clEnqueueAcquireEGLObjectsKHR"/>
4773                <command name="clEnqueueReleaseEGLObjectsKHR"/>
4774            </require>
4775        </extension>
4776        <extension name="cl_khr_egl_event" supported="opencl">
4777            <require>
4778                <type name="CL/cl.h"/>
4779            </require>
4780            <require>
4781                <command name="clCreateEventFromEGLSyncKHR"/>
4782            </require>
4783        </extension>
4784        <extension name="cl_khr_fp64" supported="opencl">
4785            <require>
4786                <type name="CL/cl.h"/>
4787            </require>
4788            <require condition="!defined(CL_VERSION_1_2)" comment="cl_device_info - defined in CL.h for OpenCL 1.2 and newer">
4789                <enum name="CL_DEVICE_DOUBLE_FP_CONFIG"/>
4790            </require>
4791        </extension>
4792        <extension name="cl_khr_fp16" supported="opencl">
4793            <require>
4794                <type name="CL/cl.h"/>
4795            </require>
4796            <require comment="cl_device_info">
4797                <enum name="CL_DEVICE_HALF_FP_CONFIG"/>
4798            </require>
4799        </extension>
4800        <extension name="cl_APPLE_SetMemObjectDestructor" comment="not registered" supported="opencl">
4801            <require>
4802                <type name="CL/cl.h"/>
4803            </require>
4804            <require>
4805                <command name="clSetMemObjectDestructorAPPLE"/>
4806            </require>
4807        </extension>
4808        <extension name="cl_APPLE_ContextLoggingFunctions" comment="not registered" supported="opencl">
4809            <require>
4810                <type name="CL/cl.h"/>
4811            </require>
4812            <require>
4813                <command name="clLogMessagesToSystemLogAPPLE"/>
4814                <command name="clLogMessagesToStdoutAPPLE"/>
4815                <command name="clLogMessagesToStderrAPPLE"/>
4816            </require>
4817        </extension>
4818        <extension name="cl_khr_icd" supported="opencl">
4819            <require>
4820                <type name="CL/cl.h"/>
4821            </require>
4822            <require comment="cl_platform_info">
4823                <enum name="CL_PLATFORM_ICD_SUFFIX_KHR"/>
4824            </require>
4825            <require comment="Error codes">
4826                <enum name="CL_PLATFORM_NOT_FOUND_KHR"/>
4827            </require>
4828            <require>
4829                <command name="clIcdGetPlatformIDsKHR"/>
4830            </require>
4831        </extension>
4832        <extension name="cl_loader_layers" supported="opencl">
4833            <require>
4834                <type name="CL/cl_icd.h"/>
4835            </require>
4836            <require comment="cl_layer_info">
4837                <enum name="CL_LAYER_API_VERSION"/>
4838            </require>
4839            <require comment="Misc API enums">
4840                <enum name="CL_LAYER_API_VERSION_100"/>
4841            </require>
4842            <require>
4843                <command name="clGetLayerInfo"/>
4844                <command name="clInitLayer"/>
4845            </require>
4846        </extension>
4847        <extension name="cl_khr_il_program" supported="opencl">
4848            <require>
4849                <type name="CL/cl.h"/>
4850            </require>
4851            <require comment="cl_device_info">
4852                <enum name="CL_DEVICE_IL_VERSION_KHR"/>
4853            </require>
4854            <require comment="cl_program_info">
4855                <enum name="CL_PROGRAM_IL_KHR"/>
4856            </require>
4857            <require>
4858                <command name="clCreateProgramWithILKHR" comment="No EXT_SUFFIX?"/>
4859            </require>
4860        </extension>
4861        <extension name="cl_khr_image2D_from_buffer" supported="opencl">
4862            <require comment="cl_device_info">
4863                <enum name="CL_DEVICE_IMAGE_PITCH_ALIGNMENT_KHR"/>
4864                <enum name="CL_DEVICE_IMAGE_BASE_ADDRESS_ALIGNMENT_KHR"/>
4865            </require>
4866        </extension>
4867        <extension name="cl_khr_initialize_memory" supported="opencl">
4868            <require>
4869                <type name="CL/cl.h"/>
4870            </require>
4871            <require comment="Interop tokens">
4872                <enum name="CL_CONTEXT_MEMORY_INITIALIZE_KHR"/>
4873            </require>
4874        </extension>
4875        <extension name="cl_khr_terminate_context" supported="opencl">
4876            <require>
4877                <type name="CL/cl.h"/>
4878            </require>
4879            <require comment="cl_device_info">
4880                <enum name="CL_DEVICE_TERMINATE_CAPABILITY_KHR"/>
4881            </require>
4882            <require comment="cl_context_properties">
4883                <enum name="CL_CONTEXT_TERMINATE_KHR"/>
4884            </require>
4885            <require comment="Error codes">
4886                <enum name="CL_CONTEXT_TERMINATED_KHR"/>
4887            </require>
4888            <require>
4889                <command name="clTerminateContextKHR"/>
4890            </require>
4891        </extension>
4892        <extension name="cl_khr_spir" supported="opencl">
4893            <require>
4894                <type name="CL/cl.h"/>
4895            </require>
4896            <require comment="cl_device_info">
4897                <enum name="CL_DEVICE_SPIR_VERSIONS"/>
4898            </require>
4899            <require comment="cl_program_binary_type">
4900                <enum name="CL_PROGRAM_BINARY_TYPE_INTERMEDIATE"/>
4901            </require>
4902        </extension>
4903        <extension name="cl_khr_create_command_queue" supported="opencl">
4904            <require>
4905                <type name="CL/cl.h"/>
4906            </require>
4907            <require>
4908                <type name="cl_queue_properties_khr"/>
4909            </require>
4910            <require>
4911                <command name="clCreateCommandQueueWithPropertiesKHR"/>
4912            </require>
4913        </extension>
4914        <extension name="cl_nv_device_attribute_query" supported="opencl">
4915            <require>
4916                <type name="CL/cl.h"/>
4917            </require>
4918            <require comment="cl_device_info">
4919                <enum name="CL_DEVICE_COMPUTE_CAPABILITY_MAJOR_NV"/>
4920                <enum name="CL_DEVICE_COMPUTE_CAPABILITY_MINOR_NV"/>
4921                <enum name="CL_DEVICE_REGISTERS_PER_BLOCK_NV"/>
4922                <enum name="CL_DEVICE_WARP_SIZE_NV"/>
4923                <enum name="CL_DEVICE_GPU_OVERLAP_NV"/>
4924                <enum name="CL_DEVICE_KERNEL_EXEC_TIMEOUT_NV"/>
4925                <enum name="CL_DEVICE_INTEGRATED_MEMORY_NV"/>
4926            </require>
4927        </extension>
4928        <extension name="cl_amd_device_attribute_query" supported="opencl">
4929            <require>
4930                <type name="CL/cl.h"/>
4931            </require>
4932            <require comment="cl_device_info">
4933                <enum name="CL_DEVICE_PROFILING_TIMER_OFFSET_AMD"/>
4934                <enum name="CL_DEVICE_TOPOLOGY_AMD"/>
4935                <enum name="CL_DEVICE_BOARD_NAME_AMD"/>
4936                <enum name="CL_DEVICE_GLOBAL_FREE_MEMORY_AMD"/>
4937                <enum name="CL_DEVICE_SIMD_PER_COMPUTE_UNIT_AMD"/>
4938                <enum name="CL_DEVICE_SIMD_WIDTH_AMD"/>
4939                <enum name="CL_DEVICE_SIMD_INSTRUCTION_WIDTH_AMD"/>
4940                <enum name="CL_DEVICE_WAVEFRONT_WIDTH_AMD"/>
4941                <enum name="CL_DEVICE_GLOBAL_MEM_CHANNELS_AMD"/>
4942                <enum name="CL_DEVICE_GLOBAL_MEM_CHANNEL_BANKS_AMD"/>
4943                <enum name="CL_DEVICE_GLOBAL_MEM_CHANNEL_BANK_WIDTH_AMD"/>
4944                <enum name="CL_DEVICE_LOCAL_MEM_SIZE_PER_COMPUTE_UNIT_AMD"/>
4945                <enum name="CL_DEVICE_LOCAL_MEM_BANKS_AMD"/>
4946                <enum name="CL_DEVICE_THREAD_TRACE_SUPPORTED_AMD"/>
4947                <enum name="CL_DEVICE_GFXIP_MAJOR_AMD"/>
4948                <enum name="CL_DEVICE_GFXIP_MINOR_AMD"/>
4949                <enum name="CL_DEVICE_AVAILABLE_ASYNC_QUEUES_AMD"/>
4950                <enum name="CL_DEVICE_PREFERRED_WORK_GROUP_SIZE_AMD"/>
4951                <enum name="CL_DEVICE_MAX_WORK_GROUP_SIZE_AMD"/>
4952                <enum name="CL_DEVICE_PREFERRED_CONSTANT_BUFFER_SIZE_AMD"/>
4953                <enum name="CL_DEVICE_PCIE_ID_AMD"/>
4954            </require>
4955        </extension>
4956        <extension name="cl_arm_printf" supported="opencl">
4957            <require>
4958                <type name="CL/cl.h"/>
4959            </require>
4960            <require comment="cl_context_properties">
4961                <enum name="CL_PRINTF_CALLBACK_ARM"/>
4962                <enum name="CL_PRINTF_BUFFERSIZE_ARM"/>
4963            </require>
4964        </extension>
4965        <extension name="cl_ext_device_fission" supported="opencl">
4966            <require>
4967                <type name="CL/cl.h"/>
4968            </require>
4969            <require>
4970                <type name="cl_device_partition_property_ext"/>
4971            </require>
4972            <require comment="Error codes">
4973                <enum name="CL_DEVICE_PARTITION_FAILED_EXT"/>
4974                <enum name="CL_INVALID_PARTITION_COUNT_EXT"/>
4975                <enum name="CL_INVALID_PARTITION_NAME_EXT"/>
4976            </require>
4977            <require comment="cl_device_info">
4978                <enum name="CL_DEVICE_PARENT_DEVICE_EXT"/>
4979                <enum name="CL_DEVICE_PARTITION_TYPES_EXT"/>
4980                <enum name="CL_DEVICE_AFFINITY_DOMAINS_EXT"/>
4981                <enum name="CL_DEVICE_REFERENCE_COUNT_EXT"/>
4982                <enum name="CL_DEVICE_PARTITION_STYLE_EXT"/>
4983            </require>
4984            <require comment="cl_device_partition_property_ext">
4985                <enum name="CL_DEVICE_PARTITION_EQUALLY_EXT"/>
4986                <enum name="CL_DEVICE_PARTITION_BY_COUNTS_EXT"/>
4987                <enum name="CL_DEVICE_PARTITION_BY_NAMES_EXT"/>
4988                <enum name="CL_DEVICE_PARTITION_BY_AFFINITY_DOMAIN_EXT"/>
4989            </require>
4990            <require comment="cl_device_partition_property_ext - affinity domains">
4991                <enum name="CL_AFFINITY_DOMAIN_L1_CACHE_EXT"/>
4992                <enum name="CL_AFFINITY_DOMAIN_L2_CACHE_EXT"/>
4993                <enum name="CL_AFFINITY_DOMAIN_L3_CACHE_EXT"/>
4994                <enum name="CL_AFFINITY_DOMAIN_L4_CACHE_EXT"/>
4995                <enum name="CL_AFFINITY_DOMAIN_NUMA_EXT"/>
4996                <enum name="CL_AFFINITY_DOMAIN_NEXT_FISSIONABLE_EXT"/>
4997            </require>
4998            <require comment="cl_device_partition_property_ext - list terminators">
4999                <enum name="CL_PROPERTIES_LIST_END_EXT"/>
5000                <enum name="CL_PARTITION_BY_COUNTS_LIST_END_EXT"/>
5001                <enum name="CL_PARTITION_BY_NAMES_LIST_END_EXT"/>
5002            </require>
5003            <require>
5004                <command name="clReleaseDeviceEXT"/>
5005                <command name="clRetainDeviceEXT"/>
5006                <command name="clCreateSubDevicesEXT"/>
5007            </require>
5008        </extension>
5009        <extension name="cl_ext_migrate_memobject" supported="opencl">
5010            <require>
5011                <type name="CL/cl.h"/>
5012            </require>
5013            <require>
5014                <type name="cl_mem_migration_flags_ext"/>
5015            </require>
5016            <require comment="cl_mem_migration_flags_ext">
5017                <enum name="CL_MIGRATE_MEM_OBJECT_HOST_EXT"/>
5018            </require>
5019            <require comment="cl_command_type">
5020                <enum name="CL_COMMAND_MIGRATE_MEM_OBJECT_EXT"/>
5021            </require>
5022            <require>
5023                <command name="clEnqueueMigrateMemObjectEXT"/>
5024            </require>
5025        </extension>
5026        <extension name="cl_qcom_ext_host_ptr" supported="opencl">
5027            <require>
5028                <type name="CL/cl.h"/>
5029            </require>
5030            <require>
5031                <type name="cl_image_pitch_info_qcom"/>
5032                <type name="cl_mem_ext_host_ptr"/>
5033            </require>
5034            <require comment="cl_mem_flags">
5035                <enum name="CL_MEM_EXT_HOST_PTR_QCOM"/>
5036            </require>
5037            <require comment="cl_device_info">
5038                <enum name="CL_DEVICE_EXT_MEM_PADDING_IN_BYTES_QCOM"/>
5039                <enum name="CL_DEVICE_PAGE_SIZE_QCOM"/>
5040            </require>
5041            <require comment="cl_image_pitch_info_qcom">
5042                <enum name="CL_IMAGE_ROW_ALIGNMENT_QCOM"/>
5043                <enum name="CL_IMAGE_SLICE_ALIGNMENT_QCOM"/>
5044            </require>
5045            <require comment="cl_uint host_cache_policy">
5046                <enum name="CL_MEM_HOST_UNCACHED_QCOM"/>
5047                <enum name="CL_MEM_HOST_WRITEBACK_QCOM"/>
5048                <enum name="CL_MEM_HOST_WRITETHROUGH_QCOM"/>
5049                <enum name="CL_MEM_HOST_WRITE_COMBINING_QCOM"/>
5050            </require>
5051            <require>
5052                <command name="clGetDeviceImageInfoQCOM"/>
5053            </require>
5054        </extension>
5055        <extension name="cl_qcom_ext_host_ptr_iocoherent" supported="opencl">
5056            <require>
5057                <type name="CL/cl.h"/>
5058            </require>
5059            <require comment="cl_uint host_cache_policy">
5060                <enum name="CL_MEM_HOST_IOCOHERENT_QCOM"/>
5061            </require>
5062        </extension>
5063        <extension name="cl_qcom_ion_host_ptr" supported="opencl">
5064            <require>
5065                <type name="CL/cl.h"/>
5066            </require>
5067            <require>
5068                <type name="cl_mem_ion_host_ptr"/>
5069            </require>
5070            <require comment="cl_uint allocation_type">
5071                <enum name="CL_MEM_ION_HOST_PTR_QCOM"/>
5072            </require>
5073        </extension>
5074        <extension name="cl_qcom_android_native_buffer_host_ptr" supported="opencl">
5075            <require>
5076                <type name="CL/cl.h"/>
5077            </require>
5078            <require>
5079                <type name="cl_mem_android_native_buffer_host_ptr"/>
5080            </require>
5081            <require comment="cl_uint allocation_type">
5082                <enum name="CL_MEM_ANDROID_NATIVE_BUFFER_HOST_PTR_QCOM"/>
5083            </require>
5084        </extension>
5085        <extension name="cl_img_yuv_image" supported="opencl">
5086            <require>
5087                <type name="CL/cl.h"/>
5088            </require>
5089            <require comment="cl_channel_order">
5090                <enum name="CL_NV21_IMG"/>
5091                <enum name="CL_YV12_IMG"/>
5092            </require>
5093        </extension>
5094        <extension name="cl_img_cached_allocations" supported="opencl">
5095            <require>
5096                <type name="CL/cl.h"/>
5097            </require>
5098            <require comment="cl_mem_flags">
5099                <enum name="CL_MEM_USE_UNCACHED_CPU_MEMORY_IMG"/>
5100                <enum name="CL_MEM_USE_CACHED_CPU_MEMORY_IMG"/>
5101            </require>
5102        </extension>
5103        <extension name="cl_khr_mipmap_image" supported="opencl">
5104            <require>
5105                <type name="CL/cl.h"/>
5106            </require>
5107            <require comment="cl_sampler_properties">
5108                <enum name="CL_SAMPLER_MIP_FILTER_MODE_KHR"/>
5109                <enum name="CL_SAMPLER_LOD_MIN_KHR"/>
5110                <enum name="CL_SAMPLER_LOD_MAX_KHR"/>
5111            </require>
5112        </extension>
5113        <extension name="cl_img_use_gralloc_ptr" supported="opencl">
5114            <require>
5115                <type name="CL/cl.h"/>
5116            </require>
5117            <require comment="Error codes">
5118                <enum name="CL_GRALLOC_RESOURCE_NOT_ACQUIRED_IMG"/>
5119                <enum name="CL_INVALID_GRALLOC_OBJECT_IMG"/>
5120            </require>
5121            <require comment="cl_mem_flags">
5122                <enum name="CL_MEM_USE_GRALLOC_PTR_IMG"/>
5123            </require>
5124            <require comment="cl_command_type">
5125                <enum name="CL_COMMAND_ACQUIRE_GRALLOC_OBJECTS_IMG"/>
5126                <enum name="CL_COMMAND_RELEASE_GRALLOC_OBJECTS_IMG"/>
5127            </require>
5128            <require>
5129                <command name="clEnqueueAcquireGrallocObjectsIMG"/>
5130                <command name="clEnqueueReleaseGrallocObjectsIMG"/>
5131            </require>
5132        </extension>
5133        <extension name="cl_khr_subgroups" supported="opencl">
5134            <require>
5135                <type name="CL/cl.h"/>
5136            </require>
5137            <require condition="!defined(CL_VERSION_2_1)" comment="defined in CL.h for OpenCL 2.1 and newer">
5138                <type name="cl_kernel_sub_group_info"/>
5139            </require>
5140            <require comment="cl_kernel_sub_group_info">
5141                <enum name="CL_KERNEL_MAX_SUB_GROUP_SIZE_FOR_NDRANGE_KHR"/>
5142                <enum name="CL_KERNEL_SUB_GROUP_COUNT_FOR_NDRANGE_KHR"/>
5143            </require>
5144            <require>
5145                <command name="clGetKernelSubGroupInfoKHR"/>
5146            </require>
5147        </extension>
5148        <extension name="cl_khr_priority_hints" supported="opencl">
5149            <require>
5150                <type name="CL/cl.h"/>
5151            </require>
5152            <require comment="To be used by clGetEventInfo">
5153                <type name="cl_queue_priority_khr"/>
5154            </require>
5155            <require comment="cl_queue_properties">
5156                <enum name="CL_QUEUE_PRIORITY_KHR"/>
5157            </require>
5158            <require comment="cl_queue_priority_khr">
5159                <enum name="CL_QUEUE_PRIORITY_HIGH_KHR"/>
5160                <enum name="CL_QUEUE_PRIORITY_MED_KHR"/>
5161                <enum name="CL_QUEUE_PRIORITY_LOW_KHR"/>
5162            </require>
5163        </extension>
5164        <extension name="cl_khr_throttle_hints" supported="opencl">
5165            <require>
5166                <type name="CL/cl.h"/>
5167            </require>
5168            <require comment="To be used by clGetEventInfo">
5169                <type name="cl_queue_throttle_khr"/>
5170            </require>
5171            <require comment="cl_queue_properties">
5172                <enum name="CL_QUEUE_THROTTLE_KHR"/>
5173            </require>
5174            <require comment="cl_queue_throttle_khr">
5175                <enum name="CL_QUEUE_THROTTLE_HIGH_KHR"/>
5176                <enum name="CL_QUEUE_THROTTLE_MED_KHR"/>
5177                <enum name="CL_QUEUE_THROTTLE_LOW_KHR"/>
5178            </require>
5179        </extension>
5180        <extension name="cl_khr_subgroup_named_barrier" supported="opencl">
5181            <require>
5182                <type name="CL/cl.h"/>
5183            </require>
5184            <require comment="cl_device_info">
5185                <enum name="CL_DEVICE_MAX_NAMED_BARRIER_COUNT_KHR"/>
5186            </require>
5187        </extension>
5188        <extension name="cl_arm_import_memory" supported="opencl">
5189            <require>
5190                <type name="CL/cl.h"/>
5191            </require>
5192            <require>
5193                <type name="cl_import_properties_arm"/>
5194            </require>
5195            <require comment="cl_import_properties_arm">
5196                <enum name="CL_IMPORT_TYPE_ARM"/>
5197                <enum name="CL_IMPORT_TYPE_HOST_ARM"/>
5198                <enum name="CL_IMPORT_TYPE_DMA_BUF_ARM"/>
5199                <enum name="CL_IMPORT_TYPE_PROTECTED_ARM"/>
5200                <enum name="CL_IMPORT_TYPE_ANDROID_HARDWARE_BUFFER_ARM"/>
5201                <enum name="CL_IMPORT_DMA_BUF_DATA_CONSISTENCY_WITH_HOST_ARM"/>
5202                <enum name="CL_IMPORT_MEMORY_WHOLE_ALLOCATION_ARM"/>
5203                <enum name="CL_IMPORT_ANDROID_HARDWARE_BUFFER_PLANE_INDEX_ARM"/>
5204                <enum name="CL_IMPORT_ANDROID_HARDWARE_BUFFER_LAYER_INDEX_ARM"/>
5205            </require>
5206            <require>
5207                <comment>
5208                    Allows for direct memory import into OpenCL via the clImportMemoryARM function.
5209
5210                    Memory imported through this interface will be mapped into the device's page
5211                    tables directly, providing zero copy access. It will never fall back to copy
5212                    operations and aliased buffers.
5213
5214                    Types of memory supported for import are specified as additional extension
5215                    strings.
5216
5217                    This extension produces cl_mem allocations which are compatible with all other
5218                    users of cl_mem in the standard API.
5219
5220                    This extension maps pages with the same properties as the normal buffer creation
5221                    function clCreateBuffer.
5222                </comment>
5223                <command name="clImportMemoryARM"/>
5224            </require>
5225        </extension>
5226        <extension name="cl_arm_shared_virtual_memory" supported="opencl">
5227            <require>
5228                <type name="CL/cl.h"/>
5229            </require>
5230            <require>
5231                <type name="cl_svm_mem_flags_arm"/>
5232                <type name="cl_kernel_exec_info_arm"/>
5233                <type name="cl_device_svm_capabilities_arm"/>
5234            </require>
5235            <require comment="cl_device_info">
5236                <enum name="CL_DEVICE_SVM_CAPABILITIES_ARM"/>
5237            </require>
5238            <require comment="cl_mem_info">
5239                <enum name="CL_MEM_USES_SVM_POINTER_ARM"/>
5240            </require>
5241            <require comment="cl_kernel_exec_info_arm">
5242                <enum name="CL_KERNEL_EXEC_INFO_SVM_PTRS_ARM"/>
5243                <enum name="CL_KERNEL_EXEC_INFO_SVM_FINE_GRAIN_SYSTEM_ARM"/>
5244            </require>
5245            <require comment="cl_command_type">
5246                <enum name="CL_COMMAND_SVM_FREE_ARM"/>
5247                <enum name="CL_COMMAND_SVM_MEMCPY_ARM"/>
5248                <enum name="CL_COMMAND_SVM_MEMFILL_ARM"/>
5249                <enum name="CL_COMMAND_SVM_MAP_ARM"/>
5250                <enum name="CL_COMMAND_SVM_UNMAP_ARM"/>
5251            </require>
5252            <require comment="cl_device_svm_capabilities_arm">
5253                <enum name="CL_DEVICE_SVM_COARSE_GRAIN_BUFFER_ARM"/>
5254                <enum name="CL_DEVICE_SVM_FINE_GRAIN_BUFFER_ARM"/>
5255                <enum name="CL_DEVICE_SVM_FINE_GRAIN_SYSTEM_ARM"/>
5256                <enum name="CL_DEVICE_SVM_ATOMICS_ARM"/>
5257            </require>
5258            <require comment="cl_svm_mem_flags_arm">
5259                <enum name="CL_MEM_SVM_FINE_GRAIN_BUFFER_ARM"/>
5260                <enum name="CL_MEM_SVM_ATOMICS_ARM"/>
5261            </require>
5262            <require>
5263                <command name="clSVMAllocARM"/>
5264                <command name="clSVMFreeARM"/>
5265                <command name="clEnqueueSVMFreeARM"/>
5266                <command name="clEnqueueSVMMemcpyARM"/>
5267                <command name="clEnqueueSVMMemFillARM"/>
5268                <command name="clEnqueueSVMMapARM"/>
5269                <command name="clEnqueueSVMUnmapARM"/>
5270                <command name="clSetKernelArgSVMPointerARM"/>
5271                <command name="clSetKernelExecInfoARM"/>
5272            </require>
5273        </extension>
5274        <extension name="cl_arm_get_core_id" requires="CL_VERSION_1_2" supported="opencl">
5275            <require>
5276                <type name="CL/cl.h"/>
5277            </require>
5278            <require comment="cl_device_info">
5279                <enum name="CL_DEVICE_COMPUTE_UNITS_BITFIELD_ARM"/>
5280            </require>
5281        </extension>
5282        <extension name="cl_intel_thread_local_exec" supported="opencl">
5283            <require>
5284                <type name="CL/cl.h"/>
5285                <type name="CL/cl_platform.h"/>
5286            </require>
5287            <require comment="cl_command_queue_properties - bitfield">
5288                <enum name="CL_QUEUE_THREAD_LOCAL_EXEC_ENABLE_INTEL"/>
5289            </require>
5290        </extension>
5291        <extension name="cl_intel_device_partition_by_names" supported="opencl">
5292            <require>
5293                <enum name="CL_DEVICE_PARTITION_BY_NAMES_INTEL"/>
5294                <enum name="CL_PARTITION_BY_NAMES_LIST_END_INTEL"/>
5295            </require>
5296        </extension>
5297        <extension name="cl_intel_accelerator" supported="opencl">
5298            <require>
5299                <type name="cl_accelerator_intel"/>
5300                <type name="cl_accelerator_type_intel"/>
5301                <type name="cl_accelerator_info_intel"/>
5302            </require>
5303            <require comment="cl_accelerator_info_intel">
5304                <enum name="CL_ACCELERATOR_DESCRIPTOR_INTEL"/>
5305                <enum name="CL_ACCELERATOR_REFERENCE_COUNT_INTEL"/>
5306                <enum name="CL_ACCELERATOR_CONTEXT_INTEL"/>
5307                <enum name="CL_ACCELERATOR_TYPE_INTEL"/>
5308            </require>
5309            <require comment="Error codes">
5310                <enum name="CL_INVALID_ACCELERATOR_INTEL"/>
5311                <enum name="CL_INVALID_ACCELERATOR_TYPE_INTEL"/>
5312                <enum name="CL_INVALID_ACCELERATOR_DESCRIPTOR_INTEL"/>
5313                <enum name="CL_ACCELERATOR_TYPE_NOT_SUPPORTED_INTEL"/>
5314            </require>
5315            <require>
5316                <command name="clCreateAcceleratorINTEL"/>
5317                <command name="clGetAcceleratorInfoINTEL"/>
5318                <command name="clRetainAcceleratorINTEL"/>
5319                <command name="clReleaseAcceleratorINTEL"/>
5320            </require>
5321        </extension>
5322        <extension name="cl_intel_motion_estimation" supported="opencl">
5323            <require>
5324                <type name="cl_motion_estimation_desc_intel"/>
5325            </require>
5326            <require comment="cl_accelerator_type_intel">
5327                <enum name="CL_ACCELERATOR_TYPE_MOTION_ESTIMATION_INTEL"/>
5328            </require>
5329            <require comment="cl_uint mb_block_type">
5330                <enum name="CL_ME_MB_TYPE_16x16_INTEL"/>
5331                <enum name="CL_ME_MB_TYPE_8x8_INTEL"/>
5332                <enum name="CL_ME_MB_TYPE_4x4_INTEL"/>
5333            </require>
5334            <require comment="cl_uint subpixel_mode">
5335                <enum name="CL_ME_SUBPIXEL_MODE_INTEGER_INTEL"/>
5336                <enum name="CL_ME_SUBPIXEL_MODE_HPEL_INTEL"/>
5337                <enum name="CL_ME_SUBPIXEL_MODE_QPEL_INTEL"/>
5338            </require>
5339            <require comment="cl_uint sad_adjust_mode">
5340                <enum name="CL_ME_SAD_ADJUST_MODE_NONE_INTEL"/>
5341                <enum name="CL_ME_SAD_ADJUST_MODE_HAAR_INTEL"/>
5342            </require>
5343            <require comment="cl_uint search_path_type">
5344                <enum name="CL_ME_SEARCH_PATH_RADIUS_2_2_INTEL"/>
5345                <enum name="CL_ME_SEARCH_PATH_RADIUS_4_4_INTEL"/>
5346                <enum name="CL_ME_SEARCH_PATH_RADIUS_16_12_INTEL"/>
5347            </require>
5348        </extension>
5349        <extension name="cl_intel_advanced_motion_estimation" supported="opencl">
5350            <require comment="cl_device_info">
5351                <enum name="CL_DEVICE_ME_VERSION_INTEL"/>
5352            </require>
5353            <require>
5354                <enum name="CL_ME_VERSION_LEGACY_INTEL"/>
5355                <enum name="CL_ME_VERSION_ADVANCED_VER_1_INTEL"/>
5356                <enum name="CL_ME_VERSION_ADVANCED_VER_2_INTEL"/>
5357            </require>
5358            <require>
5359                <enum name="CL_ME_CHROMA_INTRA_PREDICT_ENABLED_INTEL"/>
5360                <enum name="CL_ME_LUMA_INTRA_PREDICT_ENABLED_INTEL"/>
5361            </require>
5362            <require>
5363                <enum name="CL_ME_SKIP_BLOCK_TYPE_16x16_INTEL"/>
5364                <enum name="CL_ME_SKIP_BLOCK_TYPE_8x8_INTEL"/>
5365            </require>
5366            <require>
5367                <enum name="CL_ME_COST_PENALTY_NONE_INTEL"/>
5368                <enum name="CL_ME_COST_PENALTY_LOW_INTEL"/>
5369                <enum name="CL_ME_COST_PENALTY_NORMAL_INTEL"/>
5370                <enum name="CL_ME_COST_PENALTY_HIGH_INTEL"/>
5371            </require>
5372            <require>
5373                <enum name="CL_ME_COST_PRECISION_QPEL_INTEL"/>
5374                <enum name="CL_ME_COST_PRECISION_HPEL_INTEL"/>
5375                <enum name="CL_ME_COST_PRECISION_PEL_INTEL"/>
5376                <enum name="CL_ME_COST_PRECISION_DPEL_INTEL"/>
5377            </require>
5378            <require>
5379                <enum name="CL_ME_LUMA_PREDICTOR_MODE_VERTICAL_INTEL"/>
5380                <enum name="CL_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_INTEL"/>
5381                <enum name="CL_ME_LUMA_PREDICTOR_MODE_DC_INTEL"/>
5382                <enum name="CL_ME_LUMA_PREDICTOR_MODE_DIAGONAL_DOWN_LEFT_INTEL"/>
5383                <enum name="CL_ME_LUMA_PREDICTOR_MODE_DIAGONAL_DOWN_RIGHT_INTEL"/>
5384                <enum name="CL_ME_LUMA_PREDICTOR_MODE_PLANE_INTEL"/>
5385                <enum name="CL_ME_LUMA_PREDICTOR_MODE_VERTICAL_RIGHT_INTEL"/>
5386                <enum name="CL_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_DOWN_INTEL"/>
5387                <enum name="CL_ME_LUMA_PREDICTOR_MODE_VERTICAL_LEFT_INTEL"/>
5388                <enum name="CL_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_UP_INTEL"/>
5389            </require>
5390            <require>
5391                <enum name="CL_ME_CHROMA_PREDICTOR_MODE_DC_INTEL"/>
5392                <enum name="CL_ME_CHROMA_PREDICTOR_MODE_HORIZONTAL_INTEL"/>
5393                <enum name="CL_ME_CHROMA_PREDICTOR_MODE_VERTICAL_INTEL"/>
5394                <enum name="CL_ME_CHROMA_PREDICTOR_MODE_PLANE_INTEL"/>
5395            </require>
5396            <require>
5397                <enum name="CL_ME_FORWARD_INPUT_MODE_INTEL"/>
5398                <enum name="CL_ME_BACKWARD_INPUT_MODE_INTEL"/>
5399                <enum name="CL_ME_BIDIRECTION_INPUT_MODE_INTEL"/>
5400            </require>
5401            <require>
5402                <enum name="CL_ME_BIDIR_WEIGHT_QUARTER_INTEL"/>
5403                <enum name="CL_ME_BIDIR_WEIGHT_THIRD_INTEL"/>
5404                <enum name="CL_ME_BIDIR_WEIGHT_HALF_INTEL"/>
5405                <enum name="CL_ME_BIDIR_WEIGHT_TWO_THIRD_INTEL"/>
5406                <enum name="CL_ME_BIDIR_WEIGHT_THREE_QUARTER_INTEL"/>
5407            </require>
5408        </extension>
5409        <extension name="cl_intel_simultaneous_sharing" supported="opencl">
5410            <require comment="cl_device_info">
5411                <enum name="CL_DEVICE_SIMULTANEOUS_INTEROPS_INTEL"/>
5412                <enum name="CL_DEVICE_NUM_SIMULTANEOUS_INTEROPS_INTEL"/>
5413            </require>
5414        </extension>
5415        <extension name="cl_intel_egl_image_yuv" supported="opencl">
5416            <require comment="cl_egl_image_properties_khr">
5417                <enum name="CL_EGL_YUV_PLANE_INTEL"/>
5418            </require>
5419        </extension>
5420        <extension name="cl_intel_packed_yuv" supported="opencl">
5421            <require comment="cl_channel_order">
5422                <enum name="CL_YUYV_INTEL"/>
5423                <enum name="CL_UYVY_INTEL"/>
5424                <enum name="CL_YVYU_INTEL"/>
5425                <enum name="CL_VYUY_INTEL"/>
5426            </require>
5427        </extension>
5428        <extension name="cl_intel_required_subgroup_size" supported="opencl">
5429            <require comment="cl_device_info">
5430                <enum name="CL_DEVICE_SUB_GROUP_SIZES_INTEL"/>
5431            </require>
5432            <require comment="cl_kernel_work_group_info">
5433                <enum name="CL_KERNEL_SPILL_MEM_SIZE_INTEL"/>
5434            </require>
5435            <require comment="cl_kernel_sub_group_info">
5436                <enum name="CL_KERNEL_COMPILE_SUB_GROUP_SIZE_INTEL"/>
5437            </require>
5438        </extension>
5439        <extension name="cl_intel_driver_diagnostics" supported="opencl">
5440            <require>
5441                <type name="cl_diagnostics_verbose_level"/>
5442            </require>
5443            <require comment="cl_context_properties">
5444                <enum name="CL_CONTEXT_SHOW_DIAGNOSTICS_INTEL"/>
5445                <enum name="CL_CONTEXT_DIAGNOSTICS_LEVEL_ALL_INTEL"/>
5446                <enum name="CL_CONTEXT_DIAGNOSTICS_LEVEL_GOOD_INTEL"/>
5447                <enum name="CL_CONTEXT_DIAGNOSTICS_LEVEL_BAD_INTEL"/>
5448                <enum name="CL_CONTEXT_DIAGNOSTICS_LEVEL_NEUTRAL_INTEL"/>
5449            </require>
5450        </extension>
5451        <extension name="cl_intel_planar_yuv" supported="opencl">
5452            <require comment="cl_channel_order">
5453                <enum name="CL_NV12_INTEL"/>
5454            </require>
5455            <require comment="cl_mem_flags">
5456                <enum name="CL_MEM_NO_ACCESS_INTEL"/>
5457                <enum name="CL_MEM_ACCESS_FLAGS_UNRESTRICTED_INTEL"/>
5458            </require>
5459            <require comment="cl_device_info">
5460                <enum name="CL_DEVICE_PLANAR_YUV_MAX_WIDTH_INTEL"/>
5461                <enum name="CL_DEVICE_PLANAR_YUV_MAX_HEIGHT_INTEL"/>
5462            </require>
5463        </extension>
5464        <extension name="cl_intel_device_side_avc_motion_estimation" supported="opencl">
5465            <require comment="cl_device_info">
5466                <enum name="CL_DEVICE_AVC_ME_VERSION_INTEL"/>
5467                <enum name="CL_DEVICE_AVC_ME_SUPPORTS_TEXTURE_SAMPLER_USE_INTEL"/>
5468                <enum name="CL_DEVICE_AVC_ME_SUPPORTS_PREEMPTION_INTEL"/>
5469            </require>
5470            <require comment="returned by CL_DEVICE_AVC_ME_VERSION_INTEL">
5471                <enum name="CL_AVC_ME_VERSION_0_INTEL"/>
5472                <enum name="CL_AVC_ME_VERSION_1_INTEL"/>
5473            </require>
5474            <require comment="Inter macro-block major shape values">
5475                <enum name="CL_AVC_ME_MAJOR_16x16_INTEL"/>
5476                <enum name="CL_AVC_ME_MAJOR_16x8_INTEL"/>
5477                <enum name="CL_AVC_ME_MAJOR_8x16_INTEL"/>
5478                <enum name="CL_AVC_ME_MAJOR_8x8_INTEL"/>
5479            </require>
5480            <require comment="Inter macro-block minor shape values">
5481                <enum name="CL_AVC_ME_MINOR_8x8_INTEL"/>
5482                <enum name="CL_AVC_ME_MINOR_8x4_INTEL"/>
5483                <enum name="CL_AVC_ME_MINOR_4x8_INTEL"/>
5484                <enum name="CL_AVC_ME_MINOR_4x4_INTEL"/>
5485            </require>
5486            <require comment="Inter macro-block major direction values">
5487                <enum name="CL_AVC_ME_MAJOR_FORWARD_INTEL"/>
5488                <enum name="CL_AVC_ME_MAJOR_BACKWARD_INTEL"/>
5489                <enum name="CL_AVC_ME_MAJOR_BIDIRECTIONAL_INTEL"/>
5490            </require>
5491            <require comment="Inter (IME) partition mask values">
5492                <enum name="CL_AVC_ME_PARTITION_MASK_ALL_INTEL"/>
5493                <enum name="CL_AVC_ME_PARTITION_MASK_16x16_INTEL"/>
5494                <enum name="CL_AVC_ME_PARTITION_MASK_16x8_INTEL"/>
5495                <enum name="CL_AVC_ME_PARTITION_MASK_8x16_INTEL"/>
5496                <enum name="CL_AVC_ME_PARTITION_MASK_8x8_INTEL"/>
5497                <enum name="CL_AVC_ME_PARTITION_MASK_8x4_INTEL"/>
5498                <enum name="CL_AVC_ME_PARTITION_MASK_4x8_INTEL"/>
5499                <enum name="CL_AVC_ME_PARTITION_MASK_4x4_INTEL"/>
5500            </require>
5501            <require comment="Search window configuration">
5502                <enum name="CL_AVC_ME_SEARCH_WINDOW_EXHAUSTIVE_INTEL"/>
5503                <enum name="CL_AVC_ME_SEARCH_WINDOW_SMALL_INTEL"/>
5504                <enum name="CL_AVC_ME_SEARCH_WINDOW_TINY_INTEL"/>
5505                <enum name="CL_AVC_ME_SEARCH_WINDOW_EXTRA_TINY_INTEL"/>
5506                <enum name="CL_AVC_ME_SEARCH_WINDOW_DIAMOND_INTEL"/>
5507                <enum name="CL_AVC_ME_SEARCH_WINDOW_LARGE_DIAMOND_INTEL"/>
5508                <enum name="CL_AVC_ME_SEARCH_WINDOW_RESERVED0_INTEL"/>
5509                <enum name="CL_AVC_ME_SEARCH_WINDOW_RESERVED1_INTEL"/>
5510                <enum name="CL_AVC_ME_SEARCH_WINDOW_CUSTOM_INTEL"/>
5511                <enum name="CL_AVC_ME_SEARCH_WINDOW_16x12_RADIUS_INTEL"/>
5512                <enum name="CL_AVC_ME_SEARCH_WINDOW_4x4_RADIUS_INTEL"/>
5513                <enum name="CL_AVC_ME_SEARCH_WINDOW_2x2_RADIUS_INTEL"/>
5514            </require>
5515            <require comment="SAD adjustment mode">
5516                <enum name="CL_AVC_ME_SAD_ADJUST_MODE_NONE_INTEL"/>
5517                <enum name="CL_AVC_ME_SAD_ADJUST_MODE_HAAR_INTEL"/>
5518            </require>
5519            <require comment="Pixel resolution">
5520                <enum name="CL_AVC_ME_SUBPIXEL_MODE_INTEGER_INTEL"/>
5521                <enum name="CL_AVC_ME_SUBPIXEL_MODE_HPEL_INTEL"/>
5522                <enum name="CL_AVC_ME_SUBPIXEL_MODE_QPEL_INTEL"/>
5523            </require>
5524            <require comment="Cost precision values">
5525                <enum name="CL_AVC_ME_COST_PRECISION_QPEL_INTEL"/>
5526                <enum name="CL_AVC_ME_COST_PRECISION_HPEL_INTEL"/>
5527                <enum name="CL_AVC_ME_COST_PRECISION_PEL_INTEL"/>
5528                <enum name="CL_AVC_ME_COST_PRECISION_DPEL_INTEL"/>
5529            </require>
5530            <require comment="Inter bidirectional weights">
5531                <enum name="CL_AVC_ME_BIDIR_WEIGHT_QUARTER_INTEL"/>
5532                <enum name="CL_AVC_ME_BIDIR_WEIGHT_THIRD_INTEL"/>
5533                <enum name="CL_AVC_ME_BIDIR_WEIGHT_HALF_INTEL"/>
5534                <enum name="CL_AVC_ME_BIDIR_WEIGHT_TWO_THIRD_INTEL"/>
5535                <enum name="CL_AVC_ME_BIDIR_WEIGHT_THREE_QUARTER_INTEL"/>
5536            </require>
5537            <require comment="Inter border reached values">
5538                <enum name="CL_AVC_ME_BORDER_REACHED_LEFT_INTEL"/>
5539                <enum name="CL_AVC_ME_BORDER_REACHED_RIGHT_INTEL"/>
5540                <enum name="CL_AVC_ME_BORDER_REACHED_TOP_INTEL"/>
5541                <enum name="CL_AVC_ME_BORDER_REACHED_BOTTOM_INTEL"/>
5542            </require>
5543            <require comment="Inter skip block partition type">
5544                <enum name="CL_AVC_ME_SKIP_BLOCK_PARTITION_16x16_INTEL"/>
5545                <enum name="CL_AVC_ME_SKIP_BLOCK_PARTITION_8x8_INTEL"/>
5546            </require>
5547            <require comment="Inter skip motion vector mask">
5548                <enum name="CL_AVC_ME_SKIP_BLOCK_16x16_FORWARD_ENABLE_INTEL"/>
5549                <enum name="CL_AVC_ME_SKIP_BLOCK_16x16_BACKWARD_ENABLE_INTEL"/>
5550                <enum name="CL_AVC_ME_SKIP_BLOCK_16x16_DUAL_ENABLE_INTEL"/>
5551                <enum name="CL_AVC_ME_SKIP_BLOCK_8x8_FORWARD_ENABLE_INTEL"/>
5552                <enum name="CL_AVC_ME_SKIP_BLOCK_8x8_BACKWARD_ENABLE_INTEL"/>
5553                <enum name="CL_AVC_ME_SKIP_BLOCK_8x8_DUAL_ENABLE_INTEL"/>
5554                <enum name="CL_AVC_ME_SKIP_BLOCK_8x8_0_FORWARD_ENABLE_INTEL"/>
5555                <enum name="CL_AVC_ME_SKIP_BLOCK_8x8_0_BACKWARD_ENABLE_INTEL"/>
5556                <enum name="CL_AVC_ME_SKIP_BLOCK_8x8_1_FORWARD_ENABLE_INTEL"/>
5557                <enum name="CL_AVC_ME_SKIP_BLOCK_8x8_1_BACKWARD_ENABLE_INTEL"/>
5558                <enum name="CL_AVC_ME_SKIP_BLOCK_8x8_2_FORWARD_ENABLE_INTEL"/>
5559                <enum name="CL_AVC_ME_SKIP_BLOCK_8x8_2_BACKWARD_ENABLE_INTEL"/>
5560                <enum name="CL_AVC_ME_SKIP_BLOCK_8x8_3_FORWARD_ENABLE_INTEL"/>
5561                <enum name="CL_AVC_ME_SKIP_BLOCK_8x8_3_BACKWARD_ENABLE_INTEL"/>
5562            </require>
5563            <require comment="Block based skip type values">
5564                <enum name="CL_AVC_ME_BLOCK_BASED_SKIP_4x4_INTEL"/>
5565                <enum name="CL_AVC_ME_BLOCK_BASED_SKIP_8x8_INTEL"/>
5566            </require>
5567            <require comment="cl_intel_device_side_avc_motion_estimation.??">
5568                <enum name="CL_AVC_ME_INTRA_16x16_INTEL"/>
5569                <enum name="CL_AVC_ME_INTRA_8x8_INTEL"/>
5570                <enum name="CL_AVC_ME_INTRA_4x4_INTEL"/>
5571            </require>
5572            <require comment="Luma intra partition mask values">
5573                <enum name="CL_AVC_ME_INTRA_LUMA_PARTITION_MASK_16x16_INTEL"/>
5574                <enum name="CL_AVC_ME_INTRA_LUMA_PARTITION_MASK_8x8_INTEL"/>
5575                <enum name="CL_AVC_ME_INTRA_LUMA_PARTITION_MASK_4x4_INTEL"/>
5576            </require>
5577            <require comment="Intra neighbor availability mask values">
5578                <enum name="CL_AVC_ME_INTRA_NEIGHBOR_LEFT_MASK_ENABLE_INTEL"/>
5579                <enum name="CL_AVC_ME_INTRA_NEIGHBOR_UPPER_MASK_ENABLE_INTEL"/>
5580                <enum name="CL_AVC_ME_INTRA_NEIGHBOR_UPPER_RIGHT_MASK_ENABLE_INTEL"/>
5581                <enum name="CL_AVC_ME_INTRA_NEIGHBOR_UPPER_LEFT_MASK_ENABLE_INTEL"/>
5582            </require>
5583            <require comment="Luma intra modes">
5584                <enum name="CL_AVC_ME_LUMA_PREDICTOR_MODE_VERTICAL_INTEL"/>
5585                <enum name="CL_AVC_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_INTEL"/>
5586                <enum name="CL_AVC_ME_LUMA_PREDICTOR_MODE_DC_INTEL"/>
5587                <enum name="CL_AVC_ME_LUMA_PREDICTOR_MODE_DIAGONAL_DOWN_LEFT_INTEL"/>
5588                <enum name="CL_AVC_ME_LUMA_PREDICTOR_MODE_DIAGONAL_DOWN_RIGHT_INTEL"/>
5589                <enum name="CL_AVC_ME_LUMA_PREDICTOR_MODE_PLANE_INTEL"/>
5590                <enum name="CL_AVC_ME_LUMA_PREDICTOR_MODE_VERTICAL_RIGHT_INTEL"/>
5591                <enum name="CL_AVC_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_DOWN_INTEL"/>
5592                <enum name="CL_AVC_ME_LUMA_PREDICTOR_MODE_VERTICAL_LEFT_INTEL"/>
5593                <enum name="CL_AVC_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_UP_INTEL"/>
5594            </require>
5595            <require comment="Chroma intra modes">
5596                <enum name="CL_AVC_ME_CHROMA_PREDICTOR_MODE_DC_INTEL"/>
5597                <enum name="CL_AVC_ME_CHROMA_PREDICTOR_MODE_HORIZONTAL_INTEL"/>
5598                <enum name="CL_AVC_ME_CHROMA_PREDICTOR_MODE_VERTICAL_INTEL"/>
5599                <enum name="CL_AVC_ME_CHROMA_PREDICTOR_MODE_PLANE_INTEL"/>
5600            </require>
5601            <require comment="Reference image select values">
5602                <enum name="CL_AVC_ME_FRAME_FORWARD_INTEL"/>
5603                <enum name="CL_AVC_ME_FRAME_BACKWARD_INTEL"/>
5604                <enum name="CL_AVC_ME_FRAME_DUAL_INTEL"/>
5605            </require>
5606            <require comment="Slice type values">
5607                <enum name="CL_AVC_ME_SLICE_TYPE_PRED_INTEL"/>
5608                <enum name="CL_AVC_ME_SLICE_TYPE_BPRED_INTEL"/>
5609                <enum name="CL_AVC_ME_SLICE_TYPE_INTRA_INTEL"/>
5610            </require>
5611            <require comment="Interlaced image field polarity values">
5612                <enum name="CL_AVC_ME_INTERLACED_SCAN_TOP_FIELD_INTEL"/>
5613                <enum name="CL_AVC_ME_INTERLACED_SCAN_BOTTOM_FIELD_INTEL"/>
5614            </require>
5615        </extension>
5616        <extension name="cl_khr_gl_event" supported="opencl">
5617            <require>
5618                <type name="CL/cl_gl.h"/>
5619                <type name="cl_GLsync"/>
5620            </require>
5621            <require comment="cl_command_type">
5622                <enum name="CL_COMMAND_GL_FENCE_SYNC_OBJECT_KHR"/>
5623            </require>
5624            <require>
5625                <command name="clCreateEventFromGLsyncKHR"/>
5626            </require>
5627        </extension>
5628        <extension name="cl_intel_va_api_media_sharing" supported="opencl">
5629            <require>
5630                <type name="CL/cl.h"/>
5631                <type name="CL/cl_platform.h"/>
5632                <type name="va/va.h"/>
5633                <type name="cl_va_api_device_source_intel"/>
5634                <type name="cl_va_api_device_set_intel"/>
5635            </require>
5636            <require comment="Error codes">
5637                <enum name="CL_INVALID_VA_API_MEDIA_ADAPTER_INTEL"/>
5638                <enum name="CL_INVALID_VA_API_MEDIA_SURFACE_INTEL"/>
5639                <enum name="CL_VA_API_MEDIA_SURFACE_ALREADY_ACQUIRED_INTEL"/>
5640                <enum name="CL_VA_API_MEDIA_SURFACE_NOT_ACQUIRED_INTEL"/>
5641            </require>
5642            <require comment="cl_va_api_device_source_intel">
5643                <enum name="CL_VA_API_DISPLAY_INTEL"/>
5644            </require>
5645            <require comment="cl_va_api_device_set_intel">
5646                <enum name="CL_PREFERRED_DEVICES_FOR_VA_API_INTEL"/>
5647                <enum name="CL_ALL_DEVICES_FOR_VA_API_INTEL"/>
5648            </require>
5649            <require comment="cl_context_info">
5650                <enum name="CL_CONTEXT_VA_API_DISPLAY_INTEL"/>
5651            </require>
5652            <require comment="cl_mem_info">
5653                <enum name="CL_MEM_VA_API_MEDIA_SURFACE_INTEL"/>
5654            </require>
5655            <require comment="cl_image_info">
5656                <enum name="CL_IMAGE_VA_API_PLANE_INTEL"/>
5657            </require>
5658            <require comment="cl_command_type">
5659                <enum name="CL_COMMAND_ACQUIRE_VA_API_MEDIA_SURFACES_INTEL"/>
5660                <enum name="CL_COMMAND_RELEASE_VA_API_MEDIA_SURFACES_INTEL"/>
5661            </require>
5662            <require>
5663                <command name="clGetDeviceIDsFromVA_APIMediaAdapterINTEL"/>
5664                <command name="clCreateFromVA_APIMediaSurfaceINTEL"/>
5665                <command name="clEnqueueAcquireVA_APIMediaSurfacesINTEL"/>
5666                <command name="clEnqueueReleaseVA_APIMediaSurfacesINTEL"/>
5667            </require>
5668        </extension>
5669        <extension name="cl_intel_dx9_media_sharing" supported="opencl">
5670            <require>
5671                <type name="CL/cl.h"/>
5672                <type name="CL/cl_platform.h"/>
5673                <type name="d3d9.h"/>
5674                <type name="dxvahd.h"/>
5675                <type name="wtypes.h"/>
5676                <type name="d3d9types.h"/>
5677                <type name="cl_dx9_device_source_intel"/>
5678                <type name="cl_dx9_device_set_intel"/>
5679            </require>
5680            <require comment="Error codes">
5681                <enum name="CL_INVALID_DX9_DEVICE_INTEL"/>
5682                <enum name="CL_INVALID_DX9_RESOURCE_INTEL"/>
5683                <enum name="CL_DX9_RESOURCE_ALREADY_ACQUIRED_INTEL"/>
5684                <enum name="CL_DX9_RESOURCE_NOT_ACQUIRED_INTEL"/>
5685            </require>
5686            <require comment="cl_dx9_device_source_intel">
5687                <enum name="CL_D3D9_DEVICE_INTEL"/>
5688                <enum name="CL_D3D9EX_DEVICE_INTEL"/>
5689                <enum name="CL_DXVA_DEVICE_INTEL"/>
5690            </require>
5691            <require comment="cl_dx9_device_set_intel">
5692                <enum name="CL_PREFERRED_DEVICES_FOR_DX9_INTEL"/>
5693                <enum name="CL_ALL_DEVICES_FOR_DX9_INTEL"/>
5694            </require>
5695            <require comment="cl_context_info">
5696                <enum name="CL_CONTEXT_D3D9_DEVICE_INTEL"/>
5697                <enum name="CL_CONTEXT_D3D9EX_DEVICE_INTEL"/>
5698                <enum name="CL_CONTEXT_DXVA_DEVICE_INTEL"/>
5699            </require>
5700            <require comment="cl_mem_info">
5701                <enum name="CL_MEM_DX9_RESOURCE_INTEL"/>
5702                <enum name="CL_MEM_DX9_SHARED_HANDLE_INTEL"/>
5703            </require>
5704            <require comment="cl_image_info">
5705                <enum name="CL_IMAGE_DX9_PLANE_INTEL"/>
5706            </require>
5707            <require comment="cl_command_type">
5708                <enum name="CL_COMMAND_ACQUIRE_DX9_OBJECTS_INTEL"/>
5709                <enum name="CL_COMMAND_RELEASE_DX9_OBJECTS_INTEL"/>
5710            </require>
5711            <require>
5712                <command name="clGetDeviceIDsFromDX9INTEL"/>
5713                <command name="clCreateFromDX9MediaSurfaceINTEL"/>
5714                <command name="clEnqueueAcquireDX9ObjectsINTEL"/>
5715                <command name="clEnqueueReleaseDX9ObjectsINTEL"/>
5716            </require>
5717        </extension>
5718        <extension name="cl_khr_gl_depth_images" requires="cl_khr_gl_sharing" comment="no API - reuses tokens from core API" supported="opencl">
5719            <require>
5720                <type name="CL/cl.h"/>
5721            </require>
5722            <require comment="cl_channel_order">
5723                <enum name="CL_DEPTH_STENCIL"/>
5724            </require>
5725            <require comment="cl_channel_type">
5726                <enum name="CL_UNORM_INT24"/>
5727                <enum name="CL_FLOAT"/>
5728            </require>
5729        </extension>
5730        <extension name="cl_khr_gl_msaa_sharing" requires="cl_khr_gl_depth_images" comment="no API - reuses tokens from core API" supported="opencl">
5731            <require>
5732                <type name="CL/cl.h"/>
5733            </require>
5734            <require comment="cl_gl_texture_info">
5735                <!-- <enum name="GL_TEXTURE_2D_MULTISAMPLE"/> -->
5736                <!-- <enum name="GL_TEXTURE_2D_MULTISAMPLE_ARRAY"/> -->
5737                <enum name="CL_GL_NUM_SAMPLES"/>
5738            </require>
5739        </extension>
5740        <extension name="cl_khr_gl_sharing" supported="opencl">
5741            <require>
5742                <type name="CL/cl.h"/>
5743            </require>
5744            <require>
5745                <type name="cl_gl_context_info"/>
5746            </require>
5747            <require comment="Error codes">
5748                <enum name="CL_INVALID_GL_SHAREGROUP_REFERENCE_KHR"/>
5749            </require>
5750            <require comment="cl_gl_context_info">
5751                <enum name="CL_CURRENT_DEVICE_FOR_GL_CONTEXT_KHR"/>
5752                <enum name="CL_DEVICES_FOR_GL_CONTEXT_KHR"/>
5753            </require>
5754            <require comment="Additional cl_context_properties">
5755                <enum name="CL_GL_CONTEXT_KHR"/>
5756                <enum name="CL_EGL_DISPLAY_KHR"/>
5757                <enum name="CL_GLX_DISPLAY_KHR"/>
5758                <enum name="CL_WGL_HDC_KHR"/>
5759                <enum name="CL_CGL_SHAREGROUP_KHR"/>
5760            </require>
5761            <require>
5762                <command name="clGetGLContextInfoKHR"/>
5763            </require>
5764            <require comment="Mislabelled as cl_khr_gl_sharing__memobjs in header">
5765                <type name="CL/cl.h"/>
5766            </require>
5767            <require>
5768                <type name="cl_gl_object_type"/>
5769                <type name="cl_gl_texture_info"/>
5770                <type name="cl_gl_platform_info" comment="Unused"/>
5771            </require>
5772            <require comment="cl_gl_object_type">
5773                <enum name="CL_GL_OBJECT_BUFFER"/>
5774                <enum name="CL_GL_OBJECT_TEXTURE2D"/>
5775                <enum name="CL_GL_OBJECT_TEXTURE3D"/>
5776                <enum name="CL_GL_OBJECT_RENDERBUFFER"/>
5777            </require>
5778            <require feature="CL_VERSION_1_2" comment="cl_gl_object_type">
5779                <enum name="CL_GL_OBJECT_TEXTURE2D_ARRAY"/>
5780                <enum name="CL_GL_OBJECT_TEXTURE1D"/>
5781                <enum name="CL_GL_OBJECT_TEXTURE1D_ARRAY"/>
5782                <enum name="CL_GL_OBJECT_TEXTURE_BUFFER"/>
5783            </require>
5784            <require comment="cl_gl_texture_info">
5785                <enum name="CL_GL_TEXTURE_TARGET"/>
5786                <enum name="CL_GL_MIPMAP_LEVEL"/>
5787            </require>
5788            <require feature="CL_VERSION_1_2" comment="cl_gl_texture_info">
5789                <enum name="CL_GL_NUM_SAMPLES"/>
5790            </require>
5791            <require comment="Error codes">
5792                <enum name="CL_INVALID_GL_OBJECT"/>
5793                <enum name="CL_INVALID_MIP_LEVEL"/>
5794            </require>
5795            <require>
5796                <command name="clCreateFromGLBuffer"/>
5797            </require>
5798            <require feature="CL_VERSION_1_2">
5799                <command name="clCreateFromGLTexture"/>
5800            </require>
5801            <require comment="OpenCL 1.0 APIs that were deprecated in OpenCL 1.2">
5802                <command name="clCreateFromGLTexture2D"/>
5803                <command name="clCreateFromGLTexture3D"/>
5804            </require>
5805            <require>
5806                <command name="clCreateFromGLRenderbuffer"/>
5807                <command name="clGetGLObjectInfo"/>
5808                <command name="clGetGLTextureInfo"/>
5809                <command name="clEnqueueAcquireGLObjects"/>
5810                <command name="clEnqueueReleaseGLObjects"/>
5811            </require>
5812        </extension>
5813        <extension name="cl_intel_unified_shared_memory" comment="in sync with rev O" supported="opencl">
5814            <require>
5815                <type name="cl_device_unified_shared_memory_capabilities_intel"/>
5816                <type name="cl_mem_properties_intel"/>
5817                <type name="cl_mem_alloc_flags_intel"/>
5818                <type name="cl_mem_info_intel"/>
5819                <type name="cl_unified_shared_memory_type_intel"/>
5820                <type name="cl_mem_advice_intel"/>
5821            </require>
5822            <require comment="cl_device_info">
5823                <enum name="CL_DEVICE_HOST_MEM_CAPABILITIES_INTEL"/>
5824                <enum name="CL_DEVICE_DEVICE_MEM_CAPABILITIES_INTEL"/>
5825                <enum name="CL_DEVICE_SINGLE_DEVICE_SHARED_MEM_CAPABILITIES_INTEL"/>
5826                <enum name="CL_DEVICE_CROSS_DEVICE_SHARED_MEM_CAPABILITIES_INTEL"/>
5827                <enum name="CL_DEVICE_SHARED_SYSTEM_MEM_CAPABILITIES_INTEL"/>
5828            </require>
5829            <require comment="cl_unified_shared_memory_capabilities_intel - bitfield">
5830                <enum name="CL_UNIFIED_SHARED_MEMORY_ACCESS_INTEL"/>
5831                <enum name="CL_UNIFIED_SHARED_MEMORY_ATOMIC_ACCESS_INTEL"/>
5832                <enum name="CL_UNIFIED_SHARED_MEMORY_CONCURRENT_ACCESS_INTEL"/>
5833                <enum name="CL_UNIFIED_SHARED_MEMORY_CONCURRENT_ATOMIC_ACCESS_INTEL"/>
5834            </require>
5835            <require comment="cl_mem_properties_intel">
5836                <enum name="CL_MEM_ALLOC_FLAGS_INTEL"/>
5837            </require>
5838            <require comment="cl_mem_alloc_flags_intel - bitfield">
5839                <enum name="CL_MEM_ALLOC_WRITE_COMBINED_INTEL"/>
5840            </require>
5841            <require comment="cl_mem_alloc_info_intel">
5842                <enum name="CL_MEM_ALLOC_TYPE_INTEL"/>
5843                <enum name="CL_MEM_ALLOC_BASE_PTR_INTEL"/>
5844                <enum name="CL_MEM_ALLOC_SIZE_INTEL"/>
5845                <enum name="CL_MEM_ALLOC_DEVICE_INTEL"/>
5846            </require>
5847            <require comment="cl_unified_shared_memory_type_intel">
5848                <enum name="CL_MEM_TYPE_UNKNOWN_INTEL"/>
5849                <enum name="CL_MEM_TYPE_HOST_INTEL"/>
5850                <enum name="CL_MEM_TYPE_DEVICE_INTEL"/>
5851                <enum name="CL_MEM_TYPE_SHARED_INTEL"/>
5852            </require>
5853            <require comment="cl_kernel_exec_info">
5854                <enum name="CL_KERNEL_EXEC_INFO_INDIRECT_HOST_ACCESS_INTEL"/>
5855                <enum name="CL_KERNEL_EXEC_INFO_INDIRECT_DEVICE_ACCESS_INTEL"/>
5856                <enum name="CL_KERNEL_EXEC_INFO_INDIRECT_SHARED_ACCESS_INTEL"/>
5857                <enum name="CL_KERNEL_EXEC_INFO_USM_PTRS_INTEL"/>
5858            </require>
5859            <require comment="cl_command_type">
5860                <enum name="CL_COMMAND_MEMFILL_INTEL"/>
5861                <enum name="CL_COMMAND_MEMCPY_INTEL"/>
5862                <enum name="CL_COMMAND_MIGRATEMEM_INTEL"/>
5863                <enum name="CL_COMMAND_MEMADVISE_INTEL"/>
5864            </require>
5865            <require>
5866                <command name="clHostMemAllocINTEL"/>
5867                <command name="clDeviceMemAllocINTEL"/>
5868                <command name="clSharedMemAllocINTEL"/>
5869                <command name="clMemFreeINTEL"/>
5870                <command name="clGetMemAllocInfoINTEL"/>
5871                <command name="clSetKernelArgMemPointerINTEL"/>
5872                <command name="clEnqueueMemsetINTEL"/>
5873                <command name="clEnqueueMemFillINTEL"/>
5874                <command name="clEnqueueMemcpyINTEL"/>
5875                <command name="clEnqueueMemAdviseINTEL"/>
5876            </require>
5877            <require condition="defined(CL_VERSION_1_2)" comment="Requires OpenCL 1.2 for cl_mem_migration_flags:">
5878              <command name="clEnqueueMigrateMemINTEL" requires="CL_VERSION_1_2"/>
5879            </require>
5880        </extension>
5881        <extension name="cl_khr_device_uuid" supported="opencl">
5882            <require comment="Size Constants">
5883                <enum name="CL_UUID_SIZE_KHR"/>
5884                <enum name="CL_LUID_SIZE_KHR"/>
5885            </require>
5886            <require comment="cl_device_info">
5887                <enum name="CL_DEVICE_UUID_KHR"/>
5888                <enum name="CL_DRIVER_UUID_KHR"/>
5889                <enum name="CL_DEVICE_LUID_VALID_KHR"/>
5890                <enum name="CL_DEVICE_LUID_KHR"/>
5891                <enum name="CL_DEVICE_NODE_MASK_KHR"/>
5892            </require>
5893        </extension>
5894        <extension name="cl_intel_create_buffer_with_properties" supported="opencl">
5895            <require>
5896                <command name="clCreateBufferWithPropertiesINTEL"/>
5897            </require>
5898        </extension>
5899        <extension name="cl_intel_mem_channel_property" supported="opencl">
5900            <require comment="cl_mem_properties_intel">
5901                <enum name="CL_MEM_CHANNEL_INTEL"/>
5902            </require>
5903        </extension>
5904        <extension name="cl_arm_scheduling_controls" supported="opencl">
5905            <require comment="Types">
5906                <type name="cl_device_scheduling_controls_capabilities_arm"/>
5907            </require>
5908            <require comment="cl_device_scheduling_controls_capabilities_arm">
5909                <enum name="CL_DEVICE_SCHEDULING_KERNEL_BATCHING_ARM"/>
5910                <enum name="CL_DEVICE_SCHEDULING_WORKGROUP_BATCH_SIZE_ARM"/>
5911                <enum name="CL_DEVICE_SCHEDULING_WORKGROUP_BATCH_SIZE_MODIFIER_ARM"/>
5912                <enum name="CL_DEVICE_SCHEDULING_DEFERRED_FLUSH_ARM"/>
5913                <enum name="CL_DEVICE_SCHEDULING_REGISTER_ALLOCATION_ARM"/>
5914            </require>
5915            <require comment="cl_device_info">
5916                <enum name="CL_DEVICE_SCHEDULING_CONTROLS_CAPABILITIES_ARM"/>
5917                <enum name="CL_DEVICE_SUPPORTED_REGISTER_ALLOCATIONS_ARM"/>
5918            </require>
5919            <require comment="cl_kernel_exec_info">
5920                <enum name="CL_KERNEL_EXEC_INFO_WORKGROUP_BATCH_SIZE_ARM"/>
5921                <enum name="CL_KERNEL_EXEC_INFO_WORKGROUP_BATCH_SIZE_MODIFIER_ARM"/>
5922            </require>
5923            <require comment="cl_queue_properties">
5924                <enum name="CL_QUEUE_KERNEL_BATCHING_ARM"/>
5925                <enum name="CL_QUEUE_DEFERRED_FLUSH_ARM"/>
5926            </require>
5927        </extension>
5928        <extension name="cl_ext_cxx_for_opencl" supported="opencl">
5929            <require comment="cl_device_info">
5930                <enum name="CL_DEVICE_CXX_FOR_OPENCL_NUMERIC_VERSION_EXT"/>
5931            </require>
5932        </extension>
5933        <extension name="cl_intel_mem_force_host_memory" supported="opencl">
5934            <require comment="cl_mem_flags">
5935                <enum name="CL_MEM_FORCE_HOST_MEMORY_INTEL"/>
5936            </require>
5937        </extension>
5938        <extension name="cl_khr_depth_images" supported="opencl">
5939            <require>
5940                <type name="CL/cl.h"/>
5941            </require>
5942            <require condition="!defined(CL_VERSION_1_2)" comment="cl_channel_order - defined in CL.h for OpenCL 1.2 (?) and newer">
5943                <enum name="CL_DEPTH"/>
5944            </require>
5945        </extension>
5946        <extension name="cl_khr_extended_versioning" supported="opencl">
5947            <require comment="Constants">
5948                <enum name="CL_NAME_VERSION_MAX_NAME_SIZE_KHR"/>
5949                <enum name="CL_VERSION_MAJOR_BITS_KHR"/>
5950                <enum name="CL_VERSION_MINOR_BITS_KHR"/>
5951                <enum name="CL_VERSION_PATCH_BITS_KHR"/>
5952            </require>
5953            <require comment="Types">
5954                <type name="cl_version_khr"/>
5955                <type name="cl_name_version_khr"/>
5956            </require>
5957            <require comment="cl_platform_info">
5958                <enum name="CL_PLATFORM_NUMERIC_VERSION_KHR"/>
5959                <enum name="CL_PLATFORM_EXTENSIONS_WITH_VERSION_KHR"/>
5960            </require>
5961            <require comment="cl_device_info">
5962                <enum name="CL_DEVICE_NUMERIC_VERSION_KHR"/>
5963                <enum name="CL_DEVICE_OPENCL_C_NUMERIC_VERSION_KHR"/>
5964                <enum name="CL_DEVICE_EXTENSIONS_WITH_VERSION_KHR"/>
5965                <enum name="CL_DEVICE_ILS_WITH_VERSION_KHR"/>
5966                <enum name="CL_DEVICE_BUILT_IN_KERNELS_WITH_VERSION_KHR"/>
5967            </require>
5968        </extension>
5969        <extension name="cl_img_generate_mipmap" supported="opencl">
5970            <require comment="cl_mipmap_filter_mode_img">
5971                <enum name="CL_MIPMAP_FILTER_ANY_IMG"/>
5972                <enum name="CL_MIPMAP_FILTER_BOX_IMG"/>
5973            </require>
5974            <require comment="cl_command_type">
5975                <enum name="CL_COMMAND_GENERATE_MIPMAP_IMG"/>
5976            </require>
5977            <require>
5978                <command name="clEnqueueGenerateMipmapIMG"/>
5979            </require>
5980        </extension>
5981        <extension name="cl_img_mem_properties" supported="opencl">
5982            <require>
5983                <type name="CL/cl.h"/>
5984            </require>
5985            <require comment="cl_mem_properties">
5986                <enum name="CL_MEM_ALLOC_FLAGS_IMG"/>
5987            </require>
5988            <require comment="cl_mem_alloc_flags_img">
5989                <enum name="CL_MEM_ALLOC_RELAX_REQUIREMENTS_IMG"/>
5990            </require>
5991        </extension>
5992        <extension name="cl_arm_controlled_kernel_termination" supported="opencl">
5993            <require comment="Types">
5994                <type name="cl_device_controlled_termination_capabilities_arm"/>
5995            </require>
5996            <require comment="Error codes">
5997                <enum name="CL_COMMAND_TERMINATED_ITSELF_WITH_FAILURE_ARM"/>
5998            </require>
5999            <require comment="cl_device_controlled_termination_capabilities_arm">
6000                <enum name="CL_DEVICE_CONTROLLED_TERMINATION_SUCCESS_ARM"/>
6001                <enum name="CL_DEVICE_CONTROLLED_TERMINATION_FAILURE_ARM"/>
6002                <enum name="CL_DEVICE_CONTROLLED_TERMINATION_QUERY_ARM"/>
6003            </require>
6004            <require comment="cl_device_info">
6005                <enum name="CL_DEVICE_CONTROLLED_TERMINATION_CAPABILITIES_ARM"/>
6006            </require>
6007            <require comment="cl_event_info">
6008                <enum name="CL_EVENT_COMMAND_TERMINATION_REASON_ARM"/>
6009            </require>
6010            <require comment="cl_command_termination_reason_arm">
6011                <enum name="CL_COMMAND_TERMINATION_COMPLETION_ARM"/>
6012                <enum name="CL_COMMAND_TERMINATION_CONTROLLED_SUCCESS_ARM"/>
6013                <enum name="CL_COMMAND_TERMINATION_CONTROLLED_FAILURE_ARM"/>
6014                <enum name="CL_COMMAND_TERMINATION_ERROR_ARM"/>
6015            </require>
6016        </extension>
6017        <extension name="cl_intel_command_queue_families" supported="opencl">
6018            <require>
6019                <type name="CL/cl.h"/>
6020            </require>
6021            <require>
6022                <type name="cl_command_queue_capabilities_intel"/>
6023            </require>
6024            <require>
6025                <enum name="CL_QUEUE_FAMILY_MAX_NAME_SIZE_INTEL"/>
6026            </require>
6027            <require>
6028                <type name="cl_queue_family_properties_intel"/>
6029            </require>
6030            <require comment="cl_device_info">
6031                <enum name="CL_DEVICE_QUEUE_FAMILY_PROPERTIES_INTEL"/>
6032            </require>
6033            <require comment="cl_queue_properties">
6034                <enum name="CL_QUEUE_FAMILY_INTEL"/>
6035                <enum name="CL_QUEUE_INDEX_INTEL"/>
6036            </require>
6037            <require comment="cl_command_queue_capabilities_intel">
6038                <enum name="CL_QUEUE_DEFAULT_CAPABILITIES_INTEL"/>
6039                <enum name="CL_QUEUE_CAPABILITY_CREATE_SINGLE_QUEUE_EVENTS_INTEL"/>
6040                <enum name="CL_QUEUE_CAPABILITY_CREATE_CROSS_QUEUE_EVENTS_INTEL"/>
6041                <enum name="CL_QUEUE_CAPABILITY_SINGLE_QUEUE_EVENT_WAIT_LIST_INTEL"/>
6042                <enum name="CL_QUEUE_CAPABILITY_CROSS_QUEUE_EVENT_WAIT_LIST_INTEL"/>
6043                <enum name="CL_QUEUE_CAPABILITY_TRANSFER_BUFFER_INTEL"/>
6044                <enum name="CL_QUEUE_CAPABILITY_TRANSFER_BUFFER_RECT_INTEL"/>
6045                <enum name="CL_QUEUE_CAPABILITY_MAP_BUFFER_INTEL"/>
6046                <enum name="CL_QUEUE_CAPABILITY_FILL_BUFFER_INTEL"/>
6047                <enum name="CL_QUEUE_CAPABILITY_TRANSFER_IMAGE_INTEL"/>
6048                <enum name="CL_QUEUE_CAPABILITY_MAP_IMAGE_INTEL"/>
6049                <enum name="CL_QUEUE_CAPABILITY_FILL_IMAGE_INTEL"/>
6050                <enum name="CL_QUEUE_CAPABILITY_TRANSFER_BUFFER_IMAGE_INTEL"/>
6051                <enum name="CL_QUEUE_CAPABILITY_TRANSFER_IMAGE_BUFFER_INTEL"/>
6052                <enum name="CL_QUEUE_CAPABILITY_MARKER_INTEL"/>
6053                <enum name="CL_QUEUE_CAPABILITY_BARRIER_INTEL"/>
6054                <enum name="CL_QUEUE_CAPABILITY_KERNEL_INTEL"/>
6055            </require>
6056        </extension>
6057    </extensions>
6058</registry>
6059