<?xml version="1.0" encoding="UTF-8"?>
<registry>
    <comment>
Copyright (c) 2013-2020 The Khronos Group Inc.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

---- Exceptions to the Apache 2.0 License: ----

As an exception, if you use this Software to generate code and portions of
this Software are embedded into the generated code as a result, you may
redistribute such product without providing attribution as would otherwise
be required by Sections 4(a), 4(b) and 4(d) of the License.

In addition, if you combine or link code generated by this Software with
software that is licensed under the GPLv2 or the LGPL v2.0 or 2.1
("`Combined Software`") and if a court of competent jurisdiction determines
that the patent provision (Section 3), the indemnity provision (Section 9)
or other Section of the License conflicts with the conditions of the
applicable GPL or LGPL license, you may retroactively and prospectively
choose to deem waived or otherwise exclude such Section(s) of the License,
but only in their entirety and only with respect to the Combined Software.
    </comment>

    <comment>
This file, cl.xml, is the OpenCL API Registry. It is a critically important
and normative part of the OpenCL API Specification, including a canonical
machine-readable definition of the API, parameter and member validation
language incorporated into the Specification and reference pages, and other
material which is registered by Khronos.

The authoritative public version of cl.xml is maintained in the master
branch of the Khronos OpenCL-API GitHub repository. The authoritative
private version is maintained in the master branch of the member gitlab
server's OpenCL/api-docs repository.
    </comment>

    <types comment="OpenCL type definitions">
            <comment>These are dependencies CL types require to be declared legally</comment>
        <type category="include" name="stdint">#include &lt;stdint.h&gt;</type>

            <comment>Windows headers and types</comment>
        <type category="include" name="d3d10.h">#include &lt;d3d10.h&gt;</type>
        <type category="include" name="d3d11.h">#include &lt;d3d11.h&gt;</type>
        <type category="include" name="d3d9.h">#include &lt;d3d9.h&gt;</type>
        <type category="include" name="d3d9types.h">#include &lt;d3d9types.h&gt;</type>
        <type category="include" name="dxvahd.h">#include &lt;dxvahd.h&gt;</type>
        <type category="include" name="wtypes.h">#include &lt;wtypes.h&gt;</type>
        <type category="include" name="ID3D10Buffer" requires="d3d10.h"/>
        <type category="include" name="ID3D10Texture2D" requires="d3d10.h"/>
        <type category="include" name="ID3D10Texture3D" requires="d3d10.h"/>
        <type category="include" name="ID3D11Buffer" requires="d3d11.h"/>
        <type category="include" name="ID3D11Texture2D" requires="d3d11.h"/>
        <type category="include" name="ID3D11Texture3D" requires="d3d11.h"/>
        <type category="include" name="IDirect3DSurface9" requires="d3d9.h"/>
        <type category="include" name="HANDLE" requires="d3d9types.h"/>
        <type category="include" name="UINT" comment="Requires one of the D3D headers, which in turn probably pulls in windows.h"/>

            <comment>Non-CL headers and types</comment>
        <type category="include" name="va/va.h">#include &lt;va/va.h&gt;</type>
        <type category="include" name="VASurfaceID" requires="va/va.h"/>

            <comment>CL headers and types</comment>
        <type category="include" name="CL/cl.h">#include &lt;CL/cl.h&gt;</type>
        <type category="include" name="CL/cl_platform.h">#include &lt;CL/cl_platform.h&gt;</type>
        <type category="include" name="CL/cl_gl.h">#include &lt;CL/cl_gl.h&gt;</type>
        <type category="include" name="CL/cl_version.h">#include &lt;CL/cl_version.h&gt;</type>

            <comment>Basic C types, pulled in via platform header in some cases</comment>
        <type category="basetype" requires="CL/cl_platform.h" name="void"/>
        <type category="basetype" requires="CL/cl_platform.h" name="char"/>
        <type category="basetype" requires="CL/cl_platform.h" name="int"/>
        <type category="basetype" requires="CL/cl_platform.h" name="unsigned char"/>
        <type category="basetype" requires="CL/cl_platform.h" name="intptr_t"/>
        <type category="basetype" requires="CL/cl_platform.h" name="size_t"/>
        <type category="basetype" requires="CL/cl_platform.h" name="float"/>
        <type category="basetype" requires="CL/cl_platform.h" name="double"/>
        <type category="basetype" requires="CL/cl_platform.h" name="int8_t"/>
        <type category="basetype" requires="CL/cl_platform.h" name="int16_t"/>
        <type category="basetype" requires="CL/cl_platform.h" name="int32_t"/>
        <type category="basetype" requires="CL/cl_platform.h" name="int64_t"/>
        <type category="basetype" requires="CL/cl_platform.h" name="uint8_t"/>
        <type category="basetype" requires="CL/cl_platform.h" name="uint16_t"/>
        <type category="basetype" requires="CL/cl_platform.h" name="uint32_t"/>
        <type category="basetype" requires="CL/cl_platform.h" name="uint64_t"/>

            <comment>Scalar types</comment>
        <type category="define" requires="stdint">typedef <type>double</type>   <name>cl_double</name> __attribute__((aligned(8)));</type>
        <type category="define" requires="stdint">typedef <type>float</type>    <name>cl_float</name> __attribute__((aligned(4)));</type>
        <type category="define" requires="stdint">typedef <type>int16_t</type>  <name>cl_short</name> __attribute__((aligned(2)));</type>
        <type category="define" requires="stdint">typedef <type>int32_t</type>  <name>cl_int</name> __attribute__((aligned(4)));</type>
        <type category="define" requires="stdint">typedef <type>int64_t</type>  <name>cl_long</name> __attribute__((aligned(8)));</type>
        <type category="define" requires="stdint">typedef <type>int8_t</type>   <name>cl_char</name>;</type>
        <type category="define" requires="stdint">typedef <type>uint8_t</type>  <name>cl_uchar</name>;</type>
        <type category="define" requires="stdint">typedef <type>uint16_t</type> <name>cl_half</name> __attribute__((aligned(2)));</type>
        <type category="define" requires="stdint">typedef <type>uint16_t</type> <name>cl_ushort</name> __attribute__((aligned(2)));</type>
        <type category="define" requires="stdint">typedef <type>uint32_t</type> <name>cl_uint</name> __attribute__((aligned(4)));</type>
        <type category="define" requires="stdint">typedef <type>uint64_t</type> <name>cl_ulong</name> __attribute__((aligned(8)));</type>
        <type category="define">typedef <type>int</type>              <name>cl_GLint</name>;</type>
        <type category="define">typedef <type>unsigned int</type>     <name>cl_GLenum</name>;</type>
        <type category="define">typedef <type>unsigned int</type>     <name>cl_GLuint</name>;</type>
        <type category="define">typedef <type>cl_uint</type>          <name>cl_d3d11_device_source_khr</name>;</type>
        <type category="define">typedef <type>cl_uint</type>          <name>cl_d3d11_device_set_khr</name>;</type>
        <type category="define">typedef <type>cl_uint</type>          <name>cl_dx9_media_adapter_type_khr</name>;</type>
        <type category="define">typedef <type>cl_uint</type>          <name>cl_dx9_media_adapter_set_khr</name>;</type>
        <type category="define">typedef <type>cl_uint</type>          <name>cl_d3d10_device_source_khr</name>;</type>
        <type category="define">typedef <type>cl_uint</type>          <name>cl_d3d10_device_set_khr</name>;</type>
        <type category="define">typedef <type>cl_uint</type>          <name>cl_dx9_device_source_intel</name>;</type>
        <type category="define">typedef <type>cl_uint</type>          <name>cl_dx9_device_set_intel</name>;</type>
        <type category="define">typedef struct _cl_accelerator_intel* <name>cl_accelerator_intel</name>;</type>
        <type category="define">typedef <type>cl_uint</type>          <name>cl_accelerator_type_intel</name>;</type>
        <type category="define">typedef <type>cl_uint</type>          <name>cl_accelerator_info_intel</name>;</type>
        <type category="define">typedef <type>cl_uint</type>          <name>cl_diagnostics_verbose_level</name>;</type>
        <type category="define">typedef <type>cl_uint</type>          <name>cl_va_api_device_source_intel</name>;</type>
        <type category="define">typedef <type>cl_uint</type>          <name>cl_va_api_device_set_intel</name>;</type>
        <type category="define">typedef struct __GLsync *             <name>cl_GLsync</name>;</type>
        <type category="define">typedef <type>void</type>*            <name>CLeglImageKHR</name>;</type>
        <type category="define">typedef <type>void</type>*            <name>CLeglDisplayKHR</name>;</type>
        <type category="define">typedef <type>void</type>*            <name>CLeglSyncKHR</name>;</type>
        <type category="define">typedef <type>intptr_t</type>         <name>cl_egl_image_properties_khr</name>;</type>
        <type category="define">typedef <type>cl_ulong</type>         <name>cl_device_partition_property_ext</name>;</type>
        <type category="define">typedef <type>cl_bitfield</type>      <name>cl_mem_migration_flags_ext</name>;</type>
        <type category="define">typedef <type>cl_uint</type>          <name>cl_image_pitch_info_qcom</name>;</type>
        <type category="define">typedef <type>cl_uint</type>          <name>cl_queue_priority_khr</name>;</type>
        <type category="define">typedef <type>cl_uint</type>          <name>cl_queue_throttle_khr</name>;</type>
        <type category="define">typedef <type>intptr_t</type>         <name>cl_import_properties_arm</name>;</type>
        <type category="define">typedef <type>cl_bitfield</type>      <name>cl_svm_mem_flags_arm</name>;</type>
        <type category="define">typedef <type>cl_uint</type>          <name>cl_kernel_exec_info_arm</name>;</type>
        <type category="define">typedef <type>cl_bitfield</type>      <name>cl_device_svm_capabilities_arm</name>;</type>
        <type category="define">typedef <type>cl_uint</type>          <name>cl_gl_context_info</name>;</type>
        <type category="define">typedef <type>cl_uint</type>          <name>cl_gl_object_type</name>;</type>
        <type category="define">typedef <type>cl_uint</type>          <name>cl_gl_texture_info</name>;</type>
        <type category="define">typedef <type>cl_uint</type>          <name>cl_gl_platform_info</name>;</type>
        <type category="define">typedef struct _cl_platform_id *      <name>cl_platform_id</name>;</type>
        <type category="define">typedef struct _cl_device_id *        <name>cl_device_id</name>;</type>
        <type category="define">typedef struct _cl_context *          <name>cl_context</name>;</type>
        <type category="define">typedef struct _cl_command_queue *    <name>cl_command_queue</name>;</type>
        <type category="define">typedef struct _cl_mem *              <name>cl_mem</name>;</type>
        <type category="define">typedef struct _cl_program *          <name>cl_program</name>;</type>
        <type category="define">typedef struct _cl_kernel *           <name>cl_kernel</name>;</type>
        <type category="define">typedef struct _cl_event *            <name>cl_event</name>;</type>
        <type category="define">typedef struct _cl_sampler *          <name>cl_sampler</name>;</type>
        <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>
        <type category="define">typedef <type>cl_ulong</type>         <name>cl_bitfield</name>;</type>
        <type category="define">typedef <type>cl_ulong</type>         <name>cl_properties</name>;</type>
        <type category="define">typedef <type>cl_bitfield</type>      <name>cl_device_type</name>;</type>
        <type category="define">typedef <type>cl_uint</type>          <name>cl_platform_info</name>;</type>
        <type category="define">typedef <type>cl_uint</type>          <name>cl_device_info</name>;</type>
        <type category="define">typedef <type>cl_bitfield</type>      <name>cl_device_fp_config</name>;</type>
        <type category="define">typedef <type>cl_uint</type>          <name>cl_device_mem_cache_type</name>;</type>
        <type category="define">typedef <type>cl_uint</type>          <name>cl_device_local_mem_type</name>;</type>
        <type category="define">typedef <type>cl_bitfield</type>      <name>cl_device_exec_capabilities</name>;</type>
        <type category="define">typedef <type>cl_bitfield</type>      <name>cl_device_svm_capabilities</name>;</type>
        <type category="define">typedef <type>cl_bitfield</type>      <name>cl_command_queue_properties</name>;</type>
        <type category="define">typedef <type>intptr_t</type>         <name>cl_device_partition_property</name>;</type>
        <type category="define">typedef <type>cl_bitfield</type>      <name>cl_device_affinity_domain</name>;</type>
        <type category="define">typedef <type>intptr_t</type>         <name>cl_context_properties</name>;</type>
        <type category="define">typedef <type>cl_uint</type>          <name>cl_context_info</name>;</type>
        <type category="define">typedef <type>cl_properties</type>    <name>cl_queue_properties</name>;</type>
        <type category="define">typedef <type>cl_properties</type>    <name>cl_queue_properties_khr</name>;</type>
        <type category="define">typedef <type>cl_uint</type>          <name>cl_command_queue_info</name>;</type>
        <type category="define">typedef <type>cl_uint</type>          <name>cl_channel_order</name>;</type>
        <type category="define">typedef <type>cl_uint</type>          <name>cl_channel_type</name>;</type>
        <type category="define">typedef <type>cl_bitfield</type>      <name>cl_mem_flags</name>;</type>
        <type category="define">typedef <type>cl_bitfield</type>      <name>cl_svm_mem_flags</name>;</type>
        <type category="define">typedef <type>cl_uint</type>          <name>cl_mem_object_type</name>;</type>
        <type category="define">typedef <type>cl_uint</type>          <name>cl_mem_info</name>;</type>
        <type category="define">typedef <type>cl_bitfield</type>      <name>cl_mem_migration_flags</name>;</type>
        <type category="define">typedef <type>cl_properties</type>    <name>cl_mem_properties</name>;</type>
        <type category="define">typedef <type>cl_uint</type>          <name>cl_image_info</name>;</type>
        <type category="define">typedef <type>cl_uint</type>          <name>cl_buffer_create_type</name>;</type>
        <type category="define">typedef <type>cl_uint</type>          <name>cl_addressing_mode</name>;</type>
        <type category="define">typedef <type>cl_uint</type>          <name>cl_filter_mode</name>;</type>
        <type category="define">typedef <type>cl_uint</type>          <name>cl_sampler_info</name>;</type>
        <type category="define">typedef <type>cl_bitfield</type>      <name>cl_map_flags</name>;</type>
        <type category="define">typedef <type>intptr_t</type>         <name>cl_pipe_properties</name>;</type>
        <type category="define">typedef <type>cl_uint</type>          <name>cl_pipe_info</name>;</type>
        <type category="define">typedef <type>cl_uint</type>          <name>cl_program_info</name>;</type>
        <type category="define">typedef <type>cl_uint</type>          <name>cl_program_build_info</name>;</type>
        <type category="define">typedef <type>cl_uint</type>          <name>cl_program_binary_type</name>;</type>
        <type category="define">typedef <type>cl_int</type>           <name>cl_build_status</name>;</type>
        <type category="define">typedef <type>cl_uint</type>          <name>cl_kernel_info</name>;</type>
        <type category="define">typedef <type>cl_uint</type>          <name>cl_kernel_arg_info</name>;</type>
        <type category="define">typedef <type>cl_uint</type>          <name>cl_kernel_arg_address_qualifier</name>;</type>
        <type category="define">typedef <type>cl_uint</type>          <name>cl_kernel_arg_access_qualifier</name>;</type>
        <type category="define">typedef <type>cl_bitfield</type>      <name>cl_kernel_arg_type_qualifier</name>;</type>
        <type category="define">typedef <type>cl_uint</type>          <name>cl_kernel_work_group_info</name>;</type>
        <type category="define">typedef <type>cl_uint</type>          <name>cl_kernel_sub_group_info</name>;</type>
        <type category="define">typedef <type>cl_uint</type>          <name>cl_event_info</name>;</type>
        <type category="define">typedef <type>cl_uint</type>          <name>cl_command_type</name>;</type>
        <type category="define">typedef <type>cl_uint</type>          <name>cl_profiling_info</name>;</type>
        <type category="define">typedef <type>cl_properties</type>    <name>cl_sampler_properties</name>;</type>
        <type category="define">typedef <type>cl_uint</type>          <name>cl_kernel_exec_info</name>;</type>
        <type category="define">typedef <type>cl_bitfield</type>      <name>cl_device_unified_shared_memory_capabilities_intel</name>;</type>
        <type category="define">typedef <type>cl_properties</type>    <name>cl_mem_properties_intel</name>;</type>
        <type category="define">typedef <type>cl_bitfield</type>      <name>cl_mem_alloc_flags_intel</name>;</type>
        <type category="define">typedef <type>cl_uint</type>          <name>cl_mem_info_intel</name>;</type>
        <type category="define">typedef <type>cl_uint</type>          <name>cl_unified_shared_memory_type_intel</name>;</type>
        <type category="define">typedef <type>cl_uint</type>          <name>cl_mem_advice_intel</name>;</type>
        <type category="define">typedef <type>cl_bitfield</type>      <name>cl_device_atomic_capabilities</name>;</type>
        <type category="define">typedef <type>cl_uint</type>          <name>cl_khronos_vendor_id</name>;</type>
        <type category="define">typedef <type>cl_uint</type>          <name>cl_version</name>;</type>
        <type category="define">typedef <type>cl_uint</type>          <name>cl_version_khr</name>;</type>
        <type category="define">typedef <type>cl_bitfield</type>      <name>cl_device_device_enqueue_capabilities</name>;</type>
        <type category="define">typedef <type>cl_uint</type>          <name>cl_mipmap_filter_mode_img</name>;</type>
        <type category="define">typedef <type>cl_bitfield</type>      <name>cl_mem_alloc_flags_img</name>;</type>
        <type category="define">typedef <type>cl_uint</type>          <name>cl_layer_info</name>;</type>
        <type category="define">typedef <type>cl_uint</type>          <name>cl_layer_api_version</name>;</type>
        <type category="define">typedef struct _cl_icd_dispatch       <name>cl_icd_dispatch</name>;</type>
        <type category="define">typedef <type>cl_bitfield</type>      <name>cl_device_scheduling_controls_capabilities_arm</name>;</type>
        <type category="define">typedef <type>cl_bitfield</type>      <name>cl_device_controlled_termination_capabilities_arm</name>;</type>
        <type category="define">typedef <type>cl_bitfield</type>      <name>cl_command_queue_capabilities_intel</name>;</type>

            <comment>Structure types</comment>
        <type category="struct" name="cl_dx9_surface_info_khr">
            <member><type>IDirect3DSurface9</type>*  <name>resource</name></member>
            <member><type>HANDLE</type>              <name>shared_handle</name></member>
        </type>
        <type category="struct" name="cl_motion_estimation_desc_intel">
            <member><type>cl_uint</type>             <name>mb_block_type</name></member>
            <member><type>cl_uint</type>             <name>subpixel_mode</name></member>
            <member><type>cl_uint</type>             <name>sad_adjust_mode</name></member>
            <member><type>cl_uint</type>             <name>search_path_type</name></member>
        </type>
        <type category="struct" name="cl_mem_ext_host_ptr">
            <member><type>cl_uint</type>             <name>allocation_type</name></member>
            <member><type>cl_uint</type>             <name>host_cache_policy</name></member>
        </type>
        <type category="struct" name="cl_mem_ion_host_ptr">
            <member><type>cl_mem_ext_host_ptr</type> <name>ext_host_ptr</name></member>
            <member><type>int</type>                 <name>ion_filedesc</name></member>
            <member><type>void</type>*               <name>ion_hostptr</name></member>
        </type>
        <type category="struct" name="cl_mem_android_native_buffer_host_ptr">
            <member><type>cl_mem_ext_host_ptr</type> <name>ext_host_ptr</name></member>
            <member><type>void</type>*               <name>anb_ptr</name></member>
        </type>
        <type category="struct" name="cl_image_format">
            <member><type>cl_channel_order</type>    <name>image_channel_order</name></member>
            <member><type>cl_channel_type</type>     <name>image_channel_data_type</name></member>
        </type>
        <type category="struct" name="cl_image_desc">
            <member><type>cl_mem_object_type</type>  <name>image_type</name></member>
            <member><type>size_t</type>              <name>image_width</name></member>
            <member><type>size_t</type>              <name>image_height</name></member>
            <member><type>size_t</type>              <name>image_depth</name></member>
            <member><type>size_t</type>              <name>image_array_size</name></member>
            <member><type>size_t</type>              <name>image_row_pitch</name></member>
            <member><type>size_t</type>              <name>image_slice_pitch</name></member>
            <member><type>cl_uint</type>             <name>num_mip_levels</name></member>
            <member><type>cl_uint</type>             <name>num_samples</name></member>
            <!-- Can't properly express this in XML schema yet - use name/ tag to align? -->
            <member>union {
        cl_mem buffer;
        cl_mem mem_object;
    }</member>
        </type>
        <type category="struct" name="cl_buffer_region">
            <member><type>size_t</type>              <name>origin</name></member>
            <member><type>size_t</type>              <name>size</name></member>
        </type>
        <type category="struct" name="cl_name_version">
            <member><type>cl_version</type>          <name>version</name></member>
            <member><type>char</type><name>name</name>[<enum>CL_NAME_VERSION_MAX_NAME_SIZE</enum>]</member>
        </type>
        <type category="struct" name="cl_name_version_khr">
            <member><type>cl_version_khr</type>      <name>version</name></member>
            <member><type>char</type><name>name</name>[<enum>CL_NAME_VERSION_MAX_NAME_SIZE_KHR</enum>]</member>
        </type>
        <type category="struct" name="cl_queue_family_properties_intel">
            <member><type>cl_command_queue_properties</type>            <name>properties</name></member>
            <member><type>cl_command_queue_capabilities_intel</type>    <name>capabilities</name></member>
            <member><type>cl_uint</type>                                <name>count</name></member>
            <member><type>char</type><name>name</name>[<enum>CL_QUEUE_FAMILY_MAX_NAME_SIZE_INTEL</enum>]</member>
        </type>
    </types>

    <!-- SECTION: OpenCL enumerant (token) definitions. -->

    <!-- There are a variety of namespaces corresponding to different
         parameter types, including bitmasks in their own namespaces -->

    <enums name="Constants" vendor="Khronos" comment="Miscellaneous API constants, in cl_platform.h">
        <enum value="8"                                            name="CL_CHAR_BIT"/>
        <enum value="127"                                          name="CL_SCHAR_MAX"/>
        <enum value="(-127-1)"                                     name="CL_SCHAR_MIN"/>
        <enum value="CL_SCHAR_MAX"                                 name="CL_CHAR_MAX"/>
        <enum value="CL_SCHAR_MIN"                                 name="CL_CHAR_MIN"/>
        <enum value="255"                                          name="CL_UCHAR_MAX"/>
        <enum value="32767"                                        name="CL_SHRT_MAX"/>
        <enum value="(-32767-1)"                                   name="CL_SHRT_MIN"/>
        <enum value="65535"                                        name="CL_USHRT_MAX"/>
        <enum value="2147483647"                                   name="CL_INT_MAX"/>
        <enum value="(-2147483647-1)"                              name="CL_INT_MIN"/>
        <enum value="0xffffffffU"                                  name="CL_UINT_MAX"/>
        <enum value="((cl_long) 0x7FFFFFFFFFFFFFFFLL)"             name="CL_LONG_MAX"/>
        <enum value="((cl_long) -0x7FFFFFFFFFFFFFFFLL - 1LL)"      name="CL_LONG_MIN"/>
        <enum value="((cl_ulong) 0xFFFFFFFFFFFFFFFFULL)"           name="CL_ULONG_MAX"/>
        <enum value="6"                                            name="CL_FLT_DIG"/>
        <enum value="24"                                           name="CL_FLT_MANT_DIG"/>
        <enum value="+38"                                          name="CL_FLT_MAX_10_EXP"/>
        <enum value="+128"                                         name="CL_FLT_MAX_EXP"/>
        <enum value="-37"                                          name="CL_FLT_MIN_10_EXP"/>
        <enum value="-125"                                         name="CL_FLT_MIN_EXP"/>
        <enum value="2"                                            name="CL_FLT_RADIX"/>
        <enum value="340282346638528859811704183484516925440.0f"   name="CL_FLT_MAX"/>
        <enum value="1.175494350822287507969e-38f"                 name="CL_FLT_MIN"/>
        <enum value="1.1920928955078125e-7f"                       name="CL_FLT_EPSILON"/>
        <enum value="3"                                            name="CL_HALF_DIG"/>
        <enum value="11"                                           name="CL_HALF_MANT_DIG"/>
        <enum value="+4"                                           name="CL_HALF_MAX_10_EXP"/>
        <enum value="+16"                                          name="CL_HALF_MAX_EXP"/>
        <enum value="-4"                                           name="CL_HALF_MIN_10_EXP"/>
        <enum value="-13"                                          name="CL_HALF_MIN_EXP"/>
        <enum value="2"                                            name="CL_HALF_RADIX"/>
        <enum value="65504.0f"                                     name="CL_HALF_MAX"/>
        <enum value="6.103515625e-05f"                             name="CL_HALF_MIN"/>
        <enum value="9.765625e-04f"                                name="CL_HALF_EPSILON"/>
        <enum value="15"                                           name="CL_DBL_DIG"/>
        <enum value="53"                                           name="CL_DBL_MANT_DIG"/>
        <enum value="+308"                                         name="CL_DBL_MAX_10_EXP"/>
        <enum value="+1024"                                        name="CL_DBL_MAX_EXP"/>
        <enum value="-307"                                         name="CL_DBL_MIN_10_EXP"/>
        <enum value="-1021"                                        name="CL_DBL_MIN_EXP"/>
        <enum value="2"                                            name="CL_DBL_RADIX"/>
        <enum value="1.7976931348623158e+308"                      name="CL_DBL_MAX"/>
        <enum value="2.225073858507201383090e-308"                 name="CL_DBL_MIN"/>
        <enum value="2.220446049250313080847e-16"                  name="CL_DBL_EPSILON"/>
        <enum value="2.7182818284590452354"                        name="CL_M_E"/>
        <enum value="1.4426950408889634074"                        name="CL_M_LOG2E"/>
        <enum value="0.43429448190325182765"                       name="CL_M_LOG10E"/>
        <enum value="0.69314718055994530942"                       name="CL_M_LN2"/>
        <enum value="2.30258509299404568402"                       name="CL_M_LN10"/>
        <enum value="3.14159265358979323846"                       name="CL_M_PI"/>
        <enum value="1.57079632679489661923"                       name="CL_M_PI_2"/>
        <enum value="0.78539816339744830962"                       name="CL_M_PI_4"/>
        <enum value="0.31830988618379067154"                       name="CL_M_1_PI"/>
        <enum value="0.63661977236758134308"                       name="CL_M_2_PI"/>
        <enum value="1.12837916709551257390"                       name="CL_M_2_SQRTPI"/>
        <enum value="1.41421356237309504880"                       name="CL_M_SQRT2"/>
        <enum value="0.70710678118654752440"                       name="CL_M_SQRT1_2"/>
        <enum value="2.718281828f"                                 name="CL_M_E_F"/>
        <enum value="1.442695041f"                                 name="CL_M_LOG2E_F"/>
        <enum value="0.434294482f"                                 name="CL_M_LOG10E_F"/>
        <enum value="0.693147181f"                                 name="CL_M_LN2_F"/>
        <enum value="2.302585093f"                                 name="CL_M_LN10_F"/>
        <enum value="3.141592654f"                                 name="CL_M_PI_F"/>
        <enum value="1.570796327f"                                 name="CL_M_PI_2_F"/>
        <enum value="0.785398163f"                                 name="CL_M_PI_4_F"/>
        <enum value="0.318309886f"                                 name="CL_M_1_PI_F"/>
        <enum value="0.636619772f"                                 name="CL_M_2_PI_F"/>
        <enum value="1.128379167f"                                 name="CL_M_2_SQRTPI_F"/>
        <enum value="1.414213562f"                                 name="CL_M_SQRT2_F"/>
        <enum value="0.707106781f"                                 name="CL_M_SQRT1_2_F"/>
        <enum value="(CL_INFINITY - CL_INFINITY)"                  name="CL_NAN"/>
        <enum value="((cl_float) 1e50)"                            name="CL_HUGE_VALF"/>
        <enum value="((cl_double) 1e500)"                          name="CL_HUGE_VAL"/>
        <enum value="CL_FLT_MAX"                                   name="CL_MAXFLOAT"/>
        <enum value="CL_HUGE_VALF"                                 name="CL_INFINITY"/>
            <comment> These values are defined differently along the
                        #if (defined (_WIN32) &amp;&amp; defined(_MSC_VER))
                      compilation path, as follows:
                &lt;enum value="179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0" name="CL_DBL_MAX"/>
                #if defined( __GNUC__ )
                   #define CL_HUGE_VALF     __builtin_huge_valf()
                   #define CL_HUGE_VAL      __builtin_huge_val()
                   #define CL_NAN           __builtin_nanf( "" )
                #else
                   #define CL_HUGE_VALF     ((cl_float) 1e50)
                   #define CL_HUGE_VAL      ((cl_double) 1e500)
                   float nanf( const char * );
                   #define CL_NAN           nanf( "" )
                #endif
            </comment>
    </enums>

    <enums name="Constants.Versioning" vendor="Khronos" comment="Miscellaneous API constants, in cl.h">
        <enum value="10"                                 name="CL_VERSION_MAJOR_BITS"/>
        <enum value="10"                                 name="CL_VERSION_MINOR_BITS"/>
        <enum value="12"                                 name="CL_VERSION_PATCH_BITS"/>
        <enum value="64"                                 name="CL_NAME_VERSION_MAX_NAME_SIZE"/>
    </enums>

    <enums name="Constants.cl_khr_extended_versioning" vendor="Khronos" comment="cl_khr_extended_versioning, in cl_ext.h">
        <enum value="10"                                 name="CL_VERSION_MAJOR_BITS_KHR"/>
        <enum value="10"                                 name="CL_VERSION_MINOR_BITS_KHR"/>
        <enum value="12"                                 name="CL_VERSION_PATCH_BITS_KHR"/>
        <enum value="64"                                 name="CL_NAME_VERSION_MAX_NAME_SIZE_KHR"/>
    </enums>

    <enums name="Constants.cl_khr_device_uuid" vendor="Khronos" comment="cl_khr_device_uuid size constants, in cl_ext.h">
        <enum value="16"            name="CL_UUID_SIZE_KHR"/>
        <enum value="8"             name="CL_LUID_SIZE_KHR"/>
    </enums>

    <enums name="Constants.cl_arm_import_memory" vendor="ARM" comment = "cl_arm_import_memory size constants, in cl_ext.h">
        <enum value="SIZE_MAX"      name="CL_IMPORT_MEMORY_WHOLE_ALLOCATION_ARM"/>
    </enums>

    <enums name="Constants.cl_intel_command_queue_families" vendor="Intel" commant="cl_intel_command_queue_families constants, in cl_ext.h">
        <enum value="64"            name="CL_QUEUE_FAMILY_MAX_NAME_SIZE_INTEL"/>
        <enum value="0"             name="CL_QUEUE_DEFAULT_CAPABILITIES_INTEL"/>
    </enums>

    <enums name="Constants.cl_loader_layers" vendor="Khronos" comment="Defined Layer API version, in cl_layer.h">
        <enum value="100"           name="CL_LAYER_API_VERSION_100"/>
    </enums>

    <enums start="0" end="-999" name="ErrorCodes.0" vendor="Khronos" comment="Error codes start at 0 and decrease">
        <enum value="0"             name="CL_SUCCESS"/>
        <enum value="-1"            name="CL_DEVICE_NOT_FOUND"/>
        <enum value="-2"            name="CL_DEVICE_NOT_AVAILABLE"/>
        <enum value="-3"            name="CL_COMPILER_NOT_AVAILABLE"/>
        <enum value="-4"            name="CL_MEM_OBJECT_ALLOCATION_FAILURE"/>
        <enum value="-5"            name="CL_OUT_OF_RESOURCES"/>
        <enum value="-6"            name="CL_OUT_OF_HOST_MEMORY"/>
        <enum value="-7"            name="CL_PROFILING_INFO_NOT_AVAILABLE"/>
        <enum value="-8"            name="CL_MEM_COPY_OVERLAP"/>
        <enum value="-9"            name="CL_IMAGE_FORMAT_MISMATCH"/>
        <enum value="-10"           name="CL_IMAGE_FORMAT_NOT_SUPPORTED"/>
        <enum value="-11"           name="CL_BUILD_PROGRAM_FAILURE"/>
        <enum value="-12"           name="CL_MAP_FAILURE"/>
        <enum value="-13"           name="CL_MISALIGNED_SUB_BUFFER_OFFSET"/>
        <enum value="-14"           name="CL_EXEC_STATUS_ERROR_FOR_EVENTS_IN_WAIT_LIST"/>
        <enum value="-15"           name="CL_COMPILE_PROGRAM_FAILURE"/>
        <enum value="-16"           name="CL_LINKER_NOT_AVAILABLE"/>
        <enum value="-17"           name="CL_LINK_PROGRAM_FAILURE"/>
        <enum value="-18"           name="CL_DEVICE_PARTITION_FAILED"/>
        <enum value="-19"           name="CL_KERNEL_ARG_INFO_NOT_AVAILABLE"/>
            <unused start="-20" end="-29" comment="Reserved for Khronos"/>
        <enum value="-30"           name="CL_INVALID_VALUE"/>
        <enum value="-31"           name="CL_INVALID_DEVICE_TYPE"/>
        <enum value="-32"           name="CL_INVALID_PLATFORM"/>
        <enum value="-33"           name="CL_INVALID_DEVICE"/>
        <enum value="-34"           name="CL_INVALID_CONTEXT"/>
        <enum value="-35"           name="CL_INVALID_QUEUE_PROPERTIES"/>
        <enum value="-36"           name="CL_INVALID_COMMAND_QUEUE"/>
        <enum value="-37"           name="CL_INVALID_HOST_PTR"/>
        <enum value="-38"           name="CL_INVALID_MEM_OBJECT"/>
        <enum value="-39"           name="CL_INVALID_IMAGE_FORMAT_DESCRIPTOR"/>
        <enum value="-40"           name="CL_INVALID_IMAGE_SIZE"/>
        <enum value="-41"           name="CL_INVALID_SAMPLER"/>
        <enum value="-42"           name="CL_INVALID_BINARY"/>
        <enum value="-43"           name="CL_INVALID_BUILD_OPTIONS"/>
        <enum value="-44"           name="CL_INVALID_PROGRAM"/>
        <enum value="-45"           name="CL_INVALID_PROGRAM_EXECUTABLE"/>
        <enum value="-46"           name="CL_INVALID_KERNEL_NAME"/>
        <enum value="-47"           name="CL_INVALID_KERNEL_DEFINITION"/>
        <enum value="-48"           name="CL_INVALID_KERNEL"/>
        <enum value="-49"           name="CL_INVALID_ARG_INDEX"/>
        <enum value="-50"           name="CL_INVALID_ARG_VALUE"/>
        <enum value="-51"           name="CL_INVALID_ARG_SIZE"/>
        <enum value="-52"           name="CL_INVALID_KERNEL_ARGS"/>
        <enum value="-53"           name="CL_INVALID_WORK_DIMENSION"/>
        <enum value="-54"           name="CL_INVALID_WORK_GROUP_SIZE"/>
        <enum value="-55"           name="CL_INVALID_WORK_ITEM_SIZE"/>
        <enum value="-56"           name="CL_INVALID_GLOBAL_OFFSET"/>
        <enum value="-57"           name="CL_INVALID_EVENT_WAIT_LIST"/>
        <enum value="-58"           name="CL_INVALID_EVENT"/>
        <enum value="-59"           name="CL_INVALID_OPERATION"/>
        <enum value="-60"           name="CL_INVALID_GL_OBJECT"/>
        <enum value="-61"           name="CL_INVALID_BUFFER_SIZE"/>
        <enum value="-62"           name="CL_INVALID_MIP_LEVEL"/>
        <enum value="-63"           name="CL_INVALID_GLOBAL_WORK_SIZE"/>
        <enum value="-64"           name="CL_INVALID_PROPERTY"/>
        <enum value="-65"           name="CL_INVALID_IMAGE_DESCRIPTOR"/>
        <enum value="-66"           name="CL_INVALID_COMPILER_OPTIONS"/>
        <enum value="-67"           name="CL_INVALID_LINKER_OPTIONS"/>
        <enum value="-68"           name="CL_INVALID_DEVICE_PARTITION_COUNT"/>
        <enum value="-69"           name="CL_INVALID_PIPE_SIZE"/>
        <enum value="-70"           name="CL_INVALID_DEVICE_QUEUE"/>
        <enum value="-71"           name="CL_INVALID_SPEC_ID"/>
        <enum value="-72"           name="CL_MAX_SIZE_RESTRICTION_EXCEEDED"/>
            <unused start="-73" end="-999" comment="Reserved for Khronos"/>
    </enums>

    <enums start="-1000" end="-1001" name="ErrorCodes.1000" vendor="Khronos" comment="Extension error codes start at -1000 and decrease">
        <enum value="-1000"         name="CL_INVALID_GL_SHAREGROUP_REFERENCE_KHR"/>
        <enum value="-1001"         name="CL_PLATFORM_NOT_FOUND_KHR"/>
    </enums>

    <enums start="-1002" end="-1017" name="ErrorCodes.1002" vendor="NVIDIA" comment="Allocated per Bug 5782">
        <enum value="-1002"         name="CL_INVALID_D3D10_DEVICE_KHR"/>
        <!-- unused <enum value="-1002"       name="CL_INVALID_D3D10_DEVICE_NV"/> -->
        <enum value="-1003"         name="CL_INVALID_D3D10_RESOURCE_KHR"/>
        <!-- unused <enum value="-1003"       name="CL_INVALID_D3D10_RESOURCE_NV"/> -->
        <enum value="-1004"         name="CL_D3D10_RESOURCE_ALREADY_ACQUIRED_KHR"/>
        <!-- unused <enum value="-1004"       name="CL_D3D10_RESOURCE_ALREADY_ACQUIRED_NV"/> -->
        <enum value="-1005"         name="CL_D3D10_RESOURCE_NOT_ACQUIRED_KHR"/>
        <!-- unused <enum value="-1005"       name="CL_D3D10_RESOURCE_NOT_ACQUIRED_NV"/> -->
        <enum value="-1006"         name="CL_INVALID_D3D11_DEVICE_KHR"/>
        <!-- unused <enum value="-1006"       name="CL_INVALID_D3D11_DEVICE_NV"/> -->
        <enum value="-1007"         name="CL_INVALID_D3D11_RESOURCE_KHR"/>
        <!-- unused <enum value="-1007"       name="CL_INVALID_D3D11_RESOURCE_NV"/> -->
        <enum value="-1008"         name="CL_D3D11_RESOURCE_ALREADY_ACQUIRED_KHR"/>
        <!-- unused <enum value="-1008"       name="CL_D3D11_RESOURCE_ALREADY_ACQUIRED_NV"/> -->
        <enum value="-1009"         name="CL_D3D11_RESOURCE_NOT_ACQUIRED_KHR"/>
        <!-- unused <enum value="-1009"       name="CL_D3D11_RESOURCE_NOT_ACQUIRED_NV"/> -->
        <!-- unused <enum value="-1010"       name="CL_INVALID_D3D9_DEVICE_NV"/> -->
        <enum value="-1010"         name="CL_INVALID_DX9_DEVICE_INTEL"/>
        <enum value="-1010"         name="CL_INVALID_DX9_MEDIA_ADAPTER_KHR"/>
        <!-- unused <enum value="-1011"       name="CL_INVALID_D3D9_RESOURCE_NV"/> -->
        <enum value="-1011"         name="CL_INVALID_DX9_MEDIA_SURFACE_KHR"/>
        <enum value="-1011"         name="CL_INVALID_DX9_RESOURCE_INTEL"/>
        <!-- unused <enum value="-1012"       name="CL_D3D9_RESOURCE_ALREADY_ACQUIRED_NV"/> -->
        <enum value="-1012"         name="CL_DX9_MEDIA_SURFACE_ALREADY_ACQUIRED_KHR"/>
        <enum value="-1012"         name="CL_DX9_RESOURCE_ALREADY_ACQUIRED_INTEL"/>
        <!-- unused <enum value="-1013"       name="CL_D3D9_RESOURCE_NOT_ACQUIRED_NV"/> -->
        <enum value="-1013"         name="CL_DX9_MEDIA_SURFACE_NOT_ACQUIRED_KHR"/>
        <enum value="-1013"         name="CL_DX9_RESOURCE_NOT_ACQUIRED_INTEL"/>
            <unused start="-1014" end="-1017"/>
    </enums>

    <enums start="-1018" end="-1024" name="ErrorCodes.1018" vendor="AMD" comment="Allocated per Bugs 6071,6075">
            <!-- To be named AMD atomic counters extension - see bug 6071/6075 -->
        <!-- unused <enum value="-1018"       name="CL_INVALID_PROPERTY_EXT"/> -->
        <!-- unused <enum value="-1019"       name="CL_DEVICE_PARTITION_FAILED_EXT"/> -->
        <!-- unused <enum value="-1020"       name="CL_INVALID_PARTITION_COUNT_EXT"/> -->
            <!-- To be named AMD D3D9 extension - see bug 6071 -->
        <!-- unused <enum value="-1021"       name="CL_INVALID_D3D9_DEVICE_AMD"/> -->
        <!-- unused <enum value="-1022"       name="CL_INVALID_D3D9_RESOURCE_AMD"/> -->
        <!-- unused <enum value="-1023"       name="CL_D3D9_RESOURCE_ALREADY_ACQUIRED_AMD"/> -->
        <!-- unused <enum value="-1024"       name="CL_D3D9_RESOURCE_NOT_ACQUIRED_AMD"/> -->
    </enums>

    <enums start="-1025" end="-1056" name="ErrorCodes.1025" vendor="IBM" comment="Allocated per Bug 6261">
            <unused start="-1025" end="-1056"/>
    </enums>

    <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">
        <enum value="-1057"         name="CL_DEVICE_PARTITION_FAILED_EXT"/>
        <enum value="-1058"         name="CL_INVALID_PARTITION_COUNT_EXT"/>
        <enum value="-1059"         name="CL_INVALID_PARTITION_NAME_EXT"/>
            <unused start="-1060" end="-1091"/>
    </enums>

    <enums start="-1092" end="-1093" name="ErrorCodes.1092" vendor="Khronos" comment="Allocated per Bug 10490">
        <enum value="-1092"         name="CL_EGL_RESOURCE_NOT_ACQUIRED_KHR"/>
        <enum value="-1093"         name="CL_INVALID_EGL_OBJECT_KHR"/>
    </enums>

    <enums start="-1094" end="-1101" name="ErrorCodes.1094" vendor="Intel" comment="Allocated per Bug 11132">
        <enum value="-1094"         name="CL_INVALID_ACCELERATOR_INTEL"/>
        <enum value="-1095"         name="CL_INVALID_ACCELERATOR_TYPE_INTEL"/>
        <enum value="-1096"         name="CL_INVALID_ACCELERATOR_DESCRIPTOR_INTEL"/>
        <enum value="-1097"         name="CL_ACCELERATOR_TYPE_NOT_SUPPORTED_INTEL"/>
        <enum value="-1098"         name="CL_INVALID_VA_API_MEDIA_ADAPTER_INTEL"/>
        <enum value="-1099"         name="CL_INVALID_VA_API_MEDIA_SURFACE_INTEL"/>
        <enum value="-1100"         name="CL_VA_API_MEDIA_SURFACE_ALREADY_ACQUIRED_INTEL"/>
        <enum value="-1101"         name="CL_VA_API_MEDIA_SURFACE_NOT_ACQUIRED_INTEL"/>
    </enums>

    <enums start="-1102" end="-1105" name="ErrorCodes.1102" vendor="Qualcomm" comment="Reserved for Qualcomm extensions">
    </enums>

    <enums start="-1106" end="-1107" name="ErrorCodes.1106" vendor="Intel" comment="Intel FPGA extension">
        <enum value="-1106"         name="CL_PIPE_FULL_INTEL"/>
        <enum value="-1107"         name="CL_PIPE_EMPTY_INTEL"/>
    </enums>

    <enums start="-1108" end="-1120" name="ErrorCodes.1108" vendor="Arm" comment="Reserved for Arm extensions">
        <enum value="-1108"         name="CL_COMMAND_TERMINATED_ITSELF_WITH_FAILURE_ARM"/>
            <unused start="-1109" end="-1120"/>
    </enums>

    <enums start="-1121" end="-1121" name="ErrorCodes.1121" vendor="Khronos" comment="For cl_khr_terminate_context">
        <enum value="-1121"         name="CL_CONTEXT_TERMINATED_KHR"/>
    </enums>

    <enums start="-1122" end="-1137" name="ErrorCodes.1122" vendor="IMG" comment="Reserved for Imagination extensions">
        <enum value="-1122"         name="CL_ERROR_RESERVED0_IMG"/>
        <enum value="-1123"         name="CL_ERROR_RESERVED1_IMG"/>
        <enum value="-1124"         name="CL_ERROR_RESERVED2_IMG"/>
        <enum value="-1125"         name="CL_ERROR_RESERVED3_IMG"/>
            <unused start="-1126" end="-1137"/>
    </enums>

    <enums start="-1138" end="-9999" name="ErrorCodes.future" vendor="Khronos" comment="RESERVED FOR FUTURE ALLOCATIONS BY KHRONOS">
            <unused start="-1138" end="-9999"/>
    </enums>

    <enums name="cl_bool" vendor="Khronos" comment="Boolean values">
        <enum value="0"             name="CL_FALSE"/>
        <enum value="1"             name="CL_TRUE"/>
            <!-- Should be alias= -->
        <enum value="CL_TRUE"       name="CL_BLOCKING"/>
        <enum value="CL_FALSE"      name="CL_NON_BLOCKING"/>
    </enums>

    <enums name="MiscNumbers" vendor="Multiple" comment="Tokens whose numeric value is intrinsically meaningful">
        <enum value="((cl_device_partition_property_ext)0)"        name="CL_PROPERTIES_LIST_END_EXT"/>
        <enum value="((cl_device_partition_property_ext)0)"        name="CL_PARTITION_BY_COUNTS_LIST_END_EXT"/>
        <enum value="0x0"           name="CL_DEVICE_PARTITION_BY_COUNTS_LIST_END"/>
        <enum value="((cl_device_partition_property_ext)0 - 1)"    name="CL_PARTITION_BY_NAMES_LIST_END_EXT"/>
        <enum value="-1"            name="CL_PARTITION_BY_NAMES_LIST_END_INTEL"/>
    </enums>

    <enums name="cl_affinity_domain_ext" vendor="IBM" comment="Property names for CL_DEVICE_PARTITION_BY_AFFINITY_DOMAIN_EXT. This is not a bitfield.">
        <enum value="0x1"           name="CL_AFFINITY_DOMAIN_L1_CACHE_EXT"/>
        <enum value="0x2"           name="CL_AFFINITY_DOMAIN_L2_CACHE_EXT"/>
        <enum value="0x3"           name="CL_AFFINITY_DOMAIN_L3_CACHE_EXT"/>
        <enum value="0x4"           name="CL_AFFINITY_DOMAIN_L4_CACHE_EXT"/>
        <enum value="0x10"          name="CL_AFFINITY_DOMAIN_NUMA_EXT"/>
        <enum value="0x100"         name="CL_AFFINITY_DOMAIN_NEXT_FISSIONABLE_EXT"/>
    </enums>

    <enums name="cl_build_status" vendor="Khronos" comment="New values decrease">
        <enum value="0"             name="CL_BUILD_SUCCESS"/>
        <enum value="-1"            name="CL_BUILD_NONE"/>
        <enum value="-2"            name="CL_BUILD_ERROR"/>
        <enum value="-3"            name="CL_BUILD_IN_PROGRESS"/>
            <unused start="-4" end="-9999"/>
    </enums>

    <enums name="clCommandExecutionStatus" vendor="Khronos">
        <enum value="0x0"           name="CL_COMPLETE"/>
        <enum value="0x1"           name="CL_RUNNING"/>
        <enum value="0x2"           name="CL_SUBMITTED"/>
        <enum value="0x3"           name="CL_QUEUED"/>
            <unused start="0x4" end="9999"/>
    </enums>

    <enums name="cl_device_mem_cache_type" vendor="Khronos">
        <enum value="0x0"           name="CL_NONE"/>
        <enum value="0x1"           name="CL_READ_ONLY_CACHE"/>
        <enum value="0x2"           name="CL_READ_WRITE_CACHE"/>
            <unused start="0x3" end="9999"/>
    </enums>

    <enums name="cl_compiler_mode_altera" vendor="Altera">
        <!-- unused <enum value="0x0"         name="CL_CONTEXT_COMPILER_MODE_OFFLINE_ALTERA"/> -->
        <!-- unused <enum value="0x1"         name="CL_CONTEXT_COMPILER_MODE_OFFLINE_CREATE_EXE_LIBRARY_ALTERA"/> -->
        <!-- unused <enum value="0x2"         name="CL_CONTEXT_COMPILER_MODE_OFFLINE_USE_EXE_LIBRARY_ALTERA"/> -->
        <!-- unused <enum value="0x3"         name="CL_CONTEXT_COMPILER_MODE_PRELOADED_BINARY_ONLY_ALTERA"/> -->
            <unused start="0x4" end="9999"/>
    </enums>

    <enums name="cl_device_local_mem_type" vendor="Khronos">
        <enum value="0x1"           name="CL_LOCAL"/>
        <enum value="0x2"           name="CL_GLOBAL"/>
            <unused start="0x3" end="9999"/>
    </enums>

    <enums name="cl_program_binary_type" vendor="Khronos">
        <enum value="0x0"           name="CL_PROGRAM_BINARY_TYPE_NONE"/>
        <enum value="0x1"           name="CL_PROGRAM_BINARY_TYPE_COMPILED_OBJECT"/>
        <enum value="0x2"           name="CL_PROGRAM_BINARY_TYPE_LIBRARY"/>
        <enum value="0x4"           name="CL_PROGRAM_BINARY_TYPE_EXECUTABLE"/>
            <unused start="0x5" end="9999"/>
    </enums>

    <enums name="cl_accelerator_type_intel" vendor="Intel" comment="cl_intel_motion_estimation extension">
        <enum value="0x0"           name="CL_ACCELERATOR_TYPE_MOTION_ESTIMATION_INTEL"/>
            <unused start="0x1" end="9999"/>
    </enums>

    <enums name="cl_device_type" vendor="Khronos" type="bitmask">
        <enum bitpos="0"            name="CL_DEVICE_TYPE_DEFAULT"/>
        <enum bitpos="1"            name="CL_DEVICE_TYPE_CPU"/>
        <enum bitpos="2"            name="CL_DEVICE_TYPE_GPU"/>
        <enum bitpos="3"            name="CL_DEVICE_TYPE_ACCELERATOR"/>
        <enum bitpos="4"            name="CL_DEVICE_TYPE_CUSTOM"/>
            <unused start="5" end="31"/>
        <enum value="0xFFFFFFFF"    name="CL_DEVICE_TYPE_ALL"/>
    </enums>

    <enums name="cl_device_fp_config" vendor="Khronos" type="bitmask">
        <enum bitpos="0"            name="CL_FP_DENORM"/>
        <enum bitpos="1"            name="CL_FP_INF_NAN"/>
        <enum bitpos="2"            name="CL_FP_ROUND_TO_NEAREST"/>
        <enum bitpos="3"            name="CL_FP_ROUND_TO_ZERO"/>
        <enum bitpos="4"            name="CL_FP_ROUND_TO_INF"/>
        <enum bitpos="5"            name="CL_FP_FMA"/>
        <enum bitpos="6"            name="CL_FP_SOFT_FLOAT"/>
        <enum bitpos="7"            name="CL_FP_CORRECTLY_ROUNDED_DIVIDE_SQRT"/>
            <unused start="8" end="31"/>
    </enums>

    <enums name="cl_device_exec_capabilities" vendor="Khronos" type="bitmask">
        <enum bitpos="0"            name="CL_EXEC_KERNEL"/>
        <enum bitpos="1"            name="CL_EXEC_NATIVE_KERNEL"/>
            <unused start="2" end="31"/>
    </enums>

    <enums name="cl_device_svm_capabilities" vendor="Khronos" type="bitmask">
        <enum bitpos="0"            name="CL_DEVICE_SVM_COARSE_GRAIN_BUFFER"/>
        <enum bitpos="1"            name="CL_DEVICE_SVM_FINE_GRAIN_BUFFER"/>
        <enum bitpos="2"            name="CL_DEVICE_SVM_FINE_GRAIN_SYSTEM"/>
        <enum bitpos="3"            name="CL_DEVICE_SVM_ATOMICS"/>
            <unused start="4" end="31"/>
    </enums>

    <enums name="cl_device_atomic_capabilities" vendor="Khronos" type="bitmask">
        <enum bitpos="0"            name="CL_DEVICE_ATOMIC_ORDER_RELAXED"/>
        <enum bitpos="1"            name="CL_DEVICE_ATOMIC_ORDER_ACQ_REL"/>
        <enum bitpos="2"            name="CL_DEVICE_ATOMIC_ORDER_SEQ_CST"/>
        <enum bitpos="3"            name="CL_DEVICE_ATOMIC_SCOPE_WORK_ITEM"/>
        <enum bitpos="4"            name="CL_DEVICE_ATOMIC_SCOPE_WORK_GROUP"/>
        <enum bitpos="5"            name="CL_DEVICE_ATOMIC_SCOPE_DEVICE"/>
        <enum bitpos="6"            name="CL_DEVICE_ATOMIC_SCOPE_ALL_DEVICES"/>
            <unused start="7" end="31"/>
    </enums>

    <enums name="cl_device_device_enqueue_capabilities" vendor="Khronos" type="bitmask">
        <enum bitpos="0"            name="CL_DEVICE_QUEUE_SUPPORTED"/>
        <enum bitpos="1"            name="CL_DEVICE_QUEUE_REPLACEABLE_DEFAULT"/>
            <unused start="2" end="31"/>
    </enums>

    <enums name="cl_command_queue_properties" vendor="Khronos" type="bitmask">
        <enum bitpos="0"            name="CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE"/>
        <enum bitpos="1"            name="CL_QUEUE_PROFILING_ENABLE"/>
        <enum bitpos="2"            name="CL_QUEUE_ON_DEVICE"/>
        <enum bitpos="3"            name="CL_QUEUE_ON_DEVICE_DEFAULT"/>
            <unused start="4" end="29"/>
        <enum bitpos="30"           name="CL_QUEUE_RESERVED_QCOM"/>
        <enum bitpos="31"           name="CL_QUEUE_THREAD_LOCAL_EXEC_ENABLE_INTEL"/>
    </enums>

    <enums name="cl_queue_priority_khr" vendor="Khronos" type="bitmask">
        <enum bitpos="0"            name="CL_QUEUE_PRIORITY_HIGH_KHR"/>
        <enum bitpos="1"            name="CL_QUEUE_PRIORITY_MED_KHR"/>
        <enum bitpos="2"            name="CL_QUEUE_PRIORITY_LOW_KHR"/>
            <unused start="3" end="31"/>
    </enums>

    <enums name="cl_queue_throttle_khr" vendor="Khronos" type="bitmask">
        <enum bitpos="0"            name="CL_QUEUE_THROTTLE_HIGH_KHR"/>
        <enum bitpos="1"            name="CL_QUEUE_THROTTLE_MED_KHR"/>
        <enum bitpos="2"            name="CL_QUEUE_THROTTLE_LOW_KHR"/>
            <unused start="3" end="31"/>
    </enums>

    <enums name="cl_mem_flags" vendor="Khronos" type="bitmask">
        <enum bitpos="0"            name="CL_MEM_READ_WRITE"/>
        <enum bitpos="1"            name="CL_MEM_WRITE_ONLY"/>
        <enum bitpos="2"            name="CL_MEM_READ_ONLY"/>
        <enum bitpos="3"            name="CL_MEM_USE_HOST_PTR"/>
        <enum bitpos="4"            name="CL_MEM_ALLOC_HOST_PTR"/>
        <enum bitpos="5"            name="CL_MEM_COPY_HOST_PTR"/>
            <unused start="6" comment="reserved"/>
        <enum bitpos="7"            name="CL_MEM_HOST_WRITE_ONLY"/>
        <enum bitpos="8"            name="CL_MEM_HOST_READ_ONLY"/>
        <enum bitpos="9"            name="CL_MEM_HOST_NO_ACCESS"/>
        <enum bitpos="10"           name="CL_MEM_SVM_FINE_GRAIN_BUFFER"/>
        <enum bitpos="11"           name="CL_MEM_SVM_ATOMICS"/>
        <enum bitpos="12"           name="CL_MEM_KERNEL_READ_AND_WRITE"/>
            <unused start="13" end="19"/>
        <enum bitpos="20"           name="CL_MEM_FORCE_HOST_MEMORY_INTEL"/>
            <unused start="21" end="23"/>
        <enum bitpos="24"           name="CL_MEM_NO_ACCESS_INTEL"/>
        <enum bitpos="25"           name="CL_MEM_ACCESS_FLAGS_UNRESTRICTED_INTEL"/>
        <enum bitpos="26"           name="CL_MEM_USE_UNCACHED_CPU_MEMORY_IMG"/>
        <enum bitpos="27"           name="CL_MEM_USE_CACHED_CPU_MEMORY_IMG"/>
        <enum bitpos="28"           name="CL_MEM_USE_GRALLOC_PTR_IMG"/>
        <enum bitpos="29"           name="CL_MEM_EXT_HOST_PTR_QCOM"/>
        <!-- unused <enum bitpos="30"   name="CL_MEM_BUS_ADDRESSABLE_AMD"/> -->
        <!-- unused <enum bitpos="31"   name="CL_MEM_EXTERNAL_MEMORY_AMD"/> -->
        <enum bitpos="32"           name="CL_MEM_RESERVED0_ARM"/>
        <enum bitpos="33"           name="CL_MEM_RESERVED1_ARM"/>
        <enum bitpos="34"           name="CL_MEM_RESERVED2_ARM"/>
        <enum bitpos="35"           name="CL_MEM_RESERVED3_ARM"/>
        <enum bitpos="36"           name="CL_MEM_RESERVED4_ARM"/>
            <unused start="37" end="63"/>
    </enums>

    <enums name="cl_map_flags" vendor="Khronos" type="bitmask">
        <enum bitpos="0"            name="CL_MAP_READ"/>
        <enum bitpos="1"            name="CL_MAP_WRITE"/>
        <enum bitpos="2"            name="CL_MAP_WRITE_INVALIDATE_REGION"/>
            <unused start="3" end="31"/>
    </enums>

    <enums name="cl_mem_migration_flags" vendor="Khronos" type="bitmask">
        <enum bitpos="0"            name="CL_MIGRATE_MEM_OBJECT_HOST"/>
        <enum bitpos="0"            name="CL_MIGRATE_MEM_OBJECT_HOST_EXT"/>
        <enum bitpos="1"            name="CL_MIGRATE_MEM_OBJECT_CONTENT_UNDEFINED"/>
            <unused start="2" end="31"/>
    </enums>

    <enums name="cl_device_affinity_domain" vendor="Khronos" type="bitmask">
        <enum bitpos="0"            name="CL_DEVICE_AFFINITY_DOMAIN_NUMA"/>
        <enum bitpos="1"            name="CL_DEVICE_AFFINITY_DOMAIN_L4_CACHE"/>
        <enum bitpos="2"            name="CL_DEVICE_AFFINITY_DOMAIN_L3_CACHE"/>
        <enum bitpos="3"            name="CL_DEVICE_AFFINITY_DOMAIN_L2_CACHE"/>
        <enum bitpos="4"            name="CL_DEVICE_AFFINITY_DOMAIN_L1_CACHE"/>
        <enum bitpos="5"            name="CL_DEVICE_AFFINITY_DOMAIN_NEXT_PARTITIONABLE"/>
            <unused start="6" end="31"/>
    </enums>

    <enums name="cl_kernel_arg_type_qualifer" vendor="Khronos" type="bitmask">
        <enum value="0"             name="CL_KERNEL_ARG_TYPE_NONE"/>
        <enum bitpos="0"            name="CL_KERNEL_ARG_TYPE_CONST"/>
        <enum bitpos="1"            name="CL_KERNEL_ARG_TYPE_RESTRICT"/>
        <enum bitpos="2"            name="CL_KERNEL_ARG_TYPE_VOLATILE"/>
        <enum bitpos="3"            name="CL_KERNEL_ARG_TYPE_PIPE"/>
            <unused start="4" end="31"/>
    </enums>

    <enums name="cl_motion_estimation_desc_intel.mb_block_type" vendor="Intel" type="bitmask">
        <enum value="0x0"           name="CL_ME_MB_TYPE_16x16_INTEL"/>
        <enum value="0x1"           name="CL_ME_MB_TYPE_8x8_INTEL"/>
        <enum value="0x2"           name="CL_ME_MB_TYPE_4x4_INTEL"/>
            <unused start="0x4" end="0x80000000"/>
    </enums>

    <enums name="cl_motion_estimation_desc_intel.subpixel_mode" vendor="Intel" type="bitmask">
        <enum value="0x0"           name="CL_ME_SUBPIXEL_MODE_INTEGER_INTEL"/>
        <enum value="0x1"           name="CL_ME_SUBPIXEL_MODE_HPEL_INTEL"/>
        <enum value="0x2"           name="CL_ME_SUBPIXEL_MODE_QPEL_INTEL"/>
            <unused start="0x4" end="0x80000000"/>
    </enums>

    <enums name="cl_motion_estimation_desc_intel.sad_adjust_mode" vendor="Intel" type="bitmask">
        <enum value="0x0"           name="CL_ME_SAD_ADJUST_MODE_NONE_INTEL"/>
        <enum value="0x1"           name="CL_ME_SAD_ADJUST_MODE_HAAR_INTEL"/>
            <unused start="0x2" end="0x80000000"/>
    </enums>

    <enums name="cl_motion_estimation_desc_intel.search_path_type" vendor="Intel" type="bitmask">
        <enum value="0x0"           name="CL_ME_SEARCH_PATH_RADIUS_2_2_INTEL"/>
        <enum value="0x1"           name="CL_ME_SEARCH_PATH_RADIUS_4_4_INTEL"/>
            <unused start="0x2"/>
        <enum value="0x5"           name="CL_ME_SEARCH_PATH_RADIUS_16_12_INTEL"/>
            <unused start="0x8" end="0x80000000"/>
    </enums>

    <enums name="cl_arm_device_svm_capabilities.flags" vendor="ARM" type="bitmask">
        <enum bitpos="0"            name="CL_DEVICE_SVM_COARSE_GRAIN_BUFFER_ARM"/>
        <enum bitpos="1"            name="CL_DEVICE_SVM_FINE_GRAIN_BUFFER_ARM"/>
        <enum bitpos="2"            name="CL_DEVICE_SVM_FINE_GRAIN_SYSTEM_ARM"/>
        <enum bitpos="3"            name="CL_DEVICE_SVM_ATOMICS_ARM"/>
            <unused start="0x10" end="0x80000000"/>
    </enums>

    <enums name="cl_arm_svm_alloc.flags" vendor="ARM" type="bitmask">
        <enum bitpos="10"           name="CL_MEM_SVM_FINE_GRAIN_BUFFER_ARM"/>
        <enum bitpos="11"           name="CL_MEM_SVM_ATOMICS_ARM"/>
            <unused start="0x4" end="0x80000000"/>
    </enums>

    <enums name="cl_intel_driver_diagnostics" vendor="Intel" type="bitmask">
        <enum value="0xff"          name="CL_CONTEXT_DIAGNOSTICS_LEVEL_ALL_INTEL"/>
        <enum bitpos="0"            name="CL_CONTEXT_DIAGNOSTICS_LEVEL_GOOD_INTEL"/>
        <enum bitpos="1"            name="CL_CONTEXT_DIAGNOSTICS_LEVEL_BAD_INTEL"/>
        <enum bitpos="2"            name="CL_CONTEXT_DIAGNOSTICS_LEVEL_NEUTRAL_INTEL"/>
    </enums>

    <enums name="cl_intel_advanced_motion_estimation.flags" vendor="Intel" type="bitmask">
        <enum value="0x1"           name="CL_ME_CHROMA_INTRA_PREDICT_ENABLED_INTEL"/>
        <enum value="0x2"           name="CL_ME_LUMA_INTRA_PREDICT_ENABLED_INTEL"/>
    </enums>

    <enums name="cl_intel_advanced_motion_estimation.search_cost_penalty" vendor="Intel">
        <enum value="0x0"           name="CL_ME_COST_PENALTY_NONE_INTEL"/>
        <enum value="0x1"           name="CL_ME_COST_PENALTY_LOW_INTEL"/>
        <enum value="0x2"           name="CL_ME_COST_PENALTY_NORMAL_INTEL"/>
        <enum value="0x3"           name="CL_ME_COST_PENALTY_HIGH_INTEL"/>
    </enums>

    <enums name="cl_intel_advanced_motion_estimation.search_cost_precision" vendor="Intel">
        <enum value="0x0"           name="CL_ME_COST_PRECISION_QPEL_INTEL"/>
        <enum value="0x1"           name="CL_ME_COST_PRECISION_HPEL_INTEL"/>
        <enum value="0x2"           name="CL_ME_COST_PRECISION_PEL_INTEL"/>
        <enum value="0x3"           name="CL_ME_COST_PRECISION_DPEL_INTEL"/>
    </enums>

    <enums name="cl_intel_advanced_motion_estimation.intra_search_prediction_modes_buffer.luma_block" vendor="Intel">
        <enum value="0x0"           name="CL_ME_LUMA_PREDICTOR_MODE_VERTICAL_INTEL"/>
        <enum value="0x1"           name="CL_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_INTEL"/>
        <enum value="0x2"           name="CL_ME_LUMA_PREDICTOR_MODE_DC_INTEL"/>
        <enum value="0x3"           name="CL_ME_LUMA_PREDICTOR_MODE_DIAGONAL_DOWN_LEFT_INTEL"/>
        <enum value="0x4"           name="CL_ME_LUMA_PREDICTOR_MODE_DIAGONAL_DOWN_RIGHT_INTEL"/>
        <enum value="0x4"           name="CL_ME_LUMA_PREDICTOR_MODE_PLANE_INTEL"/>
        <enum value="0x5"           name="CL_ME_LUMA_PREDICTOR_MODE_VERTICAL_RIGHT_INTEL"/>
        <enum value="0x6"           name="CL_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_DOWN_INTEL"/>
        <enum value="0x7"           name="CL_ME_LUMA_PREDICTOR_MODE_VERTICAL_LEFT_INTEL"/>
        <enum value="0x8"           name="CL_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_UP_INTEL"/>
    </enums>

    <enums name="cl_intel_advanced_motion_estimation.intra_search_prediction_modes_buffer.chroma_block" vendor="Intel">
        <enum value="0x0"           name="CL_ME_CHROMA_PREDICTOR_MODE_DC_INTEL"/>
        <enum value="0x1"           name="CL_ME_CHROMA_PREDICTOR_MODE_HORIZONTAL_INTEL"/>
        <enum value="0x2"           name="CL_ME_CHROMA_PREDICTOR_MODE_VERTICAL_INTEL"/>
        <enum value="0x3"           name="CL_ME_CHROMA_PREDICTOR_MODE_PLANE_INTEL"/>
    </enums>

    <enums name="cl_intel_advanced_motion_estimation.skip_block_type" vendor="Intel">
        <enum value="0x0"           name="CL_ME_SKIP_BLOCK_TYPE_16x16_INTEL"/>
        <enum value="0x1"           name="CL_ME_SKIP_BLOCK_TYPE_8x8_INTEL"/>
        <!-- unused <enum value="0x2"         name="CL_ME_SKIP_BLOCK_TYPE_4x4_INTEL"/> -->
    </enums>

    <enums name="cl_intel_advanced_motion_estimation.device_me_version" vendor="Intel">
        <enum value="0x0"           name="CL_ME_VERSION_LEGACY_INTEL"/>
        <enum value="0x1"           name="CL_ME_VERSION_ADVANCED_VER_1_INTEL"/>
        <enum value="0x2"           name="CL_ME_VERSION_ADVANCED_VER_2_INTEL"/>
    </enums>

    <enums name="cl_intel_advanced_motion_estimation.cl_motion_detect_desc_intel" vendor="Intel">
        <enum value="0x1"           name="CL_ME_FORWARD_INPUT_MODE_INTEL"/>
        <enum value="0x2"           name="CL_ME_BACKWARD_INPUT_MODE_INTEL"/>
        <enum value="0x3"           name="CL_ME_BIDIRECTION_INPUT_MODE_INTEL"/>
    </enums>

    <enums name="cl_intel_advanced_motion_estimation.cl_motion_detect_desc_intel.2" comment="Part of previous block?" vendor="Intel">
        <enum value="16"            name="CL_ME_BIDIR_WEIGHT_QUARTER_INTEL"/>
        <enum value="21"            name="CL_ME_BIDIR_WEIGHT_THIRD_INTEL"/>
        <enum value="32"            name="CL_ME_BIDIR_WEIGHT_HALF_INTEL"/>
        <enum value="43"            name="CL_ME_BIDIR_WEIGHT_TWO_THIRD_INTEL"/>
        <enum value="48"            name="CL_ME_BIDIR_WEIGHT_THREE_QUARTER_INTEL"/>
    </enums>

    <enums name="cl_intel_device_side_avc_motion_estimation.version" vendor="Intel">
            <enum value="0x0"           name="CL_AVC_ME_VERSION_0_INTEL"                              />
            <enum value="0x1"           name="CL_AVC_ME_VERSION_1_INTEL"                              />
    </enums>

    <enums name="cl_intel_device_side_avc_motion_estimation.major" vendor="Intel">
            <enum value="0x0"           name="CL_AVC_ME_MAJOR_16x16_INTEL"                            />
            <enum value="0x1"           name="CL_AVC_ME_MAJOR_16x8_INTEL"                             />
            <enum value="0x2"           name="CL_AVC_ME_MAJOR_8x16_INTEL"                             />
            <enum value="0x3"           name="CL_AVC_ME_MAJOR_8x8_INTEL"                              />
    </enums>

    <enums name="cl_intel_device_side_avc_motion_estimation.minor" vendor="Intel">
            <enum value="0x0"           name="CL_AVC_ME_MINOR_8x8_INTEL"                              />
            <enum value="0x1"           name="CL_AVC_ME_MINOR_8x4_INTEL"                              />
            <enum value="0x2"           name="CL_AVC_ME_MINOR_4x8_INTEL"                              />
            <enum value="0x3"           name="CL_AVC_ME_MINOR_4x4_INTEL"                              />
    </enums>

    <enums name="cl_intel_device_side_avc_motion_estimation.major.dir" vendor="Intel">
            <enum value="0x0"           name="CL_AVC_ME_MAJOR_FORWARD_INTEL"                          />
            <enum value="0x1"           name="CL_AVC_ME_MAJOR_BACKWARD_INTEL"                         />
            <enum value="0x2"           name="CL_AVC_ME_MAJOR_BIDIRECTIONAL_INTEL"                    />
    </enums>

    <enums name="cl_intel_device_side_avc_motion_estimation.partition" vendor="Intel">
            <enum value="0x0"           name="CL_AVC_ME_PARTITION_MASK_ALL_INTEL"                     />
            <enum value="0x7E"          name="CL_AVC_ME_PARTITION_MASK_16x16_INTEL"                   />
            <enum value="0x7D"          name="CL_AVC_ME_PARTITION_MASK_16x8_INTEL"                    />
            <enum value="0x7B"          name="CL_AVC_ME_PARTITION_MASK_8x16_INTEL"                    />
            <enum value="0x77"          name="CL_AVC_ME_PARTITION_MASK_8x8_INTEL"                     />
            <enum value="0x6F"          name="CL_AVC_ME_PARTITION_MASK_8x4_INTEL"                     />
            <enum value="0x5F"          name="CL_AVC_ME_PARTITION_MASK_4x8_INTEL"                     />
            <enum value="0x3F"          name="CL_AVC_ME_PARTITION_MASK_4x4_INTEL"                     />
    </enums>

    <enums name="cl_intel_device_side_avc_motion_estimation.window" vendor="Intel">
            <enum value="0x0"           name="CL_AVC_ME_SEARCH_WINDOW_EXHAUSTIVE_INTEL"               />
            <enum value="0x1"           name="CL_AVC_ME_SEARCH_WINDOW_SMALL_INTEL"                    />
            <enum value="0x2"           name="CL_AVC_ME_SEARCH_WINDOW_TINY_INTEL"                     />
            <enum value="0x3"           name="CL_AVC_ME_SEARCH_WINDOW_EXTRA_TINY_INTEL"               />
            <enum value="0x4"           name="CL_AVC_ME_SEARCH_WINDOW_DIAMOND_INTEL"                  />
            <enum value="0x5"           name="CL_AVC_ME_SEARCH_WINDOW_LARGE_DIAMOND_INTEL"            />
            <enum value="0x6"           name="CL_AVC_ME_SEARCH_WINDOW_RESERVED0_INTEL"                />
            <enum value="0x7"           name="CL_AVC_ME_SEARCH_WINDOW_RESERVED1_INTEL"                />
            <enum value="0x8"           name="CL_AVC_ME_SEARCH_WINDOW_CUSTOM_INTEL"                   />
            <enum value="0x9"           name="CL_AVC_ME_SEARCH_WINDOW_16x12_RADIUS_INTEL"             />
            <enum value="0x2"           name="CL_AVC_ME_SEARCH_WINDOW_4x4_RADIUS_INTEL"               />
            <enum value="0xa"           name="CL_AVC_ME_SEARCH_WINDOW_2x2_RADIUS_INTEL"               />
    </enums>

    <enums name="cl_intel_device_side_avc_motion_estimation.adjust" vendor="Intel">
            <enum value="0x0"           name="CL_AVC_ME_SAD_ADJUST_MODE_NONE_INTEL"                   />
            <enum value="0x2"           name="CL_AVC_ME_SAD_ADJUST_MODE_HAAR_INTEL"                   />
    </enums>

    <enums name="cl_intel_device_side_avc_motion_estimation.subpixel" vendor="Intel">
            <enum value="0x0"           name="CL_AVC_ME_SUBPIXEL_MODE_INTEGER_INTEL"                  />
            <enum value="0x1"           name="CL_AVC_ME_SUBPIXEL_MODE_HPEL_INTEL"                     />
            <enum value="0x3"           name="CL_AVC_ME_SUBPIXEL_MODE_QPEL_INTEL"                     />
    </enums>

    <enums name="cl_intel_device_side_avc_motion_estimation.cost.precision" vendor="Intel">
            <enum value="0x0"           name="CL_AVC_ME_COST_PRECISION_QPEL_INTEL"                    />
            <enum value="0x1"           name="CL_AVC_ME_COST_PRECISION_HPEL_INTEL"                    />
            <enum value="0x2"           name="CL_AVC_ME_COST_PRECISION_PEL_INTEL"                     />
            <enum value="0x3"           name="CL_AVC_ME_COST_PRECISION_DPEL_INTEL"                    />
    </enums>

    <enums name="cl_intel_device_side_avc_motion_estimation.weight" vendor="Intel">
            <enum value="0x10"          name="CL_AVC_ME_BIDIR_WEIGHT_QUARTER_INTEL"                   />
            <enum value="0x15"          name="CL_AVC_ME_BIDIR_WEIGHT_THIRD_INTEL"                     />
            <enum value="0x20"          name="CL_AVC_ME_BIDIR_WEIGHT_HALF_INTEL"                      />
            <enum value="0x2B"          name="CL_AVC_ME_BIDIR_WEIGHT_TWO_THIRD_INTEL"                 />
            <enum value="0x30"          name="CL_AVC_ME_BIDIR_WEIGHT_THREE_QUARTER_INTEL"             />
    </enums>

    <enums name="cl_intel_device_side_avc_motion_estimation.border" vendor="Intel">
            <enum value="0x0"           name="CL_AVC_ME_BORDER_REACHED_LEFT_INTEL"                    />
            <enum value="0x2"           name="CL_AVC_ME_BORDER_REACHED_RIGHT_INTEL"                   />
            <enum value="0x4"           name="CL_AVC_ME_BORDER_REACHED_TOP_INTEL"                     />
            <enum value="0x8"           name="CL_AVC_ME_BORDER_REACHED_BOTTOM_INTEL"                  />
    </enums>

    <enums name="cl_intel_device_side_avc_motion_estimation.skip" vendor="Intel">
            <enum value="0x0"           name="CL_AVC_ME_SKIP_BLOCK_PARTITION_16x16_INTEL"             />
            <enum value="0x4000"        name="CL_AVC_ME_SKIP_BLOCK_PARTITION_8x8_INTEL"               />
    </enums>

    <enums name="cl_intel_device_side_avc_motion_estimation.skip.dir" vendor="Intel">
            <enum value="(0x1 &lt;&lt; 24)"   name="CL_AVC_ME_SKIP_BLOCK_16x16_FORWARD_ENABLE_INTEL"        />
            <enum value="(0x2 &lt;&lt; 24)"   name="CL_AVC_ME_SKIP_BLOCK_16x16_BACKWARD_ENABLE_INTEL"       />
            <enum value="(0x3 &lt;&lt; 24)"   name="CL_AVC_ME_SKIP_BLOCK_16x16_DUAL_ENABLE_INTEL"           />
            <enum value="(0x55 &lt;&lt; 24)"  name="CL_AVC_ME_SKIP_BLOCK_8x8_FORWARD_ENABLE_INTEL"          />
            <enum value="(0xAA &lt;&lt; 24)"  name="CL_AVC_ME_SKIP_BLOCK_8x8_BACKWARD_ENABLE_INTEL"         />
            <enum value="(0xFF &lt;&lt; 24)"  name="CL_AVC_ME_SKIP_BLOCK_8x8_DUAL_ENABLE_INTEL"             />
            <enum value="(0x1 &lt;&lt; 24)"   name="CL_AVC_ME_SKIP_BLOCK_8x8_0_FORWARD_ENABLE_INTEL"        />
            <enum value="(0x2 &lt;&lt; 24)"   name="CL_AVC_ME_SKIP_BLOCK_8x8_0_BACKWARD_ENABLE_INTEL"       />
            <enum value="(0x1 &lt;&lt; 26)"   name="CL_AVC_ME_SKIP_BLOCK_8x8_1_FORWARD_ENABLE_INTEL"        />
            <enum value="(0x2 &lt;&lt; 26)"   name="CL_AVC_ME_SKIP_BLOCK_8x8_1_BACKWARD_ENABLE_INTEL"       />
            <enum value="(0x1 &lt;&lt; 28)"   name="CL_AVC_ME_SKIP_BLOCK_8x8_2_FORWARD_ENABLE_INTEL"        />
            <enum value="(0x2 &lt;&lt; 28)"   name="CL_AVC_ME_SKIP_BLOCK_8x8_2_BACKWARD_ENABLE_INTEL"       />
            <enum value="(0x1 &lt;&lt; 30)"   name="CL_AVC_ME_SKIP_BLOCK_8x8_3_FORWARD_ENABLE_INTEL"        />
            <enum value="(0x2 &lt;&lt; 30)"   name="CL_AVC_ME_SKIP_BLOCK_8x8_3_BACKWARD_ENABLE_INTEL"       />
    </enums>

    <enums name="cl_intel_device_side_avc_motion_estimation.skip.block.based" vendor="Intel">
            <enum value="0x00"          name="CL_AVC_ME_BLOCK_BASED_SKIP_4x4_INTEL"                   />
            <enum value="0x80"          name="CL_AVC_ME_BLOCK_BASED_SKIP_8x8_INTEL"                   />
    </enums>

    <enums name="cl_intel_device_side_avc_motion_estimation.intra" vendor="Intel">
            <enum value="0x0"           name="CL_AVC_ME_INTRA_16x16_INTEL"                            />
            <enum value="0x1"           name="CL_AVC_ME_INTRA_8x8_INTEL"                              />
            <enum value="0x2"           name="CL_AVC_ME_INTRA_4x4_INTEL"                              />
    </enums>

    <enums name="cl_intel_device_side_avc_motion_estimation.intra.luma" vendor="Intel">
            <enum value="0x6"           name="CL_AVC_ME_INTRA_LUMA_PARTITION_MASK_16x16_INTEL"        />
            <enum value="0x5"           name="CL_AVC_ME_INTRA_LUMA_PARTITION_MASK_8x8_INTEL"          />
            <enum value="0x3"           name="CL_AVC_ME_INTRA_LUMA_PARTITION_MASK_4x4_INTEL"          />
    </enums>

    <enums name="cl_intel_device_side_avc_motion_estimation.intra.neighbor" vendor="Intel">
            <enum value="0x60"          name="CL_AVC_ME_INTRA_NEIGHBOR_LEFT_MASK_ENABLE_INTEL"        />
            <enum value="0x10"          name="CL_AVC_ME_INTRA_NEIGHBOR_UPPER_MASK_ENABLE_INTEL"       />
            <enum value="0x8"           name="CL_AVC_ME_INTRA_NEIGHBOR_UPPER_RIGHT_MASK_ENABLE_INTEL" />
            <enum value="0x4"           name="CL_AVC_ME_INTRA_NEIGHBOR_UPPER_LEFT_MASK_ENABLE_INTEL"  />
    </enums>

    <enums name="cl_intel_device_side_avc_motion_estimation.luma.predictor" vendor="Intel">
            <enum value="0x0"           name="CL_AVC_ME_LUMA_PREDICTOR_MODE_VERTICAL_INTEL"           />
            <enum value="0x1"           name="CL_AVC_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_INTEL"         />
            <enum value="0x2"           name="CL_AVC_ME_LUMA_PREDICTOR_MODE_DC_INTEL"                 />
            <enum value="0x3"           name="CL_AVC_ME_LUMA_PREDICTOR_MODE_DIAGONAL_DOWN_LEFT_INTEL" />
            <enum value="0x4"           name="CL_AVC_ME_LUMA_PREDICTOR_MODE_DIAGONAL_DOWN_RIGHT_INTEL"/>
            <enum value="0x4"           name="CL_AVC_ME_LUMA_PREDICTOR_MODE_PLANE_INTEL"              />
            <enum value="0x5"           name="CL_AVC_ME_LUMA_PREDICTOR_MODE_VERTICAL_RIGHT_INTEL"     />
            <enum value="0x6"           name="CL_AVC_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_DOWN_INTEL"    />
            <enum value="0x7"           name="CL_AVC_ME_LUMA_PREDICTOR_MODE_VERTICAL_LEFT_INTEL"      />
            <enum value="0x8"           name="CL_AVC_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_UP_INTEL"      />
            <enum value="0x0"           name="CL_AVC_ME_CHROMA_PREDICTOR_MODE_DC_INTEL"               />
            <enum value="0x1"           name="CL_AVC_ME_CHROMA_PREDICTOR_MODE_HORIZONTAL_INTEL"       />
            <enum value="0x2"           name="CL_AVC_ME_CHROMA_PREDICTOR_MODE_VERTICAL_INTEL"         />
            <enum value="0x3"           name="CL_AVC_ME_CHROMA_PREDICTOR_MODE_PLANE_INTEL"            />
    </enums>

    <enums name="cl_intel_device_side_avc_motion_estimation.frame.dir" vendor="Intel">
            <enum value="0x1"           name="CL_AVC_ME_FRAME_FORWARD_INTEL"                          />
            <enum value="0x2"           name="CL_AVC_ME_FRAME_BACKWARD_INTEL"                         />
            <enum value="0x3"           name="CL_AVC_ME_FRAME_DUAL_INTEL"                             />
    </enums>

    <enums name="cl_intel_device_side_avc_motion_estimation.slice" vendor="Intel">
            <enum value="0x0"           name="CL_AVC_ME_SLICE_TYPE_PRED_INTEL"                        />
            <enum value="0x1"           name="CL_AVC_ME_SLICE_TYPE_BPRED_INTEL"                       />
            <enum value="0x2"           name="CL_AVC_ME_SLICE_TYPE_INTRA_INTEL"                       />
    </enums>

    <enums name="cl_intel_device_side_avc_motion_estimation.scan.dir" vendor="Intel">
            <enum value="0x0"           name="CL_AVC_ME_INTERLACED_SCAN_TOP_FIELD_INTEL"              />
            <enum value="0x1"           name="CL_AVC_ME_INTERLACED_SCAN_BOTTOM_FIELD_INTEL"           />
    </enums>

    <enums name="cl_device_unified_shared_memory_capabilities_intel" vendor="Intel" type="bitmask">
        <enum bitpos="0"            name="CL_UNIFIED_SHARED_MEMORY_ACCESS_INTEL"/>
        <enum bitpos="1"            name="CL_UNIFIED_SHARED_MEMORY_ATOMIC_ACCESS_INTEL"/>
        <enum bitpos="2"            name="CL_UNIFIED_SHARED_MEMORY_CONCURRENT_ACCESS_INTEL"/>
        <enum bitpos="3"            name="CL_UNIFIED_SHARED_MEMORY_CONCURRENT_ATOMIC_ACCESS_INTEL"/>
    </enums>

    <enums name="cl_mem_alloc_flags_intel" vendor="Intel" type="bitmask">
        <enum bitpos="0"            name="CL_MEM_ALLOC_WRITE_COMBINED_INTEL"/>
    </enums>

    <enums name="cl_mipmap_filter_mode_img" vendor="IMG" comment="cl_img_generate_mipmap extension">
        <enum value="0x0"           name="CL_MIPMAP_FILTER_ANY_IMG"/>
        <enum value="0x1"           name="CL_MIPMAP_FILTER_BOX_IMG"/>
            <unused start="0x2" end="9999"/>
    </enums>

    <enums name="cl_mem_alloc_flags_img" vendor="IMG" type="bitmask">
        <enum bitpos="0"            name="CL_MEM_ALLOC_RELAX_REQUIREMENTS_IMG"/>
    </enums>

    <enums name="cl_device_scheduling_controls_capabilities_arm" vendor="Arm" type="bitmask">
        <enum bitpos="0"            name="CL_DEVICE_SCHEDULING_KERNEL_BATCHING_ARM"/>
        <enum bitpos="1"            name="CL_DEVICE_SCHEDULING_WORKGROUP_BATCH_SIZE_ARM"/>
        <enum bitpos="2"            name="CL_DEVICE_SCHEDULING_WORKGROUP_BATCH_SIZE_MODIFIER_ARM"/>
        <enum bitpos="3"            name="CL_DEVICE_SCHEDULING_DEFERRED_FLUSH_ARM"/>
        <enum bitpos="4"            name="CL_DEVICE_SCHEDULING_REGISTER_ALLOCATION_ARM"/>
            <unused start="5" end="63"/>
    </enums>

    <enums name="cl_command_termination_reason_arm" vendor="Arm">
        <enum value="0"             name="CL_COMMAND_TERMINATION_COMPLETION_ARM"/>
        <enum value="1"             name="CL_COMMAND_TERMINATION_CONTROLLED_SUCCESS_ARM"/>
        <enum value="2"             name="CL_COMMAND_TERMINATION_CONTROLLED_FAILURE_ARM"/>
        <enum value="3"             name="CL_COMMAND_TERMINATION_ERROR_ARM"/>
    </enums>

    <enums name="cl_device_controlled_termination_capabilities_arm" vendor="Arm" type="bitmask">
        <enum bitpos="0"            name="CL_DEVICE_CONTROLLED_TERMINATION_SUCCESS_ARM"/>
        <enum bitpos="1"            name="CL_DEVICE_CONTROLLED_TERMINATION_FAILURE_ARM"/>
        <enum bitpos="2"            name="CL_DEVICE_CONTROLLED_TERMINATION_QUERY_ARM"/>
            <unused start="3" end="63"/>
    </enums>

    <enums name="cl_command_queue_capabilities_intel" vendor="Intel" type="bitmask">
        <enum bitpos="0"            name="CL_QUEUE_CAPABILITY_CREATE_SINGLE_QUEUE_EVENTS_INTEL"/>
        <enum bitpos="1"            name="CL_QUEUE_CAPABILITY_CREATE_CROSS_QUEUE_EVENTS_INTEL"/>
        <enum bitpos="2"            name="CL_QUEUE_CAPABILITY_SINGLE_QUEUE_EVENT_WAIT_LIST_INTEL"/>
        <enum bitpos="3"            name="CL_QUEUE_CAPABILITY_CROSS_QUEUE_EVENT_WAIT_LIST_INTEL"/>
            <unused start="4" end="7"/>
        <enum bitpos="8"            name="CL_QUEUE_CAPABILITY_TRANSFER_BUFFER_INTEL"/>
        <enum bitpos="9"            name="CL_QUEUE_CAPABILITY_TRANSFER_BUFFER_RECT_INTEL"/>
        <enum bitpos="10"           name="CL_QUEUE_CAPABILITY_MAP_BUFFER_INTEL"/>
        <enum bitpos="11"           name="CL_QUEUE_CAPABILITY_FILL_BUFFER_INTEL"/>
        <enum bitpos="12"           name="CL_QUEUE_CAPABILITY_TRANSFER_IMAGE_INTEL"/>
        <enum bitpos="13"           name="CL_QUEUE_CAPABILITY_MAP_IMAGE_INTEL"/>
        <enum bitpos="14"           name="CL_QUEUE_CAPABILITY_FILL_IMAGE_INTEL"/>
        <enum bitpos="15"           name="CL_QUEUE_CAPABILITY_TRANSFER_BUFFER_IMAGE_INTEL"/>
        <enum bitpos="16"           name="CL_QUEUE_CAPABILITY_TRANSFER_IMAGE_BUFFER_INTEL"/>
            <unused start="17" end="23"/>
        <enum bitpos="24"           name="CL_QUEUE_CAPABILITY_MARKER_INTEL"/>
        <enum bitpos="25"           name="CL_QUEUE_CAPABILITY_BARRIER_INTEL"/>
        <enum bitpos="26"           name="CL_QUEUE_CAPABILITY_KERNEL_INTEL"/>
    </enums>

    <enums start="0x10000" end="0x1FFFF" name="cl_khronos_vendor_id" vendor="Khronos">
        <comment>
            In order to synchronize vendor IDs across Khronos APIs, Vulkan's vk.xml
            is used as the central Khronos vendor ID registry. To obtain a vendor
            ID for use in OpenCL, first follow the process defined Vulkan's "Procedures and Conventions"
            document under the section "Registering a Vendor ID with Khronos".
            Only once the ID has been reserved should a new enum entry be added here.
        </comment>
        <unused start="0x10000" end="0x10003" comment="These Khronos vendor IDs are already assigned in vk.xml"/>
        <enum value="0x10004" name="CL_KHRONOS_VENDOR_ID_CODEPLAY" comment="Codeplay Software Ltd."/>
        <unused start="0x10005" end="0x10005" comment="These Khronos vendor IDs are already assigned in vk.xml"/>
        <enum value="0x10006" name="CL_KHRONOS_VENDOR_ID_POCL" comment="PoCL (http://portablecl.org/)"/>
        <unused start="0x10007" end="0x1FFFF" comment="See vk.xml for the next available Khronos vendor ID"/>
    </enums>

    <enums start="0x0900" end="0x09FF" name="cl_platform_info" vendor="Khronos">
        <enum value="0x0900"        name="CL_PLATFORM_PROFILE"/>
        <enum value="0x0901"        name="CL_PLATFORM_VERSION"/>
        <enum value="0x0902"        name="CL_PLATFORM_NAME"/>
        <enum value="0x0903"        name="CL_PLATFORM_VENDOR"/>
        <enum value="0x0904"        name="CL_PLATFORM_EXTENSIONS"/>
        <enum value="0x0905"        name="CL_PLATFORM_HOST_TIMER_RESOLUTION"/>
        <enum value="0x0906"        name="CL_PLATFORM_NUMERIC_VERSION_KHR"/>
        <enum value="0x0906"        name="CL_PLATFORM_NUMERIC_VERSION"/>
        <enum value="0x0907"        name="CL_PLATFORM_EXTENSIONS_WITH_VERSION_KHR"/>
        <enum value="0x0907"        name="CL_PLATFORM_EXTENSIONS_WITH_VERSION"/>
            <unused start="0x0908" end="0x091F" comment="Reserved to Khronos"/>
        <enum value="0x0920"        name="CL_PLATFORM_ICD_SUFFIX_KHR"/>
            <unused start="0x0921" end="0x09FF" comment="Vendor extensions"/>
    </enums>

    <enums start="0x1000" end="0x107F" name="cl_device_info" vendor="Khronos">
        <enum value="0x1000"        name="CL_DEVICE_TYPE"/>
        <enum value="0x1001"        name="CL_DEVICE_VENDOR_ID"/>
        <enum value="0x1002"        name="CL_DEVICE_MAX_COMPUTE_UNITS"/>
        <enum value="0x1003"        name="CL_DEVICE_MAX_WORK_ITEM_DIMENSIONS"/>
        <enum value="0x1004"        name="CL_DEVICE_MAX_WORK_GROUP_SIZE"/>
        <enum value="0x1005"        name="CL_DEVICE_MAX_WORK_ITEM_SIZES"/>
        <enum value="0x1006"        name="CL_DEVICE_PREFERRED_VECTOR_WIDTH_CHAR"/>
        <enum value="0x1007"        name="CL_DEVICE_PREFERRED_VECTOR_WIDTH_SHORT"/>
        <enum value="0x1008"        name="CL_DEVICE_PREFERRED_VECTOR_WIDTH_INT"/>
        <enum value="0x1009"        name="CL_DEVICE_PREFERRED_VECTOR_WIDTH_LONG"/>
        <enum value="0x100A"        name="CL_DEVICE_PREFERRED_VECTOR_WIDTH_FLOAT"/>
        <enum value="0x100B"        name="CL_DEVICE_PREFERRED_VECTOR_WIDTH_DOUBLE"/>
        <enum value="0x100C"        name="CL_DEVICE_MAX_CLOCK_FREQUENCY"/>
        <enum value="0x100D"        name="CL_DEVICE_ADDRESS_BITS"/>
        <enum value="0x100E"        name="CL_DEVICE_MAX_READ_IMAGE_ARGS"/>
        <enum value="0x100F"        name="CL_DEVICE_MAX_WRITE_IMAGE_ARGS"/>
        <enum value="0x1010"        name="CL_DEVICE_MAX_MEM_ALLOC_SIZE"/>
        <enum value="0x1011"        name="CL_DEVICE_IMAGE2D_MAX_WIDTH"/>
        <enum value="0x1012"        name="CL_DEVICE_IMAGE2D_MAX_HEIGHT"/>
        <enum value="0x1013"        name="CL_DEVICE_IMAGE3D_MAX_WIDTH"/>
        <enum value="0x1014"        name="CL_DEVICE_IMAGE3D_MAX_HEIGHT"/>
        <enum value="0x1015"        name="CL_DEVICE_IMAGE3D_MAX_DEPTH"/>
        <enum value="0x1016"        name="CL_DEVICE_IMAGE_SUPPORT"/>
        <enum value="0x1017"        name="CL_DEVICE_MAX_PARAMETER_SIZE"/>
        <enum value="0x1018"        name="CL_DEVICE_MAX_SAMPLERS"/>
        <enum value="0x1019"        name="CL_DEVICE_MEM_BASE_ADDR_ALIGN"/>
        <enum value="0x101A"        name="CL_DEVICE_MIN_DATA_TYPE_ALIGN_SIZE"/>
        <enum value="0x101B"        name="CL_DEVICE_SINGLE_FP_CONFIG"/>
        <enum value="0x101C"        name="CL_DEVICE_GLOBAL_MEM_CACHE_TYPE"/>
        <enum value="0x101D"        name="CL_DEVICE_GLOBAL_MEM_CACHELINE_SIZE"/>
        <enum value="0x101E"        name="CL_DEVICE_GLOBAL_MEM_CACHE_SIZE"/>
        <enum value="0x101F"        name="CL_DEVICE_GLOBAL_MEM_SIZE"/>
        <enum value="0x1020"        name="CL_DEVICE_MAX_CONSTANT_BUFFER_SIZE"/>
        <enum value="0x1021"        name="CL_DEVICE_MAX_CONSTANT_ARGS"/>
        <enum value="0x1022"        name="CL_DEVICE_LOCAL_MEM_TYPE"/>
        <enum value="0x1023"        name="CL_DEVICE_LOCAL_MEM_SIZE"/>
        <enum value="0x1024"        name="CL_DEVICE_ERROR_CORRECTION_SUPPORT"/>
        <enum value="0x1025"        name="CL_DEVICE_PROFILING_TIMER_RESOLUTION"/>
        <enum value="0x1026"        name="CL_DEVICE_ENDIAN_LITTLE"/>
        <enum value="0x1027"        name="CL_DEVICE_AVAILABLE"/>
        <enum value="0x1028"        name="CL_DEVICE_COMPILER_AVAILABLE"/>
        <enum value="0x1029"        name="CL_DEVICE_EXECUTION_CAPABILITIES"/>
        <enum value="0x102A"        name="CL_DEVICE_QUEUE_PROPERTIES"/>
        <enum value="0x102A"        name="CL_DEVICE_QUEUE_ON_HOST_PROPERTIES"/>
        <enum value="0x102B"        name="CL_DEVICE_NAME"/>
        <enum value="0x102C"        name="CL_DEVICE_VENDOR"/>
        <enum value="0x102D"        name="CL_DRIVER_VERSION"/>
        <enum value="0x102E"        name="CL_DEVICE_PROFILE"/>
        <enum value="0x102F"        name="CL_DEVICE_VERSION"/>
        <enum value="0x1030"        name="CL_DEVICE_EXTENSIONS"/>
        <enum value="0x1031"        name="CL_DEVICE_PLATFORM"/>
        <enum value="0x1032"        name="CL_DEVICE_DOUBLE_FP_CONFIG"/>
        <enum value="0x1033"        name="CL_DEVICE_HALF_FP_CONFIG"/>
        <enum value="0x1034"        name="CL_DEVICE_PREFERRED_VECTOR_WIDTH_HALF"/>
        <enum value="0x1035"        name="CL_DEVICE_HOST_UNIFIED_MEMORY"/>
        <enum value="0x1036"        name="CL_DEVICE_NATIVE_VECTOR_WIDTH_CHAR"/>
        <enum value="0x1037"        name="CL_DEVICE_NATIVE_VECTOR_WIDTH_SHORT"/>
        <enum value="0x1038"        name="CL_DEVICE_NATIVE_VECTOR_WIDTH_INT"/>
        <enum value="0x1039"        name="CL_DEVICE_NATIVE_VECTOR_WIDTH_LONG"/>
        <enum value="0x103A"        name="CL_DEVICE_NATIVE_VECTOR_WIDTH_FLOAT"/>
        <enum value="0x103B"        name="CL_DEVICE_NATIVE_VECTOR_WIDTH_DOUBLE"/>
        <enum value="0x103C"        name="CL_DEVICE_NATIVE_VECTOR_WIDTH_HALF"/>
        <enum value="0x103D"        name="CL_DEVICE_OPENCL_C_VERSION"/>
        <enum value="0x103E"        name="CL_DEVICE_LINKER_AVAILABLE"/>
        <enum value="0x103F"        name="CL_DEVICE_BUILT_IN_KERNELS"/>
        <enum value="0x1040"        name="CL_DEVICE_IMAGE_MAX_BUFFER_SIZE"/>
        <enum value="0x1041"        name="CL_DEVICE_IMAGE_MAX_ARRAY_SIZE"/>
        <enum value="0x1042"        name="CL_DEVICE_PARENT_DEVICE"/>
        <enum value="0x1043"        name="CL_DEVICE_PARTITION_MAX_SUB_DEVICES"/>
        <enum value="0x1044"        name="CL_DEVICE_PARTITION_PROPERTIES"/>
        <enum value="0x1045"        name="CL_DEVICE_PARTITION_AFFINITY_DOMAIN"/>
        <enum value="0x1046"        name="CL_DEVICE_PARTITION_TYPE"/>
        <enum value="0x1047"        name="CL_DEVICE_REFERENCE_COUNT"/>
        <enum value="0x1048"        name="CL_DEVICE_PREFERRED_INTEROP_USER_SYNC"/>
        <enum value="0x1049"        name="CL_DEVICE_PRINTF_BUFFER_SIZE"/>
        <enum value="0x104A"        name="CL_DEVICE_IMAGE_PITCH_ALIGNMENT"/>
        <enum value="0x104A"        name="CL_DEVICE_IMAGE_PITCH_ALIGNMENT_KHR"/>
        <enum value="0x104B"        name="CL_DEVICE_IMAGE_BASE_ADDRESS_ALIGNMENT"/>
        <enum value="0x104B"        name="CL_DEVICE_IMAGE_BASE_ADDRESS_ALIGNMENT_KHR"/>
        <enum value="0x104C"        name="CL_DEVICE_MAX_READ_WRITE_IMAGE_ARGS"/>
        <enum value="0x104D"        name="CL_DEVICE_MAX_GLOBAL_VARIABLE_SIZE"/>
        <enum value="0x104E"        name="CL_DEVICE_QUEUE_ON_DEVICE_PROPERTIES"/>
        <enum value="0x104F"        name="CL_DEVICE_QUEUE_ON_DEVICE_PREFERRED_SIZE"/>
        <enum value="0x1050"        name="CL_DEVICE_QUEUE_ON_DEVICE_MAX_SIZE"/>
        <enum value="0x1051"        name="CL_DEVICE_MAX_ON_DEVICE_QUEUES"/>
        <enum value="0x1052"        name="CL_DEVICE_MAX_ON_DEVICE_EVENTS"/>
        <enum value="0x1053"        name="CL_DEVICE_SVM_CAPABILITIES"/>
        <enum value="0x1054"        name="CL_DEVICE_GLOBAL_VARIABLE_PREFERRED_TOTAL_SIZE"/>
        <enum value="0x1055"        name="CL_DEVICE_MAX_PIPE_ARGS"/>
        <enum value="0x1056"        name="CL_DEVICE_PIPE_MAX_ACTIVE_RESERVATIONS"/>
        <enum value="0x1057"        name="CL_DEVICE_PIPE_MAX_PACKET_SIZE"/>
        <enum value="0x1058"        name="CL_DEVICE_PREFERRED_PLATFORM_ATOMIC_ALIGNMENT"/>
        <enum value="0x1059"        name="CL_DEVICE_PREFERRED_GLOBAL_ATOMIC_ALIGNMENT"/>
        <enum value="0x105A"        name="CL_DEVICE_PREFERRED_LOCAL_ATOMIC_ALIGNMENT"/>
        <enum value="0x105B"        name="CL_DEVICE_IL_VERSION"/>
        <enum value="0x105B"        name="CL_DEVICE_IL_VERSION_KHR"/>
        <enum value="0x105C"        name="CL_DEVICE_MAX_NUM_SUB_GROUPS"/>
        <enum value="0x105D"        name="CL_DEVICE_SUB_GROUP_INDEPENDENT_FORWARD_PROGRESS"/>
        <enum value="0x105E"        name="CL_DEVICE_NUMERIC_VERSION_KHR"/>
        <enum value="0x105E"        name="CL_DEVICE_NUMERIC_VERSION"/>
        <enum value="0x105F"        name="CL_DEVICE_OPENCL_C_NUMERIC_VERSION_KHR"/>
        <enum value="0x1060"        name="CL_DEVICE_EXTENSIONS_WITH_VERSION_KHR"/>
        <enum value="0x1060"        name="CL_DEVICE_EXTENSIONS_WITH_VERSION"/>
        <enum value="0x1061"        name="CL_DEVICE_ILS_WITH_VERSION_KHR"/>
        <enum value="0x1061"        name="CL_DEVICE_ILS_WITH_VERSION"/>
        <enum value="0x1062"        name="CL_DEVICE_BUILT_IN_KERNELS_WITH_VERSION_KHR"/>
        <enum value="0x1062"        name="CL_DEVICE_BUILT_IN_KERNELS_WITH_VERSION"/>
        <enum value="0x1063"        name="CL_DEVICE_ATOMIC_MEMORY_CAPABILITIES"/>
        <enum value="0x1064"        name="CL_DEVICE_ATOMIC_FENCE_CAPABILITIES"/>
        <enum value="0x1065"        name="CL_DEVICE_NON_UNIFORM_WORK_GROUP_SUPPORT"/>
        <enum value="0x1066"        name="CL_DEVICE_OPENCL_C_ALL_VERSIONS"/>
        <enum value="0x1067"        name="CL_DEVICE_PREFERRED_WORK_GROUP_SIZE_MULTIPLE"/>
        <enum value="0x1068"        name="CL_DEVICE_WORK_GROUP_COLLECTIVE_FUNCTIONS_SUPPORT"/>
        <enum value="0x1069"        name="CL_DEVICE_GENERIC_ADDRESS_SPACE_SUPPORT"/>
        <enum value="0x106A"        name="CL_DEVICE_UUID_KHR"/>
        <enum value="0x106B"        name="CL_DRIVER_UUID_KHR"/>
        <enum value="0x106C"        name="CL_DEVICE_LUID_VALID_KHR"/>
        <enum value="0x106D"        name="CL_DEVICE_LUID_KHR"/>
        <enum value="0x106E"        name="CL_DEVICE_NODE_MASK_KHR"/>
        <enum value="0x106F"        name="CL_DEVICE_OPENCL_C_FEATURES"/>
        <enum value="0x1070"        name="CL_DEVICE_DEVICE_ENQUEUE_CAPABILITIES"/>
        <enum value="0x1071"        name="CL_DEVICE_PIPE_SUPPORT"/>
        <enum value="0x1072"        name="CL_DEVICE_LATEST_CONFORMANCE_VERSION_PASSED"/>
            <unused start="0x1073" end="0x1074" comment="Reserved for MR131"/>
            <unused start="0x1075" end="0x107F" comment="Reserved for cl_device_info"/>
        <enum value="0x1080"        name="CL_CONTEXT_REFERENCE_COUNT"/>
        <enum value="0x1081"        name="CL_CONTEXT_DEVICES"/>
        <enum value="0x1082"        name="CL_CONTEXT_PROPERTIES"/>
        <enum value="0x1083"        name="CL_CONTEXT_NUM_DEVICES"/>
        <enum value="0x1084"        name="CL_CONTEXT_PLATFORM"/>
        <enum value="0x1085"        name="CL_CONTEXT_INTEROP_USER_SYNC"/>
        <enum value="0x1086"        name="CL_DEVICE_PARTITION_EQUALLY"/>
        <enum value="0x1087"        name="CL_DEVICE_PARTITION_BY_COUNTS"/>
        <enum value="0x1088"        name="CL_DEVICE_PARTITION_BY_AFFINITY_DOMAIN"/>
            <unused start="0x1089" end="0x108F" comment="Reserved for cl_device_partition_property"/>
        <enum value="0x1090"        name="CL_QUEUE_CONTEXT"/>
        <enum value="0x1091"        name="CL_QUEUE_DEVICE"/>
        <enum value="0x1092"        name="CL_QUEUE_REFERENCE_COUNT"/>
        <enum value="0x1093"        name="CL_QUEUE_PROPERTIES"/>
        <enum value="0x1094"        name="CL_QUEUE_SIZE"/>
        <enum value="0x1095"        name="CL_QUEUE_DEVICE_DEFAULT"/>
        <enum value="0x1096"        name="CL_QUEUE_PRIORITY_KHR"/>
        <enum value="0x1097"        name="CL_QUEUE_THROTTLE_KHR"/>
        <enum value="0x1098"        name="CL_QUEUE_PROPERTIES_ARRAY"/>
            <unused start="0x1099" end="0x109F" comment="Reserved for cl_command_queue_info"/>
            <unused start="0x10A0" end="0x10AF" comment="Reserved for core API tokens"/>
        <enum value="0x10B0"        name="CL_R"/>
        <enum value="0x10B1"        name="CL_A"/>
        <enum value="0x10B2"        name="CL_RG"/>
        <enum value="0x10B3"        name="CL_RA"/>
        <enum value="0x10B4"        name="CL_RGB"/>
        <enum value="0x10B5"        name="CL_RGBA"/>
        <enum value="0x10B6"        name="CL_BGRA"/>
        <enum value="0x10B7"        name="CL_ARGB"/>
        <enum value="0x10B8"        name="CL_INTENSITY"/>
        <enum value="0x10B9"        name="CL_LUMINANCE"/>
        <enum value="0x10BA"        name="CL_Rx"/>
        <enum value="0x10BB"        name="CL_RGx"/>
        <enum value="0x10BC"        name="CL_RGBx"/>
        <enum value="0x10BD"        name="CL_DEPTH"/>
        <enum value="0x10BE"        name="CL_DEPTH_STENCIL"/>
        <enum value="0x10BF"        name="CL_sRGB"/>
        <enum value="0x10C0"        name="CL_sRGBx"/>
        <enum value="0x10C1"        name="CL_sRGBA"/>
        <enum value="0x10C2"        name="CL_sBGRA"/>
        <enum value="0x10C3"        name="CL_ABGR"/>
            <unused start="0x10C4" end="0x10CF" comment="Reserved for cl_channel_order"/>
        <enum value="0x10D0"        name="CL_SNORM_INT8"/>
        <enum value="0x10D1"        name="CL_SNORM_INT16"/>
        <enum value="0x10D2"        name="CL_UNORM_INT8"/>
        <enum value="0x10D3"        name="CL_UNORM_INT16"/>
        <enum value="0x10D4"        name="CL_UNORM_SHORT_565"/>
        <enum value="0x10D5"        name="CL_UNORM_SHORT_555"/>
        <enum value="0x10D6"        name="CL_UNORM_INT_101010"/>
        <enum value="0x10D7"        name="CL_SIGNED_INT8"/>
        <enum value="0x10D8"        name="CL_SIGNED_INT16"/>
        <enum value="0x10D9"        name="CL_SIGNED_INT32"/>
        <enum value="0x10DA"        name="CL_UNSIGNED_INT8"/>
        <enum value="0x10DB"        name="CL_UNSIGNED_INT16"/>
        <enum value="0x10DC"        name="CL_UNSIGNED_INT32"/>
        <enum value="0x10DD"        name="CL_HALF_FLOAT"/>
        <enum value="0x10DE"        name="CL_FLOAT"/>
        <enum value="0x10DF"        name="CL_UNORM_INT24"/>
        <enum value="0x10E0"        name="CL_UNORM_INT_101010_2"/>
            <unused start="0x10E1" end="0x10EF" comment="Reserved for cl_channel_type"/>
        <enum value="0x10F0"        name="CL_MEM_OBJECT_BUFFER"/>
        <enum value="0x10F1"        name="CL_MEM_OBJECT_IMAGE2D"/>
        <enum value="0x10F2"        name="CL_MEM_OBJECT_IMAGE3D"/>
        <enum value="0x10F3"        name="CL_MEM_OBJECT_IMAGE2D_ARRAY"/>
        <enum value="0x10F4"        name="CL_MEM_OBJECT_IMAGE1D"/>
        <enum value="0x10F5"        name="CL_MEM_OBJECT_IMAGE1D_ARRAY"/>
        <enum value="0x10F6"        name="CL_MEM_OBJECT_IMAGE1D_BUFFER"/>
        <enum value="0x10F7"        name="CL_MEM_OBJECT_PIPE"/>
            <unused start="0x10F8" end="0x10FF" comment="Reserved for cl_mem_object_type"/>
        <enum value="0x1100"        name="CL_MEM_TYPE"/>
        <enum value="0x1101"        name="CL_MEM_FLAGS"/>
        <enum value="0x1102"        name="CL_MEM_SIZE"/>
        <enum value="0x1103"        name="CL_MEM_HOST_PTR"/>
        <enum value="0x1104"        name="CL_MEM_MAP_COUNT"/>
        <enum value="0x1105"        name="CL_MEM_REFERENCE_COUNT"/>
        <enum value="0x1106"        name="CL_MEM_CONTEXT"/>
        <enum value="0x1107"        name="CL_MEM_ASSOCIATED_MEMOBJECT"/>
        <enum value="0x1108"        name="CL_MEM_OFFSET"/>
        <enum value="0x1109"        name="CL_MEM_USES_SVM_POINTER"/>
        <enum value="0x110A"        name="CL_MEM_PROPERTIES"/>
            <unused start="0x110B" end="0x110F" comment="Reserved for cl_mem_info"/>
        <enum value="0x1110"        name="CL_IMAGE_FORMAT"/>
        <enum value="0x1111"        name="CL_IMAGE_ELEMENT_SIZE"/>
        <enum value="0x1112"        name="CL_IMAGE_ROW_PITCH"/>
        <enum value="0x1113"        name="CL_IMAGE_SLICE_PITCH"/>
        <enum value="0x1114"        name="CL_IMAGE_WIDTH"/>
        <enum value="0x1115"        name="CL_IMAGE_HEIGHT"/>
        <enum value="0x1116"        name="CL_IMAGE_DEPTH"/>
        <enum value="0x1117"        name="CL_IMAGE_ARRAY_SIZE"/>
        <enum value="0x1118"        name="CL_IMAGE_BUFFER"/>
        <enum value="0x1119"        name="CL_IMAGE_NUM_MIP_LEVELS"/>
        <enum value="0x111A"        name="CL_IMAGE_NUM_SAMPLES"/>
            <unused start="0x111B" end="0x111F" comment="Reserved for cl_image_info"/>
        <enum value="0x1120"        name="CL_PIPE_PACKET_SIZE"/>
        <enum value="0x1121"        name="CL_PIPE_MAX_PACKETS"/>
        <enum value="0x1122"        name="CL_PIPE_PROPERTIES"/>
            <unused start="0x1123" end="0x112F" comment="Reserved for cl_pipe_info"/>
        <enum value="0x1130"        name="CL_ADDRESS_NONE"/>
        <enum value="0x1131"        name="CL_ADDRESS_CLAMP_TO_EDGE"/>
        <enum value="0x1132"        name="CL_ADDRESS_CLAMP"/>
        <enum value="0x1133"        name="CL_ADDRESS_REPEAT"/>
        <enum value="0x1134"        name="CL_ADDRESS_MIRRORED_REPEAT"/>
            <unused start="0x1135" end="0x113F" comment="Reserved for cl_addressing_mode"/>
        <enum value="0x1140"        name="CL_FILTER_NEAREST"/>
        <enum value="0x1141"        name="CL_FILTER_LINEAR"/>
            <unused start="0x1142" end="0x114F" comment="Reserved for cl_filter_mode"/>
        <enum value="0x1150"        name="CL_SAMPLER_REFERENCE_COUNT"/>
        <enum value="0x1151"        name="CL_SAMPLER_CONTEXT"/>
        <enum value="0x1152"        name="CL_SAMPLER_NORMALIZED_COORDS"/>
        <enum value="0x1153"        name="CL_SAMPLER_ADDRESSING_MODE"/>
        <enum value="0x1154"        name="CL_SAMPLER_FILTER_MODE"/>
        <enum value="0x1155"        name="CL_SAMPLER_MIP_FILTER_MODE"/>
        <enum value="0x1155"        name="CL_SAMPLER_MIP_FILTER_MODE_KHR"/>
        <enum value="0x1156"        name="CL_SAMPLER_LOD_MIN"/>
        <enum value="0x1156"        name="CL_SAMPLER_LOD_MIN_KHR"/>
        <enum value="0x1157"        name="CL_SAMPLER_LOD_MAX"/>
        <enum value="0x1157"        name="CL_SAMPLER_LOD_MAX_KHR"/>
        <enum value="0x1158"        name="CL_SAMPLER_PROPERTIES"/>
            <unused start="0x1159" end="0x115F" comment="Reserved for cl_sampler_info"/>
        <enum value="0x1160"        name="CL_PROGRAM_REFERENCE_COUNT"/>
        <enum value="0x1161"        name="CL_PROGRAM_CONTEXT"/>
        <enum value="0x1162"        name="CL_PROGRAM_NUM_DEVICES"/>
        <enum value="0x1163"        name="CL_PROGRAM_DEVICES"/>
        <enum value="0x1164"        name="CL_PROGRAM_SOURCE"/>
        <enum value="0x1165"        name="CL_PROGRAM_BINARY_SIZES"/>
        <enum value="0x1166"        name="CL_PROGRAM_BINARIES"/>
        <enum value="0x1167"        name="CL_PROGRAM_NUM_KERNELS"/>
        <enum value="0x1168"        name="CL_PROGRAM_KERNEL_NAMES"/>
        <enum value="0x1169"        name="CL_PROGRAM_IL"/>
        <enum value="0x1169"        name="CL_PROGRAM_IL_KHR"/>
        <enum value="0x116A"        name="CL_PROGRAM_SCOPE_GLOBAL_CTORS_PRESENT"/>
        <enum value="0x116B"        name="CL_PROGRAM_SCOPE_GLOBAL_DTORS_PRESENT"/>
            <unused start="0x116C" end="0x117F" comment="Reserved for cl_program_info"/>
            <unused start="0x1180" comment="Reserved for cl_program_build_info"/>
        <enum value="0x1181"        name="CL_PROGRAM_BUILD_STATUS"/>
        <enum value="0x1182"        name="CL_PROGRAM_BUILD_OPTIONS"/>
        <enum value="0x1183"        name="CL_PROGRAM_BUILD_LOG"/>
        <enum value="0x1184"        name="CL_PROGRAM_BINARY_TYPE"/>
        <enum value="0x1185"        name="CL_PROGRAM_BUILD_GLOBAL_VARIABLE_TOTAL_SIZE"/>
            <unused start="0x1186" end="0x118F" comment="Reserved for cl_program_build_info"/>
        <enum value="0x1190"        name="CL_KERNEL_FUNCTION_NAME"/>
        <enum value="0x1191"        name="CL_KERNEL_NUM_ARGS"/>
        <enum value="0x1192"        name="CL_KERNEL_REFERENCE_COUNT"/>
        <enum value="0x1193"        name="CL_KERNEL_CONTEXT"/>
        <enum value="0x1194"        name="CL_KERNEL_PROGRAM"/>
        <enum value="0x1195"        name="CL_KERNEL_ATTRIBUTES"/>
        <enum value="0x1196"        name="CL_KERNEL_ARG_ADDRESS_QUALIFIER"/>
        <enum value="0x1197"        name="CL_KERNEL_ARG_ACCESS_QUALIFIER"/>
        <enum value="0x1198"        name="CL_KERNEL_ARG_TYPE_NAME"/>
        <enum value="0x1199"        name="CL_KERNEL_ARG_TYPE_QUALIFIER"/>
        <enum value="0x119A"        name="CL_KERNEL_ARG_NAME"/>
        <enum value="0x119B"        name="CL_KERNEL_ARG_ADDRESS_GLOBAL"/>
        <enum value="0x119C"        name="CL_KERNEL_ARG_ADDRESS_LOCAL"/>
        <enum value="0x119D"        name="CL_KERNEL_ARG_ADDRESS_CONSTANT"/>
        <enum value="0x119E"        name="CL_KERNEL_ARG_ADDRESS_PRIVATE"/>
            <unused start="0x119F" comment="Reserved for cl_kernel_arg_address_qualifier"/>
        <enum value="0x11A0"        name="CL_KERNEL_ARG_ACCESS_READ_ONLY"/>
        <enum value="0x11A1"        name="CL_KERNEL_ARG_ACCESS_WRITE_ONLY"/>
        <enum value="0x11A2"        name="CL_KERNEL_ARG_ACCESS_READ_WRITE"/>
        <enum value="0x11A3"        name="CL_KERNEL_ARG_ACCESS_NONE"/>
            <unused start="0x11A4" end="0x11AF" comment="Reserved for cl_kernel_arg_access_qualifier"/>
        <enum value="0x11B0"        name="CL_KERNEL_WORK_GROUP_SIZE"/>
        <enum value="0x11B1"        name="CL_KERNEL_COMPILE_WORK_GROUP_SIZE"/>
        <enum value="0x11B2"        name="CL_KERNEL_LOCAL_MEM_SIZE"/>
        <enum value="0x11B3"        name="CL_KERNEL_PREFERRED_WORK_GROUP_SIZE_MULTIPLE"/>
        <enum value="0x11B4"        name="CL_KERNEL_PRIVATE_MEM_SIZE"/>
        <enum value="0x11B5"        name="CL_KERNEL_GLOBAL_WORK_SIZE"/>
        <enum value="0x11B6"        name="CL_KERNEL_EXEC_INFO_SVM_PTRS"/>
        <enum value="0x11B7"        name="CL_KERNEL_EXEC_INFO_SVM_FINE_GRAIN_SYSTEM"/>
        <enum value="0x11B8"        name="CL_KERNEL_LOCAL_SIZE_FOR_SUB_GROUP_COUNT"/>
        <enum value="0x11B9"        name="CL_KERNEL_MAX_NUM_SUB_GROUPS"/>
        <enum value="0x11BA"        name="CL_KERNEL_COMPILE_NUM_SUB_GROUPS"/>
            <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"/>
        <enum value="0x11D0"        name="CL_EVENT_COMMAND_QUEUE"/>
        <enum value="0x11D1"        name="CL_EVENT_COMMAND_TYPE"/>
        <enum value="0x11D2"        name="CL_EVENT_REFERENCE_COUNT"/>
        <enum value="0x11D3"        name="CL_EVENT_COMMAND_EXECUTION_STATUS"/>
        <enum value="0x11D4"        name="CL_EVENT_CONTEXT"/>
            <unused start="0x11D5" end="0x11EF" comment="Reserved for cl_event_info"/>
        <enum value="0x11F0"        name="CL_COMMAND_NDRANGE_KERNEL"/>
        <enum value="0x11F1"        name="CL_COMMAND_TASK"/>
        <enum value="0x11F2"        name="CL_COMMAND_NATIVE_KERNEL"/>
        <enum value="0x11F3"        name="CL_COMMAND_READ_BUFFER"/>
        <enum value="0x11F4"        name="CL_COMMAND_WRITE_BUFFER"/>
        <enum value="0x11F5"        name="CL_COMMAND_COPY_BUFFER"/>
        <enum value="0x11F6"        name="CL_COMMAND_READ_IMAGE"/>
        <enum value="0x11F7"        name="CL_COMMAND_WRITE_IMAGE"/>
        <enum value="0x11F8"        name="CL_COMMAND_COPY_IMAGE"/>
        <enum value="0x11F9"        name="CL_COMMAND_COPY_IMAGE_TO_BUFFER"/>
        <enum value="0x11FA"        name="CL_COMMAND_COPY_BUFFER_TO_IMAGE"/>
        <enum value="0x11FB"        name="CL_COMMAND_MAP_BUFFER"/>
        <enum value="0x11FC"        name="CL_COMMAND_MAP_IMAGE"/>
        <enum value="0x11FD"        name="CL_COMMAND_UNMAP_MEM_OBJECT"/>
        <enum value="0x11FE"        name="CL_COMMAND_MARKER"/>
        <enum value="0x11FF"        name="CL_COMMAND_ACQUIRE_GL_OBJECTS"/>
        <enum value="0x1200"        name="CL_COMMAND_RELEASE_GL_OBJECTS"/>
        <enum value="0x1201"        name="CL_COMMAND_READ_BUFFER_RECT"/>
        <enum value="0x1202"        name="CL_COMMAND_WRITE_BUFFER_RECT"/>
        <enum value="0x1203"        name="CL_COMMAND_COPY_BUFFER_RECT"/>
        <enum value="0x1204"        name="CL_COMMAND_USER"/>
        <enum value="0x1205"        name="CL_COMMAND_BARRIER"/>
        <enum value="0x1206"        name="CL_COMMAND_MIGRATE_MEM_OBJECTS"/>
        <enum value="0x1207"        name="CL_COMMAND_FILL_BUFFER"/>
        <enum value="0x1208"        name="CL_COMMAND_FILL_IMAGE"/>
        <enum value="0x1209"        name="CL_COMMAND_SVM_FREE"/>
        <enum value="0x120A"        name="CL_COMMAND_SVM_MEMCPY"/>
        <enum value="0x120B"        name="CL_COMMAND_SVM_MEMFILL"/>
        <enum value="0x120C"        name="CL_COMMAND_SVM_MAP"/>
        <enum value="0x120D"        name="CL_COMMAND_SVM_UNMAP"/>
        <enum value="0x120E"        name="CL_COMMAND_SVM_MIGRATE_MEM"/>
            <unused start="0x120F" end="0x121F" comment="Reserved for cl_command_types"/>
        <enum value="0x1220"        name="CL_BUFFER_CREATE_TYPE_REGION"/>
            <unused start="0x1221" end="0x127F" comment="Reserved for cl_buffer_create_type"/>
        <enum value="0x1280"        name="CL_PROFILING_COMMAND_QUEUED"/>
        <enum value="0x1281"        name="CL_PROFILING_COMMAND_SUBMIT"/>
        <enum value="0x1282"        name="CL_PROFILING_COMMAND_START"/>
        <enum value="0x1283"        name="CL_PROFILING_COMMAND_END"/>
        <enum value="0x1284"        name="CL_PROFILING_COMMAND_COMPLETE"/>
            <unused start="0x1285" end="0x128F" comment="Reserved for cl_profiling_info"/>
            <unused start="0x1290" end="0x1292" comment="Reserved for MR179"/>
            <unused start="0x1293" end="0x1FFF" comment="Reserved for core API tokens"/>
    </enums>

    <enums start="0x2000" end="0x201F" name="enums.2000" vendor="Khronos" comment="Reserved for interop with other APIs">
        <enum value="0x2000"        name="CL_GL_OBJECT_BUFFER"/>
        <enum value="0x2001"        name="CL_GL_OBJECT_TEXTURE2D"/>
        <enum value="0x2002"        name="CL_GL_OBJECT_TEXTURE3D"/>
        <enum value="0x2003"        name="CL_GL_OBJECT_RENDERBUFFER"/>
        <enum value="0x2004"        name="CL_GL_TEXTURE_TARGET"/>
        <enum value="0x2005"        name="CL_GL_MIPMAP_LEVEL"/>
        <enum value="0x2006"        name="CL_CURRENT_DEVICE_FOR_GL_CONTEXT_KHR"/>
        <enum value="0x2007"        name="CL_DEVICES_FOR_GL_CONTEXT_KHR"/>
        <enum value="0x2008"        name="CL_GL_CONTEXT_KHR"/>
        <enum value="0x2009"        name="CL_EGL_DISPLAY_KHR"/>
        <enum value="0x200A"        name="CL_GLX_DISPLAY_KHR"/>
        <enum value="0x200B"        name="CL_WGL_HDC_KHR"/>
        <enum value="0x200C"        name="CL_CGL_SHAREGROUP_KHR"/>
        <enum value="0x200D"        name="CL_COMMAND_GL_FENCE_SYNC_OBJECT_KHR"/>
        <enum value="0x200E"        name="CL_GL_OBJECT_TEXTURE2D_ARRAY"/>
        <enum value="0x200F"        name="CL_GL_OBJECT_TEXTURE1D"/>
        <enum value="0x2010"        name="CL_GL_OBJECT_TEXTURE1D_ARRAY"/>
        <enum value="0x2011"        name="CL_GL_OBJECT_TEXTURE_BUFFER"/>
        <enum value="0x2012"        name="CL_GL_NUM_SAMPLES"/>
            <unused start="0x2013" end="0x201F" comment="Reserved for OpenGL interop"/>
        <enum value="0x2020"        name="CL_ADAPTER_D3D9_KHR"/>
        <enum value="0x2021"        name="CL_ADAPTER_D3D9EX_KHR"/>
        <enum value="0x2022"        name="CL_ADAPTER_DXVA_KHR"/>
        <enum value="0x2023"        name="CL_PREFERRED_DEVICES_FOR_DX9_MEDIA_ADAPTER_KHR"/>
        <enum value="0x2024"        name="CL_ALL_DEVICES_FOR_DX9_MEDIA_ADAPTER_KHR"/>
        <enum value="0x2025"        name="CL_CONTEXT_ADAPTER_D3D9_KHR"/>
        <enum value="0x2026"        name="CL_CONTEXT_ADAPTER_D3D9EX_KHR"/>
        <enum value="0x2027"        name="CL_CONTEXT_ADAPTER_DXVA_KHR"/>
        <enum value="0x2028"        name="CL_MEM_DX9_MEDIA_ADAPTER_TYPE_KHR"/>
        <enum value="0x2029"        name="CL_MEM_DX9_MEDIA_SURFACE_INFO_KHR"/>
        <enum value="0x202A"        name="CL_IMAGE_DX9_MEDIA_PLANE_KHR"/>
        <enum value="0x202B"        name="CL_COMMAND_ACQUIRE_DX9_MEDIA_SURFACES_KHR"/>
        <enum value="0x202C"        name="CL_COMMAND_RELEASE_DX9_MEDIA_SURFACES_KHR"/>
        <enum value="0x202D"        name="CL_COMMAND_ACQUIRE_EGL_OBJECTS_KHR"/>
        <enum value="0x202E"        name="CL_COMMAND_RELEASE_EGL_OBJECTS_KHR"/>
        <enum value="0x202F"        name="CL_COMMAND_EGL_FENCE_SYNC_OBJECT_KHR"/>
        <enum value="0x2030"        name="CL_CONTEXT_MEMORY_INITIALIZE_KHR"/>
        <enum value="0x2031"        name="CL_DEVICE_TERMINATE_CAPABILITY_KHR"/>
        <enum value="0x2032"        name="CL_CONTEXT_TERMINATE_KHR"/>
        <enum value="0x2033"        name="CL_KERNEL_MAX_SUB_GROUP_SIZE_FOR_NDRANGE"/>
        <enum value="0x2033"        name="CL_KERNEL_MAX_SUB_GROUP_SIZE_FOR_NDRANGE_KHR"/>
        <enum value="0x2034"        name="CL_KERNEL_SUB_GROUP_COUNT_FOR_NDRANGE"/>
        <enum value="0x2034"        name="CL_KERNEL_SUB_GROUP_COUNT_FOR_NDRANGE_KHR"/>
        <enum value="0x2035"        name="CL_DEVICE_MAX_NAMED_BARRIER_COUNT_KHR"/>
            <unused start="0x2036" end="0x2FFF" comment="Reserved to Khronos for interop"/>
    </enums>

    <enums start="0x3000" end="0x3FFF" name="enums.3000" vendor="Khronos" comment="Platform IDs. Allocate individually.">
            <unused start="0x3000"/>
        <!-- unused <enum value="0x3001" name="CL_PLATFORM_NVIDIA" comment="Allocated to NVIDIA per clamb@nvidia.com 2009/05/26"/> -->
            <unused start="0x3002" end="0x3FFF"/>
    </enums>

    <enums start="0x4000" end="0x400F" name="enums.4000" vendor="NVIDIA" comment="Per Bug 5673">
        <enum value="0x4000"        name="CL_DEVICE_COMPUTE_CAPABILITY_MAJOR_NV"/>
        <enum value="0x4001"        name="CL_DEVICE_COMPUTE_CAPABILITY_MINOR_NV"/>
        <enum value="0x4002"        name="CL_DEVICE_REGISTERS_PER_BLOCK_NV"/>
        <enum value="0x4003"        name="CL_DEVICE_WARP_SIZE_NV"/>
        <enum value="0x4004"        name="CL_DEVICE_GPU_OVERLAP_NV"/>
        <enum value="0x4005"        name="CL_DEVICE_KERNEL_EXEC_TIMEOUT_NV"/>
        <enum value="0x4006"        name="CL_DEVICE_INTEGRATED_MEMORY_NV"/>
            <unused start="0x4007" end="0x400F"/>
    </enums>

    <enums start="0x4010" end="0x402F" name="enums.4010" vendor="NVIDIA" comment="Per Bug 5782">
        <enum value="0x4010"        name="CL_D3D10_DEVICE_KHR"/>
        <enum value="0x4011"        name="CL_D3D10_DXGI_ADAPTER_KHR"/>
        <enum value="0x4012"        name="CL_PREFERRED_DEVICES_FOR_D3D10_KHR"/>
        <enum value="0x4013"        name="CL_ALL_DEVICES_FOR_D3D10_KHR"/>
        <enum value="0x4014"        name="CL_CONTEXT_D3D10_DEVICE_KHR"/>
        <enum value="0x4015"        name="CL_MEM_D3D10_RESOURCE_KHR"/>
        <enum value="0x4016"        name="CL_IMAGE_D3D10_SUBRESOURCE_KHR"/>
        <enum value="0x4017"        name="CL_COMMAND_ACQUIRE_D3D10_OBJECTS_KHR"/>
        <enum value="0x4018"        name="CL_COMMAND_RELEASE_D3D10_OBJECTS_KHR"/>
        <!-- unused <enum value="0x4010"      name="CL_D3D10_DEVICE_NV"/> -->
        <!-- unused <enum value="0x4011"      name="CL_D3D10_DXGI_ADAPTER_NV"/> -->
        <!-- unused <enum value="0x4012"      name="CL_PREFERRED_DEVICES_FOR_D3D10_NV"/> -->
        <!-- unused <enum value="0x4013"      name="CL_ALL_DEVICES_FOR_D3D10_NV"/> -->
        <!-- unused <enum value="0x4014"      name="CL_CONTEXT_D3D10_DEVICE_NV"/> -->
        <!-- unused <enum value="0x4015"      name="CL_MEM_D3D10_RESOURCE_NV"/> -->
        <!-- unused <enum value="0x4016"      name="CL_IMAGE_D3D10_SUBRESOURCE_NV"/> -->
        <!-- unused <enum value="0x4017"      name="CL_COMMAND_ACQUIRE_D3D10_OBJECTS_NV"/> -->
        <!-- unused <enum value="0x4018"      name="CL_COMMAND_RELEASE_D3D10_OBJECTS_NV"/> -->
        <enum value="0x4019"        name="CL_D3D11_DEVICE_KHR"/>
        <enum value="0x401A"        name="CL_D3D11_DXGI_ADAPTER_KHR"/>
        <enum value="0x401B"        name="CL_PREFERRED_DEVICES_FOR_D3D11_KHR"/>
        <enum value="0x401C"        name="CL_ALL_DEVICES_FOR_D3D11_KHR"/>
        <enum value="0x401D"        name="CL_CONTEXT_D3D11_DEVICE_KHR"/>
        <enum value="0x401E"        name="CL_MEM_D3D11_RESOURCE_KHR"/>
        <enum value="0x401F"        name="CL_IMAGE_D3D11_SUBRESOURCE_KHR"/>
        <enum value="0x4020"        name="CL_COMMAND_ACQUIRE_D3D11_OBJECTS_KHR"/>
        <enum value="0x4021"        name="CL_COMMAND_RELEASE_D3D11_OBJECTS_KHR"/>
        <!-- unused <enum value="0x4019"      name="CL_D3D11_DEVICE_NV"/> -->
        <!-- unused <enum value="0x401A"      name="CL_D3D11_DXGI_ADAPTER_NV"/> -->
        <!-- unused <enum value="0x401B"      name="CL_PREFERRED_DEVICES_FOR_D3D11_NV"/> -->
        <!-- unused <enum value="0x401C"      name="CL_ALL_DEVICES_FOR_D3D11_NV"/> -->
        <!-- unused <enum value="0x401D"      name="CL_CONTEXT_D3D11_DEVICE_NV"/> -->
        <!-- unused <enum value="0x401E"      name="CL_MEM_D3D11_RESOURCE_NV"/> -->
        <!-- unused <enum value="0x401F"      name="CL_IMAGE_D3D11_SUBRESOURCE_NV"/> -->
        <!-- unused <enum value="0x4020"      name="CL_COMMAND_ACQUIRE_D3D11_OBJECTS_NV"/> -->
        <!-- unused <enum value="0x4021"      name="CL_COMMAND_RELEASE_D3D11_OBJECTS_NV"/> -->
        <enum value="0x4022"        name="CL_D3D9_DEVICE_INTEL"/>
        <enum value="0x4024"        name="CL_PREFERRED_DEVICES_FOR_DX9_INTEL"/>
        <enum value="0x4025"        name="CL_ALL_DEVICES_FOR_DX9_INTEL"/>
        <enum value="0x4026"        name="CL_CONTEXT_D3D9_DEVICE_INTEL"/>
        <enum value="0x4027"        name="CL_MEM_DX9_RESOURCE_INTEL"/>
        <enum value="0x402A"        name="CL_COMMAND_ACQUIRE_DX9_OBJECTS_INTEL"/>
        <enum value="0x402B"        name="CL_COMMAND_RELEASE_DX9_OBJECTS_INTEL"/>
        <!-- unused <enum value="0x4022"      name="CL_D3D9_DEVICE_NV"/> -->
        <!-- unused <enum value="0x4023"      name="CL_D3D9_ADAPTER_NAME_NV"/> -->
        <!-- unused <enum value="0x4024"      name="CL_PREFERRED_DEVICES_FOR_D3D9_NV"/> -->
        <!-- unused <enum value="0x4025"      name="CL_ALL_DEVICES_FOR_D3D9_NV"/> -->
        <!-- unused <enum value="0x4026"      name="CL_CONTEXT_D3D9_DEVICE_NV"/> -->
        <!-- unused <enum value="0x4027"      name="CL_MEM_D3D9_RESOURCE_NV"/> -->
        <!-- unused <enum value="0x4028"      name="CL_IMAGE_D3D9_FACE_NV"/> -->
        <!-- unused <enum value="0x4029"      name="CL_IMAGE_D3D9_LEVEL_NV"/> -->
        <enum value="0x402A"        name="CL_COMMAND_ACQUIRE_D3D9_OBJECTS_INTEL"/>
        <!-- unused <enum value="0x402A"      name="CL_COMMAND_ACQUIRE_D3D9_OBJECTS_NV"/> -->
        <enum value="0x402B"        name="CL_COMMAND_RELEASE_D3D9_OBJECTS_INTEL"/>
        <!-- unused <enum value="0x402B"      name="CL_COMMAND_RELEASE_D3D9_OBJECTS_NV"/> -->
        <enum value="0x402C"        name="CL_CONTEXT_D3D10_PREFER_SHARED_RESOURCES_KHR"/>
        <enum value="0x402D"        name="CL_CONTEXT_D3D11_PREFER_SHARED_RESOURCES_KHR"/>
            <unused start="0x402D" end="0x402F"/>
    </enums>

    <enums start="0x4030" end="0x403F" name="enums.4030" vendor="AMD" comment="Per Bug 6075">
            <!-- 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. -->
            <!-- To be named AMD atomic counters extension - see bug 6071/6075 -->
        <!-- <enum value="0x4030"      name="CL_DEVICE_PARENT_DEVICE_EXT"/> -->
        <!-- <enum value="0x4031"      name="CL_DEVICE_PARTITION_STYLE_EXT"/> -->
        <!-- <enum value="0x4032"      name="CL_DEVICE_MAX_ATOMIC_COUNTERS_EXT"/> -->
        <enum value="0x4030"        name="CL_DEVICE_PREFERRED_WORK_GROUP_SIZE_AMD"/>
        <enum value="0x4031"        name="CL_DEVICE_MAX_WORK_GROUP_SIZE_AMD"/>
            <unused start="0x4032" end="0x4032"/>
        <enum value="0x4033"        name="CL_DEVICE_PREFERRED_CONSTANT_BUFFER_SIZE_AMD"/>
        <enum value="0x4034"        name="CL_DEVICE_PCIE_ID_AMD"/>
            <unused start="0x4035" end="0x4035"/>
        <enum value="0x4036"        name="CL_DEVICE_PROFILING_TIMER_OFFSET_AMD"/>
        <enum value="0x4037"        name="CL_DEVICE_TOPOLOGY_AMD"/>
        <enum value="0x4038"        name="CL_DEVICE_BOARD_NAME_AMD"/>
        <enum value="0x4039"        name="CL_DEVICE_GLOBAL_FREE_MEMORY_AMD"/>
            <unused start="0x403A" end="0x403F"/>
    </enums>

    <enums start="0x4040" end="0x404F" name="enums.4040" vendor="AMD" comment="Per Bug 6261 (IBM), then Bug 13603 giving control to AMD">
        <enum value="0x4040"        name="CL_COMMAND_MIGRATE_MEM_OBJECT_EXT" comment="From cl_ext_migrate_memobject. Benign collision with the following enum."/>
        <enum value="0x4040"        name="CL_DEVICE_SIMD_PER_COMPUTE_UNIT_AMD"/>
        <enum value="0x4041"        name="CL_DEVICE_SIMD_WIDTH_AMD"/>
        <enum value="0x4042"        name="CL_DEVICE_SIMD_INSTRUCTION_WIDTH_AMD"/>
        <enum value="0x4043"        name="CL_DEVICE_WAVEFRONT_WIDTH_AMD"/>
        <enum value="0x4044"        name="CL_DEVICE_GLOBAL_MEM_CHANNELS_AMD"/>
        <enum value="0x4045"        name="CL_DEVICE_GLOBAL_MEM_CHANNEL_BANKS_AMD"/>
        <enum value="0x4046"        name="CL_DEVICE_GLOBAL_MEM_CHANNEL_BANK_WIDTH_AMD"/>
        <enum value="0x4047"        name="CL_DEVICE_LOCAL_MEM_SIZE_PER_COMPUTE_UNIT_AMD"/>
        <enum value="0x4048"        name="CL_DEVICE_LOCAL_MEM_BANKS_AMD"/>
        <enum value="0x4049"        name="CL_DEVICE_THREAD_TRACE_SUPPORTED_AMD"/>
        <enum value="0x404A"        name="CL_DEVICE_GFXIP_MAJOR_AMD"/>
        <enum value="0x404B"        name="CL_DEVICE_GFXIP_MINOR_AMD"/>
        <enum value="0x404C"        name="CL_DEVICE_AVAILABLE_ASYNC_QUEUES_AMD"/>
            <unused start="0x404D" end="0x404F"/>
    </enums>

    <enums start="0x4050" end="0x405F" name="enums.4050" vendor="Apple">
        <enum value="0x4050"        name="CL_DEVICE_PARTITION_EQUALLY_EXT"/>
        <enum value="0x4051"        name="CL_DEVICE_PARTITION_BY_COUNTS_EXT"/>
        <enum value="0x4052"        name="CL_DEVICE_PARTITION_BY_NAMES_EXT"/>
        <enum value="0x4052"        name="CL_DEVICE_PARTITION_BY_NAMES_INTEL"/>
        <enum value="0x4053"        name="CL_DEVICE_PARTITION_BY_AFFINITY_DOMAIN_EXT"/>
        <enum value="0x4054"        name="CL_DEVICE_PARENT_DEVICE_EXT"/>
        <enum value="0x4055"        name="CL_DEVICE_PARTITION_TYPES_EXT"/>
        <enum value="0x4056"        name="CL_DEVICE_AFFINITY_DOMAINS_EXT"/>
        <enum value="0x4057"        name="CL_DEVICE_REFERENCE_COUNT_EXT"/>
        <enum value="0x4058"        name="CL_DEVICE_PARTITION_STYLE_EXT"/>
            <unused start="0x4059" end="0x405F"/>
    </enums>

    <enums start="0x4060" end="0x406F" name="enums.4060" vendor="IBM" comment="Per Bug 6470">
            <unused start="0x4060" end="0x406F"/>
    </enums>

    <enums start="0x4070" end="0x407F" name="enums.4070" vendor="Intel" comment="Per Bug 7836">
        <enum value="0x4070"        name="CL_D3D9EX_DEVICE_INTEL"/>
        <enum value="0x4071"        name="CL_DXVA_DEVICE_INTEL"/>
        <enum value="0x4072"        name="CL_CONTEXT_D3D9EX_DEVICE_INTEL"/>
        <enum value="0x4073"        name="CL_CONTEXT_DXVA_DEVICE_INTEL"/>
        <enum value="0x4074"        name="CL_MEM_DX9_SHARED_HANDLE_INTEL"/>
        <enum value="0x4075"        name="CL_IMAGE_DX9_PLANE_INTEL"/>
        <enum value="0x4076"        name="CL_YUYV_INTEL"/>
        <enum value="0x4077"        name="CL_UYVY_INTEL"/>
        <enum value="0x4078"        name="CL_YVYU_INTEL"/>
        <enum value="0x4079"        name="CL_VYUY_INTEL"/>
            <unused start="0x407A" end="0x407D"/>
        <enum value="0x407E"        name="CL_DEVICE_ME_VERSION_INTEL"/>
            <unused start="0x407F"/>
    </enums>

    <enums start="0x4080" end="0x408F" name="enums.4080" vendor="AMD" comment="Per Bug 8211">
        <!-- unused <enum value="0x4080"      name="CL_COMMAND_WAIT_SIGNAL_AMD"/> -->
        <!-- unused <enum value="0x4081"      name="CL_COMMAND_WRITE_SIGNAL_AMD"/> -->
        <!-- unused <enum value="0x4082"      name="CL_COMMAND_MAKE_BUFFERS_RESIDENT_AMD"/> -->
            <unused start="0x4083" end="0x408F"/>
    </enums>

    <enums start="0x4090" end="0x409F" name="enums.4090" vendor="Intel" comment="Per kevin.smith@intel.com 2013/04/11">
        <enum value="0x4090"        name="CL_ACCELERATOR_DESCRIPTOR_INTEL"/>
        <enum value="0x4091"        name="CL_ACCELERATOR_REFERENCE_COUNT_INTEL"/>
        <enum value="0x4092"        name="CL_ACCELERATOR_CONTEXT_INTEL"/>
        <enum value="0x4093"        name="CL_ACCELERATOR_TYPE_INTEL"/>
        <enum value="0x4094"        name="CL_VA_API_DISPLAY_INTEL"/>
        <enum value="0x4095"        name="CL_PREFERRED_DEVICES_FOR_VA_API_INTEL"/>
        <enum value="0x4096"        name="CL_ALL_DEVICES_FOR_VA_API_INTEL"/>
        <enum value="0x4097"        name="CL_CONTEXT_VA_API_DISPLAY_INTEL"/>
        <enum value="0x4098"        name="CL_MEM_VA_API_MEDIA_SURFACE_INTEL"/>
        <enum value="0x4099"        name="CL_IMAGE_VA_API_PLANE_INTEL"/>
        <enum value="0x409A"        name="CL_COMMAND_ACQUIRE_VA_API_MEDIA_SURFACES_INTEL"/>
        <enum value="0x409B"        name="CL_COMMAND_RELEASE_VA_API_MEDIA_SURFACES_INTEL"/>
            <unused start="0x409C" end="0x409F"/>
    </enums>

    <enums start="0x40A0" end="0x40AF" name="enums.40A0" vendor="Qualcomm" comment="Per Bug 10214">
        <enum value="0x40A0"        name="CL_DEVICE_EXT_MEM_PADDING_IN_BYTES_QCOM"/>
        <enum value="0x40A1"        name="CL_DEVICE_PAGE_SIZE_QCOM"/>
        <enum value="0x40A2"        name="CL_IMAGE_ROW_ALIGNMENT_QCOM"/>
        <enum value="0x40A3"        name="CL_IMAGE_SLICE_ALIGNMENT_QCOM"/>
        <enum value="0x40A4"        name="CL_MEM_HOST_UNCACHED_QCOM"/>
        <enum value="0x40A5"        name="CL_MEM_HOST_WRITEBACK_QCOM"/>
        <enum value="0x40A6"        name="CL_MEM_HOST_WRITETHROUGH_QCOM"/>
        <enum value="0x40A7"        name="CL_MEM_HOST_WRITE_COMBINING_QCOM"/>
        <enum value="0x40A8"        name="CL_MEM_ION_HOST_PTR_QCOM"/>
        <enum value="0x40A9"        name="CL_MEM_HOST_IOCOHERENT_QCOM"/>
            <unused start="0x40AA" end="0x40AF"/>
    </enums>

    <enums start="0x40B0" end="0x40BF" name="enums.40B0" vendor="ARM" comment="Per Bug 10337">
        <enum value="0x40B0"        name="CL_PRINTF_CALLBACK_ARM"/>
        <enum value="0x40B1"        name="CL_PRINTF_BUFFERSIZE_ARM"/>
        <enum value="0x40B2"        name="CL_IMPORT_TYPE_ARM"/>
        <enum value="0x40B3"        name="CL_IMPORT_TYPE_HOST_ARM"/>
        <enum value="0x40B4"        name="CL_IMPORT_TYPE_DMA_BUF_ARM"/>
        <enum value="0x40B5"        name="CL_IMPORT_TYPE_PROTECTED_ARM"/>
        <enum value="0x40B6"        name="CL_DEVICE_SVM_CAPABILITIES_ARM"/>
        <enum value="0x40B7"        name="CL_MEM_USES_SVM_POINTER_ARM"/>
        <enum value="0x40B8"        name="CL_KERNEL_EXEC_INFO_SVM_PTRS_ARM"/>
        <enum value="0x40B9"        name="CL_KERNEL_EXEC_INFO_SVM_FINE_GRAIN_SYSTEM_ARM"/>
        <enum value="0x40BA"        name="CL_COMMAND_SVM_FREE_ARM"/>
        <enum value="0x40BB"        name="CL_COMMAND_SVM_MEMCPY_ARM"/>
        <enum value="0x40BC"        name="CL_COMMAND_SVM_MEMFILL_ARM"/>
        <enum value="0x40BD"        name="CL_COMMAND_SVM_MAP_ARM"/>
        <enum value="0x40BE"        name="CL_COMMAND_SVM_UNMAP_ARM"/>
        <enum value="0x40BF"        name="CL_DEVICE_COMPUTE_UNITS_BITFIELD_ARM"/>
    </enums>

    <enums start="0x40C0" end="0x40CF" name="enums.40C0" vendor="Qualcomm" comment="Per Bug 10726">
            <unused start="0x40C0" end="0x40C5"/>
        <enum value="0x40C6"        name="CL_MEM_ANDROID_NATIVE_BUFFER_HOST_PTR_QCOM"/>
            <unused start="0x40C7" end="0x40CF"/>
    </enums>

    <enums start="0x40D0" end="0x40DF" name="enums.40D0" vendor="IMG" comment="Per Bug 11287">
        <enum value="0x40D0"        name="CL_NV21"/>
        <enum value="0x40D0"        name="CL_NV21_IMG"/>
        <enum value="0x40D1"        name="CL_YV12"/>
        <enum value="0x40D1"        name="CL_YV12_IMG"/>
        <enum value="0x40D2"        name="CL_COMMAND_ACQUIRE_GRALLOC_OBJECTS_IMG"/>
        <enum value="0x40D3"        name="CL_COMMAND_RELEASE_GRALLOC_OBJECTS_IMG"/>
        <enum value="0x40D4"        name="CL_GRALLOC_RESOURCE_NOT_ACQUIRED_IMG"/>
        <enum value="0x40D5"        name="CL_INVALID_GRALLOC_OBJECT_IMG"/>
        <enum value="0x40D6"        name="CL_COMMAND_GENERATE_MIPMAP_IMG"/>
        <enum value="0x40D7"        name="CL_MEM_ALLOC_FLAGS_IMG"/>
        <enum value="0x40D8"        name="CL_RESERVED0_IMG"/>
        <enum value="0x40D9"        name="CL_RESERVED1_IMG"/>
        <enum value="0x40DA"        name="CL_RESERVED2_IMG"/>
            <unused start="0x40DB" end="0x40DF"/>
    </enums>

    <enums start="0x40E0" end="0x40EF" name="enums.40E0" vendor="Khronos SPIR WG" comment="Per Bugs 11309,11310">
        <enum value="0x40E0"        name="CL_DEVICE_SPIR_VERSIONS"/>
        <enum value="0x40E1"        name="CL_PROGRAM_BINARY_TYPE_INTERMEDIATE"/>
            <unused start="0x40E2" end="0x40EF"/>
    </enums>

    <enums start="0x40F0" end="0x40FF" name="enums.40F0" vendor="Altera" comment="Per Bug 11642">
        <!-- unused <enum value="0x40F0"      name="CL_CONTEXT_COMPILER_MODE_ALTERA"/> -->
        <!-- unused <enum value="0x40F1"      name="CL_CONTEXT_PROGRAM_EXE_LIBRARY_ROOT_ALTERA"/> -->
        <!-- unused <enum value="0x40F2"      name="CL_CONTEXT_OFFLINE_DEVICE_ALTERA"/> -->
        <!-- unused <enum value="0x40F3"      name="CL_DEVICE_CORE_TEMPERATURE_ALTERA"/> -->
            <unused start="0x40F4" end="0x40FF"/>
    </enums>

    <enums start="0x4100" end="0x410F" name="enums.4100" vendor="Intel" comment="Per bug 12258.">
            <unused start="0x4100" end="0x4103"/>
        <enum value="0x4104"        name="CL_DEVICE_SIMULTANEOUS_INTEROPS_INTEL"/>
        <enum value="0x4105"        name="CL_DEVICE_NUM_SIMULTANEOUS_INTEROPS_INTEL"/>
        <enum value="0x4106"        name="CL_CONTEXT_SHOW_DIAGNOSTICS_INTEL"/>
        <enum value="0x4107"        name="CL_EGL_YUV_PLANE_INTEL"/>
        <enum value="0x4108"        name="CL_DEVICE_SUB_GROUP_SIZES_INTEL"/>
        <enum value="0x4109"        name="CL_KERNEL_SPILL_MEM_SIZE_INTEL"/>
        <enum value="0x410A"        name="CL_KERNEL_COMPILE_SUB_GROUP_SIZE_INTEL"/>
        <enum value="0x410B"        name="CL_DEVICE_AVC_ME_VERSION_INTEL"/>
        <enum value="0x410C"        name="CL_DEVICE_AVC_ME_SUPPORTS_TEXTURE_SAMPLER_USE_INTEL"/>
        <enum value="0x410D"        name="CL_DEVICE_AVC_ME_SUPPORTS_PREEMPTION_INTEL"/>
        <enum value="0x410E"        name="CL_NV12_INTEL"/>
            <unused start="0x410F"/>
    </enums>

    <enums start="0x4110" end="0x411F" name="enums.4110" vendor="Qualcomm" comment="Per Bug 13929">
            <unused start="0x4110" end="0x411F"/>
    </enums>

    <enums start="0x4120" end="0x412F" name="enums.4120" vendor="AMD" comment="Per Bug 14890">
            <unused start="0x4120" end="0x412F"/>
    </enums>

    <enums start="0x4130" end="0x415F" name="enums.4130" vendor="Qualcomm" comment="Per Bugs 15602,15760">
            <unused start="0x4130" end="0x415F"/>
    </enums>

    <enums start="0x4160" end="0x416F" name="enums.4160" vendor="Intel" comment="Per bug 16049.">
            <unused start="0x4160" end="0x416F"/>
    </enums>

    <enums start="0x4170" end="0x417F" name="enums.4170" vendor="Intel" comment="Per bug 16067.">
            <unused start="0x4170" end="0x417D"/>
        <enum value="0x417E"        name="CL_DEVICE_PLANAR_YUV_MAX_WIDTH_INTEL"/>
        <enum value="0x417F"        name="CL_DEVICE_PLANAR_YUV_MAX_HEIGHT_INTEL"/>
    </enums>

    <enums start="0x4180" end="0x418F" name="enums.4180" vendor="Intel" comment="Per OpenCL-Registry #22">
            <unused start="0x4180" end="0x418A"/>
        <enum value="0x418B"        name="CL_DEVICE_QUEUE_FAMILY_PROPERTIES_INTEL"/>
        <enum value="0x418C"        name="CL_QUEUE_FAMILY_INTEL"/>
        <enum value="0x418D"        name="CL_QUEUE_INDEX_INTEL"/>
            <unused start="0x418E" end="0x418F"/>
    </enums>

    <enums start="0x4190" end="0x419F" name="enums.4190" vendor="Intel">
        <enum value="0x4190"        name="CL_DEVICE_HOST_MEM_CAPABILITIES_INTEL"/>
        <enum value="0x4191"        name="CL_DEVICE_DEVICE_MEM_CAPABILITIES_INTEL"/>
        <enum value="0x4192"        name="CL_DEVICE_SINGLE_DEVICE_SHARED_MEM_CAPABILITIES_INTEL"/>
        <enum value="0x4193"        name="CL_DEVICE_CROSS_DEVICE_SHARED_MEM_CAPABILITIES_INTEL"/>
        <enum value="0x4194"        name="CL_DEVICE_SHARED_SYSTEM_MEM_CAPABILITIES_INTEL"/>
        <enum value="0x4195"        name="CL_MEM_ALLOC_FLAGS_INTEL"/>
        <enum value="0x4196"        name="CL_MEM_TYPE_UNKNOWN_INTEL"/>
        <enum value="0x4197"        name="CL_MEM_TYPE_HOST_INTEL"/>
        <enum value="0x4198"        name="CL_MEM_TYPE_DEVICE_INTEL"/>
        <enum value="0x4199"        name="CL_MEM_TYPE_SHARED_INTEL"/>
        <enum value="0x419A"        name="CL_MEM_ALLOC_TYPE_INTEL"/>
        <enum value="0x419B"        name="CL_MEM_ALLOC_BASE_PTR_INTEL"/>
        <enum value="0x419C"        name="CL_MEM_ALLOC_SIZE_INTEL"/>
        <enum value="0x419D"        name="CL_MEM_ALLOC_DEVICE_INTEL"/>
            <unused start="0x419E" end="0x419F"/>
    </enums>

    <enums start="0x41A0" end="0x41DF" name="enums.41A0" vendor="Qualcomm">
            <unused start="0x41A0" end="0x41DF"/>
    </enums>

    <enums start="0x41E0" end="0x41FF" name="enums.41E0" vendor="Arm">
        <enum value="0x41E0"        name="CL_DEVICE_JOB_SLOTS_ARM"/>
        <enum value="0x41E1"        name="CL_QUEUE_JOB_SLOT_ARM"/>
        <enum value="0x41E2"        name="CL_IMPORT_TYPE_ANDROID_HARDWARE_BUFFER_ARM"/>
        <enum value="0x41E3"        name="CL_IMPORT_DMA_BUF_DATA_CONSISTENCY_WITH_HOST_ARM"/>
        <enum value="0x41E4"        name="CL_DEVICE_SCHEDULING_CONTROLS_CAPABILITIES_ARM"/>
        <enum value="0x41E5"        name="CL_KERNEL_EXEC_INFO_WORKGROUP_BATCH_SIZE_ARM"/>
        <enum value="0x41E6"        name="CL_KERNEL_EXEC_INFO_WORKGROUP_BATCH_SIZE_MODIFIER_ARM"/>
        <enum value="0x41E7"        name="CL_QUEUE_KERNEL_BATCHING_ARM"/>
            <unused start="0x41E8" end="0x41EA"/>
        <enum value="0x41EB"        name="CL_DEVICE_SUPPORTED_REGISTER_ALLOCATIONS_ARM"/>
        <enum value="0x41EC"        name="CL_QUEUE_DEFERRED_FLUSH_ARM"/>
        <enum value="0x41ED"        name="CL_EVENT_COMMAND_TERMINATION_REASON_ARM"/>
        <enum value="0x41EE"        name="CL_DEVICE_CONTROLLED_TERMINATION_CAPABILITIES_ARM"/>
        <enum value="0x41EF"        name="CL_IMPORT_ANDROID_HARDWARE_BUFFER_PLANE_INDEX_ARM"/>
        <enum value="0x41F0"        name="CL_IMPORT_ANDROID_HARDWARE_BUFFER_LAYER_INDEX_ARM"/>
            <unused start="0x41F1" end="0x41FF"/>
    </enums>

    <enums start="0x4200" end="0x420F" name="enums.4200" vendor="Intel">
        <enum value="0x4200"        name="CL_KERNEL_EXEC_INFO_INDIRECT_HOST_ACCESS_INTEL"/>
        <enum value="0x4201"        name="CL_KERNEL_EXEC_INFO_INDIRECT_DEVICE_ACCESS_INTEL"/>
        <enum value="0x4202"        name="CL_KERNEL_EXEC_INFO_INDIRECT_SHARED_ACCESS_INTEL"/>
        <enum value="0x4203"        name="CL_KERNEL_EXEC_INFO_USM_PTRS_INTEL"/>
        <enum value="0x4204"        name="CL_COMMAND_MEMFILL_INTEL"/>
        <enum value="0x4205"        name="CL_COMMAND_MEMCPY_INTEL"/>
        <enum value="0x4206"        name="CL_COMMAND_MIGRATEMEM_INTEL"/>
        <enum value="0x4207"        name="CL_COMMAND_MEMADVISE_INTEL"/>
            <unused start="0x4208" end="0x420F"/>
    </enums>

    <enums start="0x4210" end="0x421F" name="enums.4210" vendor="Intel" comment="Contact michael.kinsner@intel.com">
        <enum value="0x4210"        name="CL_KERNEL_ARG_HOST_ACCESSIBLE_PIPE_INTEL"/>
        <enum value="0x4211"        name="CL_DEVICE_MAX_HOST_READ_PIPES_INTEL"/>
        <enum value="0x4212"        name="CL_DEVICE_MAX_HOST_WRITE_PIPES_INTEL"/>
        <enum value="0x4213"        name="CL_MEM_CHANNEL_INTEL"/>
            <unused start="0x4214" end="0x421F"/>
    </enums>

    <enums start="0x4220" end="0x422F" name="enums.4220" vendor="IMG">
            <unused start="0x4220" end="0x422F"/>
    </enums>

    <enums start="0x4230" end="0x423F" name="enums.4230" comment="Reserved for EXT extensions">
        <enum value="0x4230"        name="CL_DEVICE_CXX_FOR_OPENCL_NUMERIC_VERSION_EXT"/>
            <unused start="0x4231" end="0x423F"/>
    </enums>

    <enums start="0x4240" end="0x424F" name="enums.4240" comment="Reserved for ICD Loader Layers">
        <enum value="0x4240"        name="CL_LAYER_API_VERSION"/>
            <unused start="0x4241" end="0x424F"/>
    </enums>

    <enums start="0x4250" end="0x4FFF" name="enums.4250" comment="Reserved for vendor extensions. Allocate in groups of 16.">
            <unused start="0x4250" end="0x4FFF"/>
    </enums>

    <enums start="0x10000" end="0x10FFF" name="enums.10000" vendor="Khronos" comment="Experimental range for internal development only. Do not allocate.">
        <!-- Khronos will never assign values in this range, and vendors
             should never ship using values in this range. It is intended
             purely for internal development. -->
            <unused start="0x10000" end="0x10FFF" comment="Reserved"/>
    </enums>

    <enums start="0x10000000" end="0x100000FF" name="enums.10000000" vendor="Apple" comment="Legacy assignment before current enum allocation policy">
            <unused start="0x10000000" end="0x100000FF"/>
    </enums>

    <!-- SECTION: CL command definitions. (TBD) -->
    <commands>
        <command suffix="CL_API_SUFFIX__VERSION_1_0">
            <proto><type>cl_int</type>                     <name>clGetDeviceIDsFromD3D10KHR</name></proto>
            <param><type>cl_platform_id</type>             <name>platform</name></param>
            <param><type>cl_d3d10_device_source_khr</type> <name>d3d_device_source</name></param>
            <param><type>void</type>*                      <name>d3d_object</name></param>
            <param><type>cl_d3d10_device_set_khr</type>    <name>d3d_device_set</name></param>
            <param><type>cl_uint</type>                    <name>num_entries</name></param>
            <param><type>cl_device_id</type>*              <name>devices</name></param>
            <param><type>cl_uint</type>*                   <name>num_devices</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_0">
            <proto><type>cl_mem</type>                     <name>clCreateFromD3D10BufferKHR</name></proto>
            <param><type>cl_context</type>                 <name>context</name></param>
            <param><type>cl_mem_flags</type>               <name>flags</name></param>
            <param><type>ID3D10Buffer</type>*              <name>resource</name></param>
            <param><type>cl_int</type>*                    <name>errcode_ret</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_0">
            <proto><type>cl_mem</type>                     <name>clCreateFromD3D10Texture2DKHR</name></proto>
            <param><type>cl_context</type>                 <name>context</name></param>
            <param><type>cl_mem_flags</type>               <name>flags</name></param>
            <param><type>ID3D10Texture2D</type>*           <name>resource</name></param>
            <param><type>UINT</type>                       <name>subresource</name></param>
            <param><type>cl_int</type>*                    <name>errcode_ret</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_0">
            <proto><type>cl_mem</type>                     <name>clCreateFromD3D10Texture3DKHR</name></proto>
            <param><type>cl_context</type>                 <name>context</name></param>
            <param><type>cl_mem_flags</type>               <name>flags</name></param>
            <param><type>ID3D10Texture3D</type>*           <name>resource</name></param>
            <param><type>UINT</type>                       <name>subresource</name></param>
            <param><type>cl_int</type>*                    <name>errcode_ret</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_0">
            <proto><type>cl_int</type>                     <name>clEnqueueAcquireD3D10ObjectsKHR</name></proto>
            <param><type>cl_command_queue</type>           <name>command_queue</name></param>
            <param><type>cl_uint</type>                    <name>num_objects</name></param>
            <param>const <type>cl_mem</type>*              <name>mem_objects</name></param>
            <param><type>cl_uint</type>                    <name>num_events_in_wait_list</name></param>
            <param>const <type>cl_event</type>*            <name>event_wait_list</name></param>
            <param><type>cl_event</type>*                  <name>event</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_0">
            <proto><type>cl_int</type>                     <name>clEnqueueReleaseD3D10ObjectsKHR</name></proto>
            <param><type>cl_command_queue</type>           <name>command_queue</name></param>
            <param><type>cl_uint</type>                    <name>num_objects</name></param>
            <param>const <type>cl_mem</type>*              <name>mem_objects</name></param>
            <param><type>cl_uint</type>                    <name>num_events_in_wait_list</name></param>
            <param>const <type>cl_event</type>*            <name>event_wait_list</name></param>
            <param><type>cl_event</type>*                  <name>event</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_2">
            <proto><type>cl_int</type>                     <name>clGetDeviceIDsFromD3D11KHR</name></proto>
            <param><type>cl_platform_id</type>             <name>platform</name></param>
            <param><type>cl_d3d11_device_source_khr</type> <name>d3d_device_source</name></param>
            <param><type>void</type>*                      <name>d3d_object</name></param>
            <param><type>cl_d3d11_device_set_khr</type>    <name>d3d_device_set</name></param>
            <param><type>cl_uint</type>                    <name>num_entries</name></param>
            <param><type>cl_device_id</type>*              <name>devices</name></param>
            <param><type>cl_uint</type>*                   <name>num_devices</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_2">
            <proto><type>cl_mem</type>                     <name>clCreateFromD3D11BufferKHR</name></proto>
            <param><type>cl_context</type>                 <name>context</name></param>
            <param><type>cl_mem_flags</type>               <name>flags</name></param>
            <param><type>ID3D11Buffer</type>*              <name>resource</name></param>
            <param><type>cl_int</type>*                    <name>errcode_ret</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_2">
            <proto><type>cl_mem</type>                     <name>clCreateFromD3D11Texture2DKHR</name></proto>
            <param><type>cl_context</type>                 <name>context</name></param>
            <param><type>cl_mem_flags</type>               <name>flags</name></param>
            <param><type>ID3D11Texture2D</type>*           <name>resource</name></param>
            <param><type>UINT</type>                       <name>subresource</name></param>
            <param><type>cl_int</type>*                    <name>errcode_ret</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_2">
            <proto><type>cl_mem</type>                     <name>clCreateFromD3D11Texture3DKHR</name></proto>
            <param><type>cl_context</type>                 <name>context</name></param>
            <param><type>cl_mem_flags</type>               <name>flags</name></param>
            <param><type>ID3D11Texture3D</type>*           <name>resource</name></param>
            <param><type>UINT</type>                       <name>subresource</name></param>
            <param><type>cl_int</type>*                    <name>errcode_ret</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_2">
            <proto><type>cl_int</type>                     <name>clEnqueueAcquireD3D11ObjectsKHR</name></proto>
            <param><type>cl_command_queue</type>           <name>command_queue</name></param>
            <param><type>cl_uint</type>                    <name>num_objects</name></param>
            <param>const <type>cl_mem</type>*              <name>mem_objects</name></param>
            <param><type>cl_uint</type>                    <name>num_events_in_wait_list</name></param>
            <param>const <type>cl_event</type>*            <name>event_wait_list</name></param>
            <param><type>cl_event</type>*                  <name>event</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_2">
            <proto><type>cl_int</type>                     <name>clEnqueueReleaseD3D11ObjectsKHR</name></proto>
            <param><type>cl_command_queue</type>           <name>command_queue</name></param>
            <param><type>cl_uint</type>                    <name>num_objects</name></param>
            <param>const <type>cl_mem</type>*              <name>mem_objects</name></param>
            <param><type>cl_uint</type>                    <name>num_events_in_wait_list</name></param>
            <param>const <type>cl_event</type>*            <name>event_wait_list</name></param>
            <param><type>cl_event</type>*                  <name>event</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_2">
            <proto><type>cl_int</type>                     <name>clGetDeviceIDsFromDX9MediaAdapterKHR</name></proto>
            <param><type>cl_platform_id</type>             <name>platform</name></param>
            <param><type>cl_uint</type>                    <name>num_media_adapters</name></param>
            <param><type>cl_dx9_media_adapter_type_khr</type>*  <name>media_adapter_type</name></param>
            <param><type>void</type>*                      <name>media_adapters</name></param>
            <param><type>cl_dx9_media_adapter_set_khr</type> <name>media_adapter_set</name></param>
            <param><type>cl_uint</type>                    <name>num_entries</name></param>
            <param><type>cl_device_id</type>*              <name>devices</name></param>
            <param><type>cl_uint</type>*                   <name>num_devices</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_2">
            <proto><type>cl_mem</type>                     <name>clCreateFromDX9MediaSurfaceKHR</name></proto>
            <param><type>cl_context</type>                 <name>context</name></param>
            <param><type>cl_mem_flags</type>               <name>flags</name></param>
            <param><type>cl_dx9_media_adapter_type_khr</type> <name>adapter_type</name></param>
            <param><type>void</type>*                      <name>surface_info</name></param>
            <param><type>cl_uint</type>                    <name>plane</name></param>
            <param><type>cl_int</type>*                    <name>errcode_ret</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_2">
            <proto><type>cl_int</type>                     <name>clEnqueueAcquireDX9MediaSurfacesKHR</name></proto>
            <param><type>cl_command_queue</type>           <name>command_queue</name></param>
            <param><type>cl_uint</type>                    <name>num_objects</name></param>
            <param>const <type>cl_mem</type>*              <name>mem_objects</name></param>
            <param><type>cl_uint</type>                    <name>num_events_in_wait_list</name></param>
            <param>const <type>cl_event</type>*            <name>event_wait_list</name></param>
            <param><type>cl_event</type>*                  <name>event</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_2">
            <proto><type>cl_int</type>                     <name>clEnqueueReleaseDX9MediaSurfacesKHR</name></proto>
            <param><type>cl_command_queue</type>           <name>command_queue</name></param>
            <param><type>cl_uint</type>                    <name>num_objects</name></param>
            <param>const <type>cl_mem</type>*              <name>mem_objects</name></param>
            <param><type>cl_uint</type>                    <name>num_events_in_wait_list</name></param>
            <param>const <type>cl_event</type>*            <name>event_wait_list</name></param>
            <param><type>cl_event</type>*                  <name>event</name></param>
        </command>
        <command suffix="CL_EXT_SUFFIX__VERSION_1_1">
            <proto><type>cl_int</type>                     <name>clGetDeviceIDsFromDX9INTEL</name></proto>
            <param><type>cl_platform_id</type>             <name>platform</name></param>
            <param><type>cl_dx9_device_source_intel</type> <name>dx9_device_source</name></param>
            <param><type>void</type>*                      <name>dx9_object</name></param>
            <param><type>cl_dx9_device_set_intel</type>    <name>dx9_device_set</name></param>
            <param><type>cl_uint</type>                    <name>num_entries</name></param>
            <param><type>cl_device_id</type>*              <name>devices</name></param>
            <param><type>cl_uint</type>*                   <name>num_devices</name></param>
        </command>
        <command suffix="CL_EXT_SUFFIX__VERSION_1_1">
            <proto><type>cl_mem</type>                     <name>clCreateFromDX9MediaSurfaceINTEL</name></proto>
            <param><type>cl_context</type>                 <name>context</name></param>
            <param><type>cl_mem_flags</type>               <name>flags</name></param>
            <param><type>IDirect3DSurface9</type>*         <name>resource</name></param>
            <param><type>HANDLE</type>                     <name>sharedHandle</name></param>
            <param><type>UINT</type>                       <name>plane</name></param>
            <param><type>cl_int</type>*                    <name>errcode_ret</name></param>
        </command>
        <command suffix="CL_EXT_SUFFIX__VERSION_1_1">
            <proto><type>cl_int</type>                     <name>clEnqueueAcquireDX9ObjectsINTEL</name></proto>
            <param><type>cl_command_queue</type>           <name>command_queue</name></param>
            <param><type>cl_uint</type>                    <name>num_objects</name></param>
            <param>const <type>cl_mem</type>*              <name>mem_objects</name></param>
            <param><type>cl_uint</type>                    <name>num_events_in_wait_list</name></param>
            <param>const <type>cl_event</type>*            <name>event_wait_list</name></param>
            <param><type>cl_event</type>*                  <name>event</name></param>
        </command>
        <command suffix="CL_EXT_SUFFIX__VERSION_1_1">
            <proto><type>cl_int</type>                     <name>clEnqueueReleaseDX9ObjectsINTEL</name></proto>
            <param><type>cl_command_queue</type>           <name>command_queue</name></param>
            <param><type>cl_uint</type>                    <name>num_objects</name></param>
            <param><type>cl_mem</type>*                    <name>mem_objects</name></param>
            <param><type>cl_uint</type>                    <name>num_events_in_wait_list</name></param>
            <param>const <type>cl_event</type>*            <name>event_wait_list</name></param>
            <param><type>cl_event</type>*                  <name>event</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_0">
            <proto><type>cl_event</type>                   <name>clCreateEventFromEGLSyncKHR</name></proto>
            <param><type>cl_context</type>                 <name>context</name></param>
            <param><type>CLeglSyncKHR</type>               <name>sync</name></param>
            <param><type>CLeglDisplayKHR</type>            <name>display</name></param>
            <param><type>cl_int</type>*                    <name>errcode_ret</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_0">
            <proto><type>cl_mem</type>                     <name>clCreateFromEGLImageKHR</name></proto>
            <param><type>cl_context</type>                 <name>context</name></param>
            <param><type>CLeglDisplayKHR</type>            <name>egldisplay</name></param>
            <param><type>CLeglImageKHR</type>              <name>eglimage</name></param>
            <param><type>cl_mem_flags</type>               <name>flags</name></param>
            <param>const <type>cl_egl_image_properties_khr</type>*  <name>properties</name></param>
            <param><type>cl_int</type>*                    <name>errcode_ret</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_0">
            <proto><type>cl_int</type>                     <name>clEnqueueAcquireEGLObjectsKHR</name></proto>
            <param><type>cl_command_queue</type>           <name>command_queue</name></param>
            <param><type>cl_uint</type>                    <name>num_objects</name></param>
            <param>const <type>cl_mem</type>*              <name>mem_objects</name></param>
            <param><type>cl_uint</type>                    <name>num_events_in_wait_list</name></param>
            <param>const <type>cl_event</type>*            <name>event_wait_list</name></param>
            <param><type>cl_event</type>*                  <name>event</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_0">
            <proto><type>cl_int</type>                     <name>clEnqueueReleaseEGLObjectsKHR</name></proto>
            <param><type>cl_command_queue</type>           <name>command_queue</name></param>
            <param><type>cl_uint</type>                    <name>num_objects</name></param>
            <param>const <type>cl_mem</type>*              <name>mem_objects</name></param>
            <param><type>cl_uint</type>                    <name>num_events_in_wait_list</name></param>
            <param>const <type>cl_event</type>*            <name>event_wait_list</name></param>
            <param><type>cl_event</type>*                  <name>event</name></param>
        </command>
        <command suffix="CL_EXT_SUFFIX__VERSION_1_0">
            <proto><type>void</type>                       <name>clLogMessagesToSystemLogAPPLE</name></proto>
            <param>const <type>char</type>*                <name>errstr</name></param>
            <param>const <type>void</type>*                <name>private_info</name></param>
            <param><type>size_t</type>                     <name>cb</name></param>
            <param><type>void</type>*                      <name>user_data</name></param>
        </command>
        <command suffix="CL_EXT_SUFFIX__VERSION_1_0">
            <proto><type>void</type>                       <name>clLogMessagesToStdoutAPPLE</name></proto>
            <param>const <type>char</type>*                <name>errstr</name></param>
            <param>const <type>void</type>*                <name>private_info</name></param>
            <param><type>size_t</type>                     <name>cb</name></param>
            <param><type>void</type>*                      <name>user_data</name></param>
        </command>
        <command suffix="CL_EXT_SUFFIX__VERSION_1_0">
            <proto><type>void</type>                       <name>clLogMessagesToStderrAPPLE</name></proto>
            <param>const <type>char</type>*                <name>errstr</name></param>
            <param>const <type>void</type>*                <name>private_info</name></param>
            <param><type>size_t</type>                     <name>cb</name></param>
            <param><type>void</type>*                      <name>user_data</name></param>
        </command>
        <command>
            <proto><type>cl_int</type>                     <name>clIcdGetPlatformIDsKHR</name></proto>
            <param><type>cl_uint</type>                    <name>num_entries</name></param>
            <param><type>cl_platform_id</type>*            <name>platforms</name></param>
            <param><type>cl_uint</type>*                   <name>num_platforms</name></param>
        </command>
        <command>
            <proto><type>cl_program</type>                 <name>clCreateProgramWithILKHR</name></proto>
            <param><type>cl_context</type>                 <name>context</name></param>
            <param>const <type>void</type>*                <name>il</name></param>
            <param><type>size_t</type>                     <name>length</name></param>
            <param><type>cl_int</type>*                    <name>errcode_ret</name></param>
        </command>
        <command suffix="CL_EXT_SUFFIX__VERSION_1_2">
            <proto><type>cl_int</type>                     <name>clTerminateContextKHR</name></proto>
            <param><type>cl_context</type>                 <name>context</name></param>
        </command>
        <command suffix="CL_EXT_SUFFIX__VERSION_1_2">
            <proto><type>cl_command_queue</type>           <name>clCreateCommandQueueWithPropertiesKHR</name></proto>
            <param><type>cl_context</type>                 <name>context</name></param>
            <param><type>cl_device_id</type>               <name>device</name></param>
            <param>const <type>cl_queue_properties_khr</type>* <name>properties</name></param>
            <param><type>cl_int</type>*                    <name>errcode_ret</name></param>
        </command>
        <command suffix="CL_EXT_SUFFIX__VERSION_1_1">
            <proto><type>cl_int</type>                     <name>clReleaseDeviceEXT</name></proto>
            <param><type>cl_device_id</type>               <name>device</name></param>
        </command>
        <command suffix="CL_EXT_SUFFIX__VERSION_1_1">
            <proto><type>cl_int</type>                     <name>clRetainDeviceEXT</name></proto>
            <param><type>cl_device_id</type>               <name>device</name></param>
        </command>
        <command suffix="CL_EXT_SUFFIX__VERSION_1_1">
            <proto><type>cl_int</type>                     <name>clCreateSubDevicesEXT</name></proto>
            <param><type>cl_device_id</type>               <name>in_device</name></param>
            <param>const <type>cl_device_partition_property_ext</type>*  <name>properties</name></param>
            <param><type>cl_uint</type>                    <name>num_entries</name></param>
            <param><type>cl_device_id</type>*              <name>out_devices</name></param>
            <param><type>cl_uint</type>*                   <name>num_devices</name></param>
        </command>
        <command>
            <proto><type>cl_int</type>                     <name>clEnqueueMigrateMemObjectEXT</name></proto>
            <param><type>cl_command_queue</type>           <name>command_queue</name></param>
            <param><type>cl_uint</type>                    <name>num_mem_objects</name></param>
            <param>const <type>cl_mem</type>*              <name>mem_objects</name></param>
            <param><type>cl_mem_migration_flags_ext</type> <name>flags</name></param>
            <param><type>cl_uint</type>                    <name>num_events_in_wait_list</name></param>
            <param>const <type>cl_event</type>*            <name>event_wait_list</name></param>
            <param><type>cl_event</type>*                  <name>event</name></param>
        </command>
        <command>
            <proto><type>cl_int</type>                     <name>clGetDeviceImageInfoQCOM</name></proto>
            <param><type>cl_device_id</type>               <name>device</name></param>
            <param><type>size_t</type>                     <name>image_width</name></param>
            <param><type>size_t</type>                     <name>image_height</name></param>
            <param>const <type>cl_image_format</type>*     <name>image_format</name></param>
            <param><type>cl_image_pitch_info_qcom</type>   <name>param_name</name></param>
            <param><type>size_t</type>                     <name>param_value_size</name></param>
            <param><type>void</type>*                      <name>param_value</name></param>
            <param><type>size_t</type>*                    <name>param_value_size_ret</name></param>
        </command>
        <command suffix="CL_EXT_SUFFIX__VERSION_1_2">
            <proto><type>cl_int</type>                     <name>clEnqueueAcquireGrallocObjectsIMG</name></proto>
            <param><type>cl_command_queue</type>           <name>command_queue</name></param>
            <param><type>cl_uint</type>                    <name>num_objects</name></param>
            <param>const <type>cl_mem</type>*              <name>mem_objects</name></param>
            <param><type>cl_uint</type>                    <name>num_events_in_wait_list</name></param>
            <param>const <type>cl_event</type>*            <name>event_wait_list</name></param>
            <param><type>cl_event</type>*                  <name>event</name></param>
        </command>
        <command suffix="CL_EXT_SUFFIX__VERSION_1_2">
            <proto><type>cl_int</type>                     <name>clEnqueueGenerateMipmapIMG</name></proto>
            <param><type>cl_command_queue</type>           <name>command_queue</name></param>
            <param><type>cl_mem</type>                     <name>src_image</name></param>
            <param><type>cl_mem</type>                     <name>dst_image</name></param>
            <param><type>cl_mipmap_filter_mode_img</type>  <name>mipmap_filter_mode</name></param>
            <param>const <type>size_t</type>*              <name>array_region</name></param>
            <param>const <type>size_t</type>*              <name>mip_region</name></param>
            <param><type>cl_uint</type>                    <name>num_events_in_wait_list</name></param>
            <param>const <type>cl_event</type>*            <name>event_wait_list</name></param>
            <param><type>cl_event</type>*                  <name>event</name></param>
        </command>
        <command suffix="CL_EXT_SUFFIX__VERSION_1_2">
            <proto><type>cl_int</type>                     <name>clEnqueueReleaseGrallocObjectsIMG</name></proto>
            <param><type>cl_command_queue</type>           <name>command_queue</name></param>
            <param><type>cl_uint</type>                    <name>num_objects</name></param>
            <param>const <type>cl_mem</type>*              <name>mem_objects</name></param>
            <param><type>cl_uint</type>                    <name>num_events_in_wait_list</name></param>
            <param>const <type>cl_event</type>*            <name>event_wait_list</name></param>
            <param><type>cl_event</type>*                  <name>event</name></param>
        </command>
        <command suffix="CL_EXT_SUFFIX__VERSION_2_0_DEPRECATED">
            <proto><type>cl_int</type>                     <name>clGetKernelSubGroupInfoKHR</name></proto>
            <param><type>cl_kernel</type>                  <name>in_kernel</name></param>
            <param><type>cl_device_id</type>               <name>in_device</name></param>
            <param><type>cl_kernel_sub_group_info</type>   <name>param_name</name></param>
            <param><type>size_t</type>                     <name>input_value_size</name></param>
            <param>const <type>void</type>*                <name>input_value</name></param>
            <param><type>size_t</type>                     <name>param_value_size</name></param>
            <param><type>void</type>*                      <name>param_value</name></param>
            <param><type>size_t</type>*                    <name>param_value_size_ret</name></param>
        </command>
        <command suffix="CL_EXT_SUFFIX__VERSION_1_0">
            <proto><type>cl_mem</type>                     <name>clImportMemoryARM</name></proto>
            <param><type>cl_context</type>                 <name>context</name></param>
            <param><type>cl_mem_flags</type>               <name>flags</name></param>
            <param>const <type>cl_import_properties_arm</type>* <name>properties</name></param>
            <param><type>void</type>*                      <name>memory</name></param>
            <param><type>size_t</type>                     <name>size</name></param>
            <param><type>cl_int</type>*                    <name>errcode_ret</name></param>
        </command>
        <command suffix="CL_EXT_SUFFIX__VERSION_1_2">
            <proto><type>void</type>*                      <name>clSVMAllocARM</name></proto>
            <param><type>cl_context</type>                 <name>context</name></param>
            <param><type>cl_svm_mem_flags_arm</type>       <name>flags</name></param>
            <param><type>size_t</type>                     <name>size</name></param>
            <param><type>cl_uint</type>                    <name>alignment</name></param>
        </command>
        <command suffix="CL_EXT_SUFFIX__VERSION_1_2">
            <proto><type>void</type>                       <name>clSVMFreeARM</name></proto>
            <param><type>cl_context</type>                 <name>context</name></param>
            <param><type>void</type>*                      <name>svm_pointer</name></param>
        </command>
        <command suffix="CL_EXT_SUFFIX__VERSION_1_2">
            <proto><type>cl_int</type>                     <name>clEnqueueSVMFreeARM</name></proto>
            <param><type>cl_command_queue</type>           <name>command_queue</name></param>
            <param><type>cl_uint</type>                    <name>num_svm_pointers</name></param>
            <param><type>void</type>*                      <name>svm_pointers</name>[]</param>
            <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>
            <param><type>void</type>*                      <name>user_data</name></param>
            <param><type>cl_uint</type>                    <name>num_events_in_wait_list</name></param>
            <param>const <type>cl_event</type>*            <name>event_wait_list</name></param>
            <param><type>cl_event</type>*                  <name>event</name></param>
        </command>
        <command suffix="CL_EXT_SUFFIX__VERSION_1_2">
            <proto><type>cl_int</type>                     <name>clEnqueueSVMMemcpyARM</name></proto>
            <param><type>cl_command_queue</type>           <name>command_queue</name></param>
            <param><type>cl_bool</type>                    <name>blocking_copy</name></param>
            <param><type>void</type>*                      <name>dst_ptr</name></param>
            <param>const <type>void</type>*                <name>src_ptr</name></param>
            <param><type>size_t</type>                     <name>size</name></param>
            <param><type>cl_uint</type>                    <name>num_events_in_wait_list</name></param>
            <param>const <type>cl_event</type>*            <name>event_wait_list</name></param>
            <param><type>cl_event</type>*                  <name>event</name></param>
        </command>
        <command suffix="CL_EXT_SUFFIX__VERSION_1_2">
            <proto><type>cl_int</type>                     <name>clEnqueueSVMMemFillARM</name></proto>
            <param><type>cl_command_queue</type>           <name>command_queue</name></param>
            <param><type>void</type>*                      <name>svm_ptr</name></param>
            <param>const <type>void</type>*                <name>pattern</name></param>
            <param><type>size_t</type>                     <name>pattern_size</name></param>
            <param><type>size_t</type>                     <name>size</name></param>
            <param><type>cl_uint</type>                    <name>num_events_in_wait_list</name></param>
            <param>const <type>cl_event</type>*            <name>event_wait_list</name></param>
            <param><type>cl_event</type>*                  <name>event</name></param>
        </command>
        <command suffix="CL_EXT_SUFFIX__VERSION_1_2">
            <proto><type>cl_int</type>                     <name>clEnqueueSVMMapARM</name></proto>
            <param><type>cl_command_queue</type>           <name>command_queue</name></param>
            <param><type>cl_bool</type>                    <name>blocking_map</name></param>
            <param><type>cl_map_flags</type>               <name>flags</name></param>
            <param><type>void</type>*                      <name>svm_ptr</name></param>
            <param><type>size_t</type>                     <name>size</name></param>
            <param><type>cl_uint</type>                    <name>num_events_in_wait_list</name></param>
            <param>const <type>cl_event</type>*            <name>event_wait_list</name></param>
            <param><type>cl_event</type>*                  <name>event</name></param>
        </command>
        <command suffix="CL_EXT_SUFFIX__VERSION_1_2">
            <proto><type>cl_int</type>                     <name>clEnqueueSVMUnmapARM</name></proto>
            <param><type>cl_command_queue</type>           <name>command_queue</name></param>
            <param><type>void</type>*                      <name>svm_ptr</name></param>
            <param><type>cl_uint</type>                    <name>num_events_in_wait_list</name></param>
            <param>const <type>cl_event</type>*            <name>event_wait_list</name></param>
            <param><type>cl_event</type>*                  <name>event</name></param>
        </command>
        <command suffix="CL_EXT_SUFFIX__VERSION_1_2">
            <proto><type>cl_int</type>                     <name>clSetKernelArgSVMPointerARM</name></proto>
            <param><type>cl_kernel</type>                  <name>kernel</name></param>
            <param><type>cl_uint</type>                    <name>arg_index</name></param>
            <param>const <type>void</type>*                <name>arg_value</name></param>
        </command>
        <command suffix="CL_EXT_SUFFIX__VERSION_1_2">
            <proto><type>cl_int</type>                     <name>clSetKernelExecInfoARM</name></proto>
            <param><type>cl_kernel</type>                  <name>kernel</name></param>
            <param><type>cl_kernel_exec_info_arm</type>    <name>param_name</name></param>
            <param><type>size_t</type>                     <name>param_value_size</name></param>
            <param>const <type>void</type>*                <name>param_value</name></param>
        </command>
        <command suffix="CL_EXT_SUFFIX__VERSION_1_2">
            <proto><type>cl_accelerator_intel</type>       <name>clCreateAcceleratorINTEL</name></proto>
            <param><type>cl_context</type>                 <name>context</name></param>
            <param><type>cl_accelerator_type_intel</type>  <name>accelerator_type</name></param>
            <param><type>size_t</type>                     <name>descriptor_size</name></param>
            <param>const <type>void</type>*                <name>descriptor</name></param>
            <param><type>cl_int</type>*                    <name>errcode_ret</name></param>
        </command>
        <command suffix="CL_EXT_SUFFIX__VERSION_1_2">
            <proto><type>cl_int</type>                     <name>clGetAcceleratorInfoINTEL</name></proto>
            <param><type>cl_accelerator_intel</type>       <name>accelerator</name></param>
            <param><type>cl_accelerator_info_intel</type>  <name>param_name</name></param>
            <param><type>size_t</type>                     <name>param_value_size</name></param>
            <param><type>void</type>*                      <name>param_value</name></param>
            <param><type>size_t</type>*                    <name>param_value_size_ret</name></param>
        </command>
        <command suffix="CL_EXT_SUFFIX__VERSION_1_2">
            <proto><type>cl_int</type>                     <name>clRetainAcceleratorINTEL</name></proto>
            <param><type>cl_accelerator_intel</type>       <name>accelerator</name></param>
        </command>
        <command suffix="CL_EXT_SUFFIX__VERSION_1_2">
            <proto><type>cl_int</type>                     <name>clReleaseAcceleratorINTEL</name></proto>
            <param><type>cl_accelerator_intel</type>       <name>accelerator</name></param>
        </command>
        <command suffix="CL_EXT_SUFFIX__VERSION_1_1">
            <proto><type>cl_event</type>                   <name>clCreateEventFromGLsyncKHR</name></proto>
            <param><type>cl_context</type>                 <name>context</name></param>
            <param><type>cl_GLsync</type>                  <name>sync</name></param>
            <param><type>cl_int</type>*                    <name>errcode_ret</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_0">
            <proto><type>cl_int</type>                     <name>clGetGLContextInfoKHR</name></proto>
            <param>const <type>cl_context_properties</type>*  <name>properties</name></param>
            <param><type>cl_gl_context_info</type>         <name>param_name</name></param>
            <param><type>size_t</type>                     <name>param_value_size</name></param>
            <param><type>void</type>*                      <name>param_value</name></param>
            <param><type>size_t</type>*                    <name>param_value_size_ret</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_0">
            <proto><type>cl_mem</type>                     <name>clCreateFromGLBuffer</name></proto>
            <param><type>cl_context</type>                 <name>context</name></param>
            <param><type>cl_mem_flags</type>               <name>flags</name></param>
            <param><type>cl_GLuint</type>                  <name>bufobj</name></param>
            <param><type>int</type>*                       <name>errcode_ret</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_2">
            <proto><type>cl_mem</type>                     <name>clCreateFromGLTexture</name></proto>
            <param><type>cl_context</type>                 <name>context</name></param>
            <param><type>cl_mem_flags</type>               <name>flags</name></param>
            <param><type>cl_GLenum</type>                  <name>target</name></param>
            <param><type>cl_GLint</type>                   <name>miplevel</name></param>
            <param><type>cl_GLuint</type>                  <name>texture</name></param>
            <param><type>cl_int</type>*                    <name>errcode_ret</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_0">
            <proto><type>cl_mem</type>                     <name>clCreateFromGLRenderbuffer</name></proto>
            <param><type>cl_context</type>                 <name>context</name></param>
            <param><type>cl_mem_flags</type>               <name>flags</name></param>
            <param><type>cl_GLuint</type>                  <name>renderbuffer</name></param>
            <param><type>cl_int</type>*                    <name>errcode_ret</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_0">
            <proto><type>cl_int</type>                     <name>clGetGLObjectInfo</name></proto>
            <param><type>cl_mem</type>                     <name>memobj</name></param>
            <param><type>cl_gl_object_type</type>*         <name>gl_object_type</name></param>
            <param><type>cl_GLuint</type>*                 <name>gl_object_name</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_0">
            <proto><type>cl_int</type>                     <name>clGetGLTextureInfo</name></proto>
            <param><type>cl_mem</type>                     <name>memobj</name></param>
            <param><type>cl_gl_texture_info</type>         <name>param_name</name></param>
            <param><type>size_t</type>                     <name>param_value_size</name></param>
            <param><type>void</type>*                      <name>param_value</name></param>
            <param><type>size_t</type>*                    <name>param_value_size_ret</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_0">
            <proto><type>cl_int</type>                     <name>clEnqueueAcquireGLObjects</name></proto>
            <param><type>cl_command_queue</type>           <name>command_queue</name></param>
            <param><type>cl_uint</type>                    <name>num_objects</name></param>
            <param>const <type>cl_mem</type>*              <name>mem_objects</name></param>
            <param><type>cl_uint</type>                    <name>num_events_in_wait_list</name></param>
            <param>const <type>cl_event</type>*            <name>event_wait_list</name></param>
            <param><type>cl_event</type>*                  <name>event</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_0">
            <proto><type>cl_int</type>                     <name>clEnqueueReleaseGLObjects</name></proto>
            <param><type>cl_command_queue</type>           <name>command_queue</name></param>
            <param><type>cl_uint</type>                    <name>num_objects</name></param>
            <param>const <type>cl_mem</type>*              <name>mem_objects</name></param>
            <param><type>cl_uint</type>                    <name>num_events_in_wait_list</name></param>
            <param>const <type>cl_event</type>*            <name>event_wait_list</name></param>
            <param><type>cl_event</type>*                  <name>event</name></param>
        </command>
        <command prefix="CL_EXT_PREFIX__VERSION_1_1_DEPRECATED" suffix="CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED">
            <proto><type>cl_mem</type>                     <name>clCreateFromGLTexture2D</name></proto>
            <param><type>cl_context</type>                 <name>context</name></param>
            <param><type>cl_mem_flags</type>               <name>flags</name></param>
            <param><type>cl_GLenum</type>                  <name>target</name></param>
            <param><type>cl_GLint</type>                   <name>miplevel</name></param>
            <param><type>cl_GLuint</type>                  <name>texture</name></param>
            <param><type>cl_int</type>*                    <name>errcode_ret</name></param>
        </command>
        <command prefix="CL_EXT_PREFIX__VERSION_1_1_DEPRECATED" suffix="CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED">
            <proto><type>cl_mem</type>                     <name>clCreateFromGLTexture3D</name></proto>
            <param><type>cl_context</type>                 <name>context</name></param>
            <param><type>cl_mem_flags</type>               <name>flags</name></param>
            <param><type>cl_GLenum</type>                  <name>target</name></param>
            <param><type>cl_GLint</type>                   <name>miplevel</name></param>
            <param><type>cl_GLuint</type>                  <name>texture</name></param>
            <param><type>cl_int</type>*                    <name>errcode_ret</name></param>
        </command>
        <command suffix="CL_EXT_SUFFIX__VERSION_1_2">
            <proto><type>cl_int</type>                     <name>clGetDeviceIDsFromVA_APIMediaAdapterINTEL</name></proto>
            <param><type>cl_platform_id</type>             <name>platform</name></param>
            <param><type>cl_va_api_device_source_intel</type> <name>media_adapter_type</name></param>
            <param><type>void</type>*                      <name>media_adapter</name></param>
            <param><type>cl_va_api_device_set_intel</type> <name>media_adapter_set</name></param>
            <param><type>cl_uint</type>                    <name>num_entries</name></param>
            <param><type>cl_device_id</type>*              <name>devices</name></param>
            <param><type>cl_uint</type>*                   <name>num_devices</name></param>
        </command>
        <command suffix="CL_EXT_SUFFIX__VERSION_1_2">
            <proto><type>cl_mem</type>                     <name>clCreateFromVA_APIMediaSurfaceINTEL</name></proto>
            <param><type>cl_context</type>                 <name>context</name></param>
            <param><type>cl_mem_flags</type>               <name>flags</name></param>
            <param><type>VASurfaceID</type>*               <name>surface</name></param>
            <param><type>cl_uint</type>                    <name>plane</name></param>
            <param><type>cl_int</type>*                    <name>errcode_ret</name></param>
        </command>
        <command suffix="CL_EXT_SUFFIX__VERSION_1_2">
            <proto><type>cl_int</type>                     <name>clEnqueueAcquireVA_APIMediaSurfacesINTEL</name></proto>
            <param><type>cl_command_queue</type>           <name>command_queue</name></param>
            <param><type>cl_uint</type>                    <name>num_objects</name></param>
            <param>const <type>cl_mem</type>*              <name>mem_objects</name></param>
            <param><type>cl_uint</type>                    <name>num_events_in_wait_list</name></param>
            <param>const <type>cl_event</type>*            <name>event_wait_list</name></param>
            <param><type>cl_event</type>*                  <name>event</name></param>
        </command>
        <command suffix="CL_EXT_SUFFIX__VERSION_1_2">
            <proto><type>cl_int</type>                     <name>clEnqueueReleaseVA_APIMediaSurfacesINTEL</name></proto>
            <param><type>cl_command_queue</type>           <name>command_queue</name></param>
            <param><type>cl_uint</type>                    <name>num_objects</name></param>
            <param>const <type>cl_mem</type>*              <name>mem_objects</name></param>
            <param><type>cl_uint</type>                    <name>num_events_in_wait_list</name></param>
            <param>const <type>cl_event</type>*            <name>event_wait_list</name></param>
            <param><type>cl_event</type>*                  <name>event</name></param>
        </command>
        <command>
            <proto><type>void</type>*                           <name>clHostMemAllocINTEL</name></proto>
            <param><type>cl_context</type>                      <name>context</name></param>
            <param>const <type>cl_mem_properties_intel</type>*  <name>properties</name></param>
            <param><type>size_t</type>                          <name>size</name></param>
            <param><type>cl_uint</type>                         <name>alignment</name></param>
            <param><type>cl_int</type>*                         <name>errcode_ret</name></param>
        </command>
        <command>
            <proto><type>void</type>*                           <name>clDeviceMemAllocINTEL</name></proto>
            <param><type>cl_context</type>                      <name>context</name></param>
            <param><type>cl_device_id</type>                    <name>device</name></param>
            <param>const <type>cl_mem_properties_intel</type>*  <name>properties</name></param>
            <param><type>size_t</type>                          <name>size</name></param>
            <param><type>cl_uint</type>                         <name>alignment</name></param>
            <param><type>cl_int</type>*                         <name>errcode_ret</name></param>
        </command>
        <command>
            <proto><type>void</type>*                           <name>clSharedMemAllocINTEL</name></proto>
            <param><type>cl_context</type>                      <name>context</name></param>
            <param><type>cl_device_id</type>                    <name>device</name></param>
            <param>const <type>cl_mem_properties_intel</type>*  <name>properties</name></param>
            <param><type>size_t</type>                          <name>size</name></param>
            <param><type>cl_uint</type>                         <name>alignment</name></param>
            <param><type>cl_int</type>*                         <name>errcode_ret</name></param>
        </command>
        <command>
            <proto><type>cl_int</type>                          <name>clMemFreeINTEL</name></proto>
            <param><type>cl_context</type>                      <name>context</name></param>
            <param><type>void</type>*                           <name>ptr</name></param>
        </command>
        <command>
            <proto><type>cl_int</type>                          <name>clGetMemAllocInfoINTEL</name></proto>
            <param><type>cl_context</type>                      <name>context</name></param>
            <param>const <type>void</type>*                     <name>ptr</name></param>
            <param><type>cl_mem_info_intel</type>               <name>param_name</name></param>
            <param><type>size_t</type>                          <name>param_value_size</name></param>
            <param><type>void</type>*                           <name>param_value</name></param>
            <param><type>size_t</type>*                         <name>param_value_size_ret</name></param>
        </command>
        <command>
            <proto><type>cl_int</type>                          <name>clSetKernelArgMemPointerINTEL</name></proto>
            <param><type>cl_kernel</type>                       <name>kernel</name></param>
            <param><type>cl_uint</type>                         <name>arg_index</name></param>
            <param>const <type>void</type>*                     <name>arg_value</name></param>
        </command>
        <command comment="Deprecated">
            <proto><type>cl_int</type>                          <name>clEnqueueMemsetINTEL</name></proto>
            <param><type>cl_command_queue</type>                <name>command_queue</name></param>
            <param><type>void</type>*                           <name>dst_ptr</name></param>
            <param><type>cl_int</type>                          <name>value</name></param>
            <param><type>size_t</type>                          <name>size</name></param>
            <param><type>cl_uint</type>                         <name>num_events_in_wait_list</name></param>
            <param>const <type>cl_event</type>*                 <name>event_wait_list</name></param>
            <param><type>cl_event</type>*                       <name>event</name></param>
        </command>
        <command>
            <proto><type>cl_int</type>                          <name>clEnqueueMemFillINTEL</name></proto>
            <param><type>cl_command_queue</type>                <name>command_queue</name></param>
            <param><type>void</type>*                           <name>dst_ptr</name></param>
            <param>const <type>void</type>*                     <name>pattern</name></param>
            <param><type>size_t</type>                          <name>pattern_size</name></param>
            <param><type>size_t</type>                          <name>size</name></param>
            <param><type>cl_uint</type>                         <name>num_events_in_wait_list</name></param>
            <param>const <type>cl_event</type>*                 <name>event_wait_list</name></param>
            <param><type>cl_event</type>*                       <name>event</name></param>
        </command>
        <command>
            <proto><type>cl_int</type>                          <name>clEnqueueMemcpyINTEL</name></proto>
            <param><type>cl_command_queue</type>                <name>command_queue</name></param>
            <param><type>cl_bool</type>                         <name>blocking</name></param>
            <param><type>void</type>*                           <name>dst_ptr</name></param>
            <param>const <type>void</type>*                     <name>src_ptr</name></param>
            <param><type>size_t</type>                          <name>size</name></param>
            <param><type>cl_uint</type>                         <name>num_events_in_wait_list</name></param>
            <param>const <type>cl_event</type>*                 <name>event_wait_list</name></param>
            <param><type>cl_event</type>*                       <name>event</name></param>
        </command>
        <command>
            <proto><type>cl_int</type>                          <name>clEnqueueMigrateMemINTEL</name></proto>
            <param><type>cl_command_queue</type>                <name>command_queue</name></param>
            <param>const <type>void</type>*                     <name>ptr</name></param>
            <param><type>size_t</type>                          <name>size</name></param>
            <param><type>cl_mem_migration_flags</type>          <name>flags</name></param>
            <param><type>cl_uint</type>                         <name>num_events_in_wait_list</name></param>
            <param>const <type>cl_event</type>*                 <name>event_wait_list</name></param>
            <param><type>cl_event</type>*                       <name>event</name></param>
        </command>
        <command>
            <proto><type>cl_int</type>                          <name>clEnqueueMemAdviseINTEL</name></proto>
            <param><type>cl_command_queue</type>                <name>command_queue</name></param>
            <param>const <type>void</type>*                     <name>ptr</name></param>
            <param><type>size_t</type>                          <name>size</name></param>
            <param><type>cl_mem_advice_intel</type>             <name>advice</name></param>
            <param><type>cl_uint</type>                         <name>num_events_in_wait_list</name></param>
            <param>const <type>cl_event</type>*                 <name>event_wait_list</name></param>
            <param><type>cl_event</type>*                       <name>event</name></param>
        </command>
        <command>
            <proto><type>cl_mem</type>                          <name>clCreateBufferWithPropertiesINTEL</name></proto>
            <param><type>cl_context</type>                      <name>context</name></param>
            <param>const <type>cl_mem_properties_intel</type>*  <name>properties</name></param>
            <param><type>cl_mem_flags</type>                    <name>flags</name></param>
            <param><type>size_t</type>                          <name>size</name></param>
            <param><type>void</type>*                           <name>host_ptr</name></param>
            <param><type>cl_int</type>*                         <name>errcode_ret</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_0">
            <proto><type>cl_int</type>                                  <name>clGetPlatformIDs</name></proto>
            <param><type>cl_uint</type>                                 <name>num_entries</name></param>
            <param><type>cl_platform_id</type>*                         <name>platforms</name></param>
            <param><type>cl_uint</type>*                                <name>num_platforms</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_0">
            <proto><type>cl_int</type>                                  <name>clGetPlatformInfo</name></proto>
            <param><type>cl_platform_id</type>                          <name>platform</name></param>
            <param><type>cl_platform_info</type>                        <name>param_name</name></param>
            <param><type>size_t</type>                                  <name>param_value_size</name></param>
            <param><type>void</type>*                                   <name>param_value</name></param>
            <param><type>size_t</type>*                                 <name>param_value_size_ret</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_0">
            <proto><type>cl_int</type>                                  <name>clGetDeviceIDs</name></proto>
            <param><type>cl_platform_id</type>                          <name>platform</name></param>
            <param><type>cl_device_type</type>                          <name>device_type</name></param>
            <param><type>cl_uint</type>                                 <name>num_entries</name></param>
            <param><type>cl_device_id</type>*                           <name>devices</name></param>
            <param><type>cl_uint</type>*                                <name>num_devices</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_0">
            <proto><type>cl_int</type>                                  <name>clGetDeviceInfo</name></proto>
            <param><type>cl_device_id</type>                            <name>device</name></param>
            <param><type>cl_device_info</type>                          <name>param_name</name></param>
            <param><type>size_t</type>                                  <name>param_value_size</name></param>
            <param><type>void</type>*                                   <name>param_value</name></param>
            <param><type>size_t</type>*                                 <name>param_value_size_ret</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_2">
            <proto><type>cl_int</type>                                  <name>clCreateSubDevices</name></proto>
            <param><type>cl_device_id</type>                            <name>in_device</name></param>
            <param>const <type>cl_device_partition_property</type>*     <name>properties</name></param>
            <param><type>cl_uint</type>                                 <name>num_devices</name></param>
            <param><type>cl_device_id</type>*                           <name>out_devices</name></param>
            <param><type>cl_uint</type>*                                <name>num_devices_ret</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_2">
            <proto><type>cl_int</type>                                  <name>clRetainDevice</name></proto>
            <param><type>cl_device_id</type>                            <name>device</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_2">
            <proto><type>cl_int</type>                                  <name>clReleaseDevice</name></proto>
            <param><type>cl_device_id</type>                            <name>device</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_2_1">
            <proto><type>cl_int</type>                                  <name>clSetDefaultDeviceCommandQueue</name></proto>
            <param><type>cl_context</type>                              <name>context</name></param>
            <param><type>cl_device_id</type>                            <name>device</name></param>
            <param><type>cl_command_queue</type>                        <name>command_queue</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_2_1">
            <proto><type>cl_int</type>                                  <name>clGetDeviceAndHostTimer</name></proto>
            <param><type>cl_device_id</type>                            <name>device</name></param>
            <param><type>cl_ulong</type>*                               <name>device_timestamp</name></param>
            <param><type>cl_ulong</type>*                               <name>host_timestamp</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_2_1">
            <proto><type>cl_int</type>                                  <name>clGetHostTimer</name></proto>
            <param><type>cl_device_id</type>                            <name>device</name></param>
            <param><type>cl_ulong</type>*                               <name>host_timestamp</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_0">
            <proto><type>cl_context</type>                              <name>clCreateContext</name></proto>
            <param>const <type>cl_context_properties</type>*            <name>properties</name></param>
            <param><type>cl_uint</type>                                 <name>num_devices</name></param>
            <param>const <type>cl_device_id</type>*                     <name>devices</name></param>
            <param>void (CL_CALLBACK*                                   <name>pfn_notify</name>)(const char* errinfo, const void* private_info, size_t cb, void* user_data)</param>
            <param><type>void</type>*                                   <name>user_data</name></param>
            <param><type>cl_int</type>*                                 <name>errcode_ret</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_0">
            <proto><type>cl_context</type>                              <name>clCreateContextFromType</name></proto>
            <param>const <type>cl_context_properties</type>*            <name>properties</name></param>
            <param><type>cl_device_type</type>                          <name>device_type</name></param>
            <param>void (CL_CALLBACK*                                   <name>pfn_notify</name>)(const char* errinfo, const void* private_info, size_t cb, void* user_data)</param>
            <param><type>void</type>*                                   <name>user_data</name></param>
            <param><type>cl_int</type>*                                 <name>errcode_ret</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_0">
            <proto><type>cl_int</type>                                  <name>clRetainContext</name></proto>
            <param><type>cl_context</type>                              <name>context</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_0">
            <proto><type>cl_int</type>                                  <name>clReleaseContext</name></proto>
            <param><type>cl_context</type>                              <name>context</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_0">
            <proto><type>cl_int</type>                                  <name>clGetContextInfo</name></proto>
            <param><type>cl_context</type>                              <name>context</name></param>
            <param><type>cl_context_info</type>                         <name>param_name</name></param>
            <param><type>size_t</type>                                  <name>param_value_size</name></param>
            <param><type>void</type>*                                   <name>param_value</name></param>
            <param><type>size_t</type>*                                 <name>param_value_size_ret</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_3_0">
            <proto><type>cl_int</type>                                  <name>clSetContextDestructorCallback</name></proto>
            <param><type>cl_context</type>                              <name>context</name></param>
            <param>void (CL_CALLBACK*                                   <name>pfn_notify</name>)(cl_context context, void* user_data)</param>
            <param><type>void</type>*                                   <name>user_data</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_2_0">
            <proto><type>cl_command_queue</type>                        <name>clCreateCommandQueueWithProperties</name></proto>
            <param><type>cl_context</type>                              <name>context</name></param>
            <param><type>cl_device_id</type>                            <name>device</name></param>
            <param>const <type>cl_queue_properties</type>*              <name>properties</name></param>
            <param><type>cl_int</type>*                                 <name>errcode_ret</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_0">
            <proto><type>cl_int</type>                                  <name>clRetainCommandQueue</name></proto>
            <param><type>cl_command_queue</type>                        <name>command_queue</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_0">
            <proto><type>cl_int</type>                                  <name>clReleaseCommandQueue</name></proto>
            <param><type>cl_command_queue</type>                        <name>command_queue</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_0">
            <proto><type>cl_int</type>                                  <name>clGetCommandQueueInfo</name></proto>
            <param><type>cl_command_queue</type>                        <name>command_queue</name></param>
            <param><type>cl_command_queue_info</type>                   <name>param_name</name></param>
            <param><type>size_t</type>                                  <name>param_value_size</name></param>
            <param><type>void</type>*                                   <name>param_value</name></param>
            <param><type>size_t</type>*                                 <name>param_value_size_ret</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_0">
            <proto><type>cl_mem</type>                                  <name>clCreateBuffer</name></proto>
            <param><type>cl_context</type>                              <name>context</name></param>
            <param><type>cl_mem_flags</type>                            <name>flags</name></param>
            <param><type>size_t</type>                                  <name>size</name></param>
            <param><type>void</type>*                                   <name>host_ptr</name></param>
            <param><type>cl_int</type>*                                 <name>errcode_ret</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_3_0">
            <proto><type>cl_mem</type>                                  <name>clCreateBufferWithProperties</name></proto>
            <param><type>cl_context</type>                              <name>context</name></param>
            <param>const <type>cl_mem_properties</type>*                <name>properties</name></param>
            <param><type>cl_mem_flags</type>                            <name>flags</name></param>
            <param><type>size_t</type>                                  <name>size</name></param>
            <param><type>void</type>*                                   <name>host_ptr</name></param>
            <param><type>cl_int</type>*                                 <name>errcode_ret</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_1">
            <proto><type>cl_mem</type>                                  <name>clCreateSubBuffer</name></proto>
            <param><type>cl_mem</type>                                  <name>buffer</name></param>
            <param><type>cl_mem_flags</type>                            <name>flags</name></param>
            <param><type>cl_buffer_create_type</type>                   <name>buffer_create_type</name></param>
            <param>const <type>void</type>*                             <name>buffer_create_info</name></param>
            <param><type>cl_int</type>*                                 <name>errcode_ret</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_2">
            <proto><type>cl_mem</type>                                  <name>clCreateImage</name></proto>
            <param><type>cl_context</type>                              <name>context</name></param>
            <param><type>cl_mem_flags</type>                            <name>flags</name></param>
            <param>const <type>cl_image_format</type>*                  <name>image_format</name></param>
            <param>const <type>cl_image_desc</type>*                    <name>image_desc</name></param>
            <param><type>void</type>*                                   <name>host_ptr</name></param>
            <param><type>cl_int</type>*                                 <name>errcode_ret</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_3_0">
            <proto><type>cl_mem</type>                                  <name>clCreateImageWithProperties</name></proto>
            <param><type>cl_context</type>                              <name>context</name></param>
            <param>const <type>cl_mem_properties</type>*                <name>properties</name></param>
            <param><type>cl_mem_flags</type>                            <name>flags</name></param>
            <param>const <type>cl_image_format</type>*                  <name>image_format</name></param>
            <param>const <type>cl_image_desc</type>*                    <name>image_desc</name></param>
            <param><type>void</type>*                                   <name>host_ptr</name></param>
            <param><type>cl_int</type>*                                 <name>errcode_ret</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_2_0">
            <proto><type>cl_mem</type>                                  <name>clCreatePipe</name></proto>
            <param><type>cl_context</type>                              <name>context</name></param>
            <param><type>cl_mem_flags</type>                            <name>flags</name></param>
            <param><type>cl_uint</type>                                 <name>pipe_packet_size</name></param>
            <param><type>cl_uint</type>                                 <name>pipe_max_packets</name></param>
            <param>const <type>cl_pipe_properties</type>*               <name>properties</name></param>
            <param><type>cl_int</type>*                                 <name>errcode_ret</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_0">
            <proto><type>cl_int</type>                                  <name>clRetainMemObject</name></proto>
            <param><type>cl_mem</type>                                  <name>memobj</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_0">
            <proto><type>cl_int</type>                                  <name>clReleaseMemObject</name></proto>
            <param><type>cl_mem</type>                                  <name>memobj</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_0">
            <proto><type>cl_int</type>                                  <name>clGetSupportedImageFormats</name></proto>
            <param><type>cl_context</type>                              <name>context</name></param>
            <param><type>cl_mem_flags</type>                            <name>flags</name></param>
            <param><type>cl_mem_object_type</type>                      <name>image_type</name></param>
            <param><type>cl_uint</type>                                 <name>num_entries</name></param>
            <param><type>cl_image_format</type>*                        <name>image_formats</name></param>
            <param><type>cl_uint</type>*                                <name>num_image_formats</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_0">
            <proto><type>cl_int</type>                                  <name>clGetMemObjectInfo</name></proto>
            <param><type>cl_mem</type>                                  <name>memobj</name></param>
            <param><type>cl_mem_info</type>                             <name>param_name</name></param>
            <param><type>size_t</type>                                  <name>param_value_size</name></param>
            <param><type>void</type>*                                   <name>param_value</name></param>
            <param><type>size_t</type>*                                 <name>param_value_size_ret</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_0">
            <proto><type>cl_int</type>                                  <name>clGetImageInfo</name></proto>
            <param><type>cl_mem</type>                                  <name>image</name></param>
            <param><type>cl_image_info</type>                           <name>param_name</name></param>
            <param><type>size_t</type>                                  <name>param_value_size</name></param>
            <param><type>void</type>*                                   <name>param_value</name></param>
            <param><type>size_t</type>*                                 <name>param_value_size_ret</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_2_0">
            <proto><type>cl_int</type>                                  <name>clGetPipeInfo</name></proto>
            <param><type>cl_mem</type>                                  <name>pipe</name></param>
            <param><type>cl_pipe_info</type>                            <name>param_name</name></param>
            <param><type>size_t</type>                                  <name>param_value_size</name></param>
            <param><type>void</type>*                                   <name>param_value</name></param>
            <param><type>size_t</type>*                                 <name>param_value_size_ret</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_1">
            <proto><type>cl_int</type>                                  <name>clSetMemObjectDestructorCallback</name></proto>
            <param><type>cl_mem</type>                                  <name>memobj</name></param>
            <param>void (CL_CALLBACK*                                   <name>pfn_notify</name>)(cl_mem memobj, void* user_data)</param>
            <param><type>void</type>*                                   <name>user_data</name></param>
        </command>
        <command suffix="CL_EXT_SUFFIX__VERSION_1_0">
            <proto><type>cl_int</type>                                  <name>clSetMemObjectDestructorAPPLE</name></proto>
            <param><type>cl_mem</type>                                  <name>memobj</name></param>
            <param>void (CL_CALLBACK*                                   <name>pfn_notify</name>)(cl_mem memobj, void* user_data)</param>
            <param><type>void</type>*                                   <name>user_data</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_2_0">
            <proto><type>void</type>*                                   <name>clSVMAlloc</name></proto>
            <param><type>cl_context</type>                              <name>context</name></param>
            <param><type>cl_svm_mem_flags</type>                        <name>flags</name></param>
            <param><type>size_t</type>                                  <name>size</name></param>
            <param><type>cl_uint</type>                                 <name>alignment</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_2_0">
            <proto><type>void</type>                                    <name>clSVMFree</name></proto>
            <param><type>cl_context</type>                              <name>context</name></param>
            <param><type>void</type>*                                   <name>svm_pointer</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_2_0">
            <proto><type>cl_sampler</type>                              <name>clCreateSamplerWithProperties</name></proto>
            <param><type>cl_context</type>                              <name>context</name></param>
            <param>const <type>cl_sampler_properties</type>*            <name>sampler_properties</name></param>
            <param><type>cl_int</type>*                                 <name>errcode_ret</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_0">
            <proto><type>cl_int</type>                                  <name>clRetainSampler</name></proto>
            <param><type>cl_sampler</type>                              <name>sampler</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_0">
            <proto><type>cl_int</type>                                  <name>clReleaseSampler</name></proto>
            <param><type>cl_sampler</type>                              <name>sampler</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_0">
            <proto><type>cl_int</type>                                  <name>clGetSamplerInfo</name></proto>
            <param><type>cl_sampler</type>                              <name>sampler</name></param>
            <param><type>cl_sampler_info</type>                         <name>param_name</name></param>
            <param><type>size_t</type>                                  <name>param_value_size</name></param>
            <param><type>void</type>*                                   <name>param_value</name></param>
            <param><type>size_t</type>*                                 <name>param_value_size_ret</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_0">
            <proto><type>cl_program</type>                              <name>clCreateProgramWithSource</name></proto>
            <param><type>cl_context</type>                              <name>context</name></param>
            <param><type>cl_uint</type>                                 <name>count</name></param>
            <param>const <type>char</type>**                            <name>strings</name></param>
            <param>const <type>size_t</type>*                           <name>lengths</name></param>
            <param><type>cl_int</type>*                                 <name>errcode_ret</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_0">
            <proto><type>cl_program</type>                              <name>clCreateProgramWithBinary</name></proto>
            <param><type>cl_context</type>                              <name>context</name></param>
            <param><type>cl_uint</type>                                 <name>num_devices</name></param>
            <param>const <type>cl_device_id</type>*                     <name>device_list</name></param>
            <param>const <type>size_t</type>*                           <name>lengths</name></param>
            <param>const <type>unsigned char</type>**                   <name>binaries</name></param>
            <param><type>cl_int</type>*                                 <name>binary_status</name></param>
            <param><type>cl_int</type>*                                 <name>errcode_ret</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_2">
            <proto><type>cl_program</type>                              <name>clCreateProgramWithBuiltInKernels</name></proto>
            <param><type>cl_context</type>                              <name>context</name></param>
            <param><type>cl_uint</type>                                 <name>num_devices</name></param>
            <param>const <type>cl_device_id</type>*                     <name>device_list</name></param>
            <param>const <type>char</type>*                             <name>kernel_names</name></param>
            <param><type>cl_int</type>*                                 <name>errcode_ret</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_2_1">
            <proto><type>cl_program</type>                              <name>clCreateProgramWithIL</name></proto>
            <param><type>cl_context</type>                              <name>context</name></param>
            <param>const <type>void</type>*                             <name>il</name></param>
            <param><type>size_t</type>                                  <name>length</name></param>
            <param><type>cl_int</type>*                                 <name>errcode_ret</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_0">
            <proto><type>cl_int</type>                                  <name>clRetainProgram</name></proto>
            <param><type>cl_program</type>                              <name>program</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_0">
            <proto><type>cl_int</type>                                  <name>clReleaseProgram</name></proto>
            <param><type>cl_program</type>                              <name>program</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_0">
            <proto><type>cl_int</type>                                  <name>clBuildProgram</name></proto>
            <param><type>cl_program</type>                              <name>program</name></param>
            <param><type>cl_uint</type>                                 <name>num_devices</name></param>
            <param>const <type>cl_device_id</type>*                     <name>device_list</name></param>
            <param>const <type>char</type>*                             <name>options</name></param>
            <param>void (CL_CALLBACK*                                   <name>pfn_notify</name>)(cl_program program, void* user_data)</param>
            <param><type>void</type>*                                   <name>user_data</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_2">
            <proto><type>cl_int</type>                                  <name>clCompileProgram</name></proto>
            <param><type>cl_program</type>                              <name>program</name></param>
            <param><type>cl_uint</type>                                 <name>num_devices</name></param>
            <param>const <type>cl_device_id</type>*                     <name>device_list</name></param>
            <param>const <type>char</type>*                             <name>options</name></param>
            <param><type>cl_uint</type>                                 <name>num_input_headers</name></param>
            <param>const <type>cl_program</type>*                       <name>input_headers</name></param>
            <param>const <type>char</type>**                            <name>header_include_names</name></param>
            <param>void (CL_CALLBACK*                                   <name>pfn_notify</name>)(cl_program program, void* user_data)</param>
            <param><type>void</type>*                                   <name>user_data</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_2">
            <proto><type>cl_program</type>                              <name>clLinkProgram</name></proto>
            <param><type>cl_context</type>                              <name>context</name></param>
            <param><type>cl_uint</type>                                 <name>num_devices</name></param>
            <param>const <type>cl_device_id</type>*                     <name>device_list</name></param>
            <param>const <type>char</type>*                             <name>options</name></param>
            <param><type>cl_uint</type>                                 <name>num_input_programs</name></param>
            <param>const <type>cl_program</type>*                       <name>input_programs</name></param>
            <param>void (CL_CALLBACK*                                   <name>pfn_notify</name>)(cl_program program, void* user_data)</param>
            <param><type>void</type>*                                   <name>user_data</name></param>
            <param><type>cl_int</type>*                                 <name>errcode_ret</name></param>
        </command>
        <command prefix="CL_EXT_PREFIX__VERSION_2_2_DEPRECATED" suffix="CL_EXT_SUFFIX__VERSION_2_2_DEPRECATED">
            <proto><type>cl_int</type>                                  <name>clSetProgramReleaseCallback</name></proto>
            <param><type>cl_program</type>                              <name>program</name></param>
            <param>void (CL_CALLBACK*                                   <name>pfn_notify</name>)(cl_program program, void* user_data)</param>
            <param><type>void</type>*                                   <name>user_data</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_2_2">
            <proto><type>cl_int</type>                                  <name>clSetProgramSpecializationConstant</name></proto>
            <param><type>cl_program</type>                              <name>program</name></param>
            <param><type>cl_uint</type>                                 <name>spec_id</name></param>
            <param><type>size_t</type>                                  <name>spec_size</name></param>
            <param>const <type>void</type>*                             <name>spec_value</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_2">
            <proto><type>cl_int</type>                                  <name>clUnloadPlatformCompiler</name></proto>
            <param><type>cl_platform_id</type>                          <name>platform</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_0">
            <proto><type>cl_int</type>                                  <name>clGetProgramInfo</name></proto>
            <param><type>cl_program</type>                              <name>program</name></param>
            <param><type>cl_program_info</type>                         <name>param_name</name></param>
            <param><type>size_t</type>                                  <name>param_value_size</name></param>
            <param><type>void</type>*                                   <name>param_value</name></param>
            <param><type>size_t</type>*                                 <name>param_value_size_ret</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_0">
            <proto><type>cl_int</type>                                  <name>clGetProgramBuildInfo</name></proto>
            <param><type>cl_program</type>                              <name>program</name></param>
            <param><type>cl_device_id</type>                            <name>device</name></param>
            <param><type>cl_program_build_info</type>                   <name>param_name</name></param>
            <param><type>size_t</type>                                  <name>param_value_size</name></param>
            <param><type>void</type>*                                   <name>param_value</name></param>
            <param><type>size_t</type>*                                 <name>param_value_size_ret</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_0">
            <proto><type>cl_kernel</type>                               <name>clCreateKernel</name></proto>
            <param><type>cl_program</type>                              <name>program</name></param>
            <param>const <type>char</type>*                             <name>kernel_name</name></param>
            <param><type>cl_int</type>*                                 <name>errcode_ret</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_0">
            <proto><type>cl_int</type>                                  <name>clCreateKernelsInProgram</name></proto>
            <param><type>cl_program</type>                              <name>program</name></param>
            <param><type>cl_uint</type>                                 <name>num_kernels</name></param>
            <param><type>cl_kernel</type>*                              <name>kernels</name></param>
            <param><type>cl_uint</type>*                                <name>num_kernels_ret</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_2_1">
            <proto><type>cl_kernel</type>                               <name>clCloneKernel</name></proto>
            <param><type>cl_kernel</type>                               <name>source_kernel</name></param>
            <param><type>cl_int</type>*                                 <name>errcode_ret</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_0">
            <proto><type>cl_int</type>                                  <name>clRetainKernel</name></proto>
            <param><type>cl_kernel</type>                               <name>kernel</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_0">
            <proto><type>cl_int</type>                                  <name>clReleaseKernel</name></proto>
            <param><type>cl_kernel</type>                               <name>kernel</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_0">
            <proto><type>cl_int</type>                                  <name>clSetKernelArg</name></proto>
            <param><type>cl_kernel</type>                               <name>kernel</name></param>
            <param><type>cl_uint</type>                                 <name>arg_index</name></param>
            <param><type>size_t</type>                                  <name>arg_size</name></param>
            <param>const <type>void</type>*                             <name>arg_value</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_2_0">
            <proto><type>cl_int</type>                                  <name>clSetKernelArgSVMPointer</name></proto>
            <param><type>cl_kernel</type>                               <name>kernel</name></param>
            <param><type>cl_uint</type>                                 <name>arg_index</name></param>
            <param>const <type>void</type>*                             <name>arg_value</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_2_0">
            <proto><type>cl_int</type>                                  <name>clSetKernelExecInfo</name></proto>
            <param><type>cl_kernel</type>                               <name>kernel</name></param>
            <param><type>cl_kernel_exec_info</type>                     <name>param_name</name></param>
            <param><type>size_t</type>                                  <name>param_value_size</name></param>
            <param>const <type>void</type>*                             <name>param_value</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_0">
            <proto><type>cl_int</type>                                  <name>clGetKernelInfo</name></proto>
            <param><type>cl_kernel</type>                               <name>kernel</name></param>
            <param><type>cl_kernel_info</type>                          <name>param_name</name></param>
            <param><type>size_t</type>                                  <name>param_value_size</name></param>
            <param><type>void</type>*                                   <name>param_value</name></param>
            <param><type>size_t</type>*                                 <name>param_value_size_ret</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_2">
            <proto><type>cl_int</type>                                  <name>clGetKernelArgInfo</name></proto>
            <param><type>cl_kernel</type>                               <name>kernel</name></param>
            <param><type>cl_uint</type>                                 <name>arg_index</name></param>
            <param><type>cl_kernel_arg_info</type>                      <name>param_name</name></param>
            <param><type>size_t</type>                                  <name>param_value_size</name></param>
            <param><type>void</type>*                                   <name>param_value</name></param>
            <param><type>size_t</type>*                                 <name>param_value_size_ret</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_0">
            <proto><type>cl_int</type>                                  <name>clGetKernelWorkGroupInfo</name></proto>
            <param><type>cl_kernel</type>                               <name>kernel</name></param>
            <param><type>cl_device_id</type>                            <name>device</name></param>
            <param><type>cl_kernel_work_group_info</type>               <name>param_name</name></param>
            <param><type>size_t</type>                                  <name>param_value_size</name></param>
            <param><type>void</type>*                                   <name>param_value</name></param>
            <param><type>size_t</type>*                                 <name>param_value_size_ret</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_2_1">
            <proto><type>cl_int</type>                                  <name>clGetKernelSubGroupInfo</name></proto>
            <param><type>cl_kernel</type>                               <name>kernel</name></param>
            <param><type>cl_device_id</type>                            <name>device</name></param>
            <param><type>cl_kernel_sub_group_info</type>                <name>param_name</name></param>
            <param><type>size_t</type>                                  <name>input_value_size</name></param>
            <param>const <type>void</type>*                             <name>input_value</name></param>
            <param><type>size_t</type>                                  <name>param_value_size</name></param>
            <param><type>void</type>*                                   <name>param_value</name></param>
            <param><type>size_t</type>*                                 <name>param_value_size_ret</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_0">
            <proto><type>cl_int</type>                                  <name>clWaitForEvents</name></proto>
            <param><type>cl_uint</type>                                 <name>num_events</name></param>
            <param>const <type>cl_event</type>*                         <name>event_list</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_0">
            <proto><type>cl_int</type>                                  <name>clGetEventInfo</name></proto>
            <param><type>cl_event</type>                                <name>event</name></param>
            <param><type>cl_event_info</type>                           <name>param_name</name></param>
            <param><type>size_t</type>                                  <name>param_value_size</name></param>
            <param><type>void</type>*                                   <name>param_value</name></param>
            <param><type>size_t</type>*                                 <name>param_value_size_ret</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_1">
            <proto><type>cl_event</type>                                <name>clCreateUserEvent</name></proto>
            <param><type>cl_context</type>                              <name>context</name></param>
            <param><type>cl_int</type>*                                 <name>errcode_ret</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_0">
            <proto><type>cl_int</type>                                  <name>clRetainEvent</name></proto>
            <param><type>cl_event</type>                                <name>event</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_0">
            <proto><type>cl_int</type>                                  <name>clReleaseEvent</name></proto>
            <param><type>cl_event</type>                                <name>event</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_1">
            <proto><type>cl_int</type>                                  <name>clSetUserEventStatus</name></proto>
            <param><type>cl_event</type>                                <name>event</name></param>
            <param><type>cl_int</type>                                  <name>execution_status</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_1">
            <proto><type>cl_int</type>                                  <name>clSetEventCallback</name></proto>
            <param><type>cl_event</type>                                <name>event</name></param>
            <param><type>cl_int</type>                                  <name>command_exec_callback_type</name></param>
            <param>void (CL_CALLBACK*                                   <name>pfn_notify</name>)(cl_event event, cl_int event_command_status, void *user_data)</param>
            <param><type>void</type>*                                   <name>user_data</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_0">
            <proto><type>cl_int</type>                                  <name>clGetEventProfilingInfo</name></proto>
            <param><type>cl_event</type>                                <name>event</name></param>
            <param><type>cl_profiling_info</type>                       <name>param_name</name></param>
            <param><type>size_t</type>                                  <name>param_value_size</name></param>
            <param><type>void</type>*                                   <name>param_value</name></param>
            <param><type>size_t</type>*                                 <name>param_value_size_ret</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_0">
            <proto><type>cl_int</type>                                  <name>clFlush</name></proto>
            <param><type>cl_command_queue</type>                        <name>command_queue</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_0">
            <proto><type>cl_int</type>                                  <name>clFinish</name></proto>
            <param><type>cl_command_queue</type>                        <name>command_queue</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_0">
            <proto><type>cl_int</type>                                  <name>clEnqueueReadBuffer</name></proto>
            <param><type>cl_command_queue</type>                        <name>command_queue</name></param>
            <param><type>cl_mem</type>                                  <name>buffer</name></param>
            <param><type>cl_bool</type>                                 <name>blocking_read</name></param>
            <param><type>size_t</type>                                  <name>offset</name></param>
            <param><type>size_t</type>                                  <name>size</name></param>
            <param><type>void</type>*                                   <name>ptr</name></param>
            <param><type>cl_uint</type>                                 <name>num_events_in_wait_list</name></param>
            <param>const <type>cl_event</type>*                         <name>event_wait_list</name></param>
            <param><type>cl_event</type>*                               <name>event</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_1">
            <proto><type>cl_int</type>                                  <name>clEnqueueReadBufferRect</name></proto>
            <param><type>cl_command_queue</type>                        <name>command_queue</name></param>
            <param><type>cl_mem</type>                                  <name>buffer</name></param>
            <param><type>cl_bool</type>                                 <name>blocking_read</name></param>
            <param>const <type>size_t</type>*                           <name>buffer_origin</name></param>
            <param>const <type>size_t</type>*                           <name>host_origin</name></param>
            <param>const <type>size_t</type>*                           <name>region</name></param>
            <param><type>size_t</type>                                  <name>buffer_row_pitch</name></param>
            <param><type>size_t</type>                                  <name>buffer_slice_pitch</name></param>
            <param><type>size_t</type>                                  <name>host_row_pitch</name></param>
            <param><type>size_t</type>                                  <name>host_slice_pitch</name></param>
            <param><type>void</type>*                                   <name>ptr</name></param>
            <param><type>cl_uint</type>                                 <name>num_events_in_wait_list</name></param>
            <param>const <type>cl_event</type>*                         <name>event_wait_list</name></param>
            <param><type>cl_event</type>*                               <name>event</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_0">
            <proto><type>cl_int</type>                                  <name>clEnqueueWriteBuffer</name></proto>
            <param><type>cl_command_queue</type>                        <name>command_queue</name></param>
            <param><type>cl_mem</type>                                  <name>buffer</name></param>
            <param><type>cl_bool</type>                                 <name>blocking_write</name></param>
            <param><type>size_t</type>                                  <name>offset</name></param>
            <param><type>size_t</type>                                  <name>size</name></param>
            <param>const <type>void</type>*                             <name>ptr</name></param>
            <param><type>cl_uint</type>                                 <name>num_events_in_wait_list</name></param>
            <param>const <type>cl_event</type>*                         <name>event_wait_list</name></param>
            <param><type>cl_event</type>*                               <name>event</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_1">
            <proto><type>cl_int</type>                                  <name>clEnqueueWriteBufferRect</name></proto>
            <param><type>cl_command_queue</type>                        <name>command_queue</name></param>
            <param><type>cl_mem</type>                                  <name>buffer</name></param>
            <param><type>cl_bool</type>                                 <name>blocking_write</name></param>
            <param>const <type>size_t</type>*                           <name>buffer_origin</name></param>
            <param>const <type>size_t</type>*                           <name>host_origin</name></param>
            <param>const <type>size_t</type>*                           <name>region</name></param>
            <param><type>size_t</type>                                  <name>buffer_row_pitch</name></param>
            <param><type>size_t</type>                                  <name>buffer_slice_pitch</name></param>
            <param><type>size_t</type>                                  <name>host_row_pitch</name></param>
            <param><type>size_t</type>                                  <name>host_slice_pitch</name></param>
            <param>const <type>void</type>*                             <name>ptr</name></param>
            <param><type>cl_uint</type>                                 <name>num_events_in_wait_list</name></param>
            <param>const <type>cl_event</type>*                         <name>event_wait_list</name></param>
            <param><type>cl_event</type>*                               <name>event</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_2">
            <proto><type>cl_int</type>                                  <name>clEnqueueFillBuffer</name></proto>
            <param><type>cl_command_queue</type>                        <name>command_queue</name></param>
            <param><type>cl_mem</type>                                  <name>buffer</name></param>
            <param>const <type>void</type>*                             <name>pattern</name></param>
            <param><type>size_t</type>                                  <name>pattern_size</name></param>
            <param><type>size_t</type>                                  <name>offset</name></param>
            <param><type>size_t</type>                                  <name>size</name></param>
            <param><type>cl_uint</type>                                 <name>num_events_in_wait_list</name></param>
            <param>const <type>cl_event</type>*                         <name>event_wait_list</name></param>
            <param><type>cl_event</type>*                               <name>event</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_0">
            <proto><type>cl_int</type>                                  <name>clEnqueueCopyBuffer</name></proto>
            <param><type>cl_command_queue</type>                        <name>command_queue</name></param>
            <param><type>cl_mem</type>                                  <name>src_buffer</name></param>
            <param><type>cl_mem</type>                                  <name>dst_buffer</name></param>
            <param><type>size_t</type>                                  <name>src_offset</name></param>
            <param><type>size_t</type>                                  <name>dst_offset</name></param>
            <param><type>size_t</type>                                  <name>size</name></param>
            <param><type>cl_uint</type>                                 <name>num_events_in_wait_list</name></param>
            <param>const <type>cl_event</type>*                         <name>event_wait_list</name></param>
            <param><type>cl_event</type>*                               <name>event</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_1">
            <proto><type>cl_int</type>                                  <name>clEnqueueCopyBufferRect</name></proto>
            <param><type>cl_command_queue</type>                        <name>command_queue</name></param>
            <param><type>cl_mem</type>                                  <name>src_buffer</name></param>
            <param><type>cl_mem</type>                                  <name>dst_buffer</name></param>
            <param>const <type>size_t</type>*                           <name>src_origin</name></param>
            <param>const <type>size_t</type>*                           <name>dst_origin</name></param>
            <param>const <type>size_t</type>*                           <name>region</name></param>
            <param><type>size_t</type>                                  <name>src_row_pitch</name></param>
            <param><type>size_t</type>                                  <name>src_slice_pitch</name></param>
            <param><type>size_t</type>                                  <name>dst_row_pitch</name></param>
            <param><type>size_t</type>                                  <name>dst_slice_pitch</name></param>
            <param><type>cl_uint</type>                                 <name>num_events_in_wait_list</name></param>
            <param>const <type>cl_event</type>*                         <name>event_wait_list</name></param>
            <param><type>cl_event</type>*                               <name>event</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_0">
            <proto><type>cl_int</type>                                  <name>clEnqueueReadImage</name></proto>
            <param><type>cl_command_queue</type>                        <name>command_queue</name></param>
            <param><type>cl_mem</type>                                  <name>image</name></param>
            <param><type>cl_bool</type>                                 <name>blocking_read</name></param>
            <param>const <type>size_t</type>*                           <name>origin</name></param>
            <param>const <type>size_t</type>*                           <name>region</name></param>
            <param><type>size_t</type>                                  <name>row_pitch</name></param>
            <param><type>size_t</type>                                  <name>slice_pitch</name></param>
            <param><type>void</type>*                                   <name>ptr</name></param>
            <param><type>cl_uint</type>                                 <name>num_events_in_wait_list</name></param>
            <param>const <type>cl_event</type>*                         <name>event_wait_list</name></param>
            <param><type>cl_event</type>*                               <name>event</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_0">
            <proto><type>cl_int</type>                                  <name>clEnqueueWriteImage</name></proto>
            <param><type>cl_command_queue</type>                        <name>command_queue</name></param>
            <param><type>cl_mem</type>                                  <name>image</name></param>
            <param><type>cl_bool</type>                                 <name>blocking_write</name></param>
            <param>const <type>size_t</type>*                           <name>origin</name></param>
            <param>const <type>size_t</type>*                           <name>region</name></param>
            <param><type>size_t</type>                                  <name>input_row_pitch</name></param>
            <param><type>size_t</type>                                  <name>input_slice_pitch</name></param>
            <param>const <type>void</type>*                             <name>ptr</name></param>
            <param><type>cl_uint</type>                                 <name>num_events_in_wait_list</name></param>
            <param>const <type>cl_event</type>*                         <name>event_wait_list</name></param>
            <param><type>cl_event</type>*                               <name>event</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_2">
            <proto><type>cl_int</type>                                  <name>clEnqueueFillImage</name></proto>
            <param><type>cl_command_queue</type>                        <name>command_queue</name></param>
            <param><type>cl_mem</type>                                  <name>image</name></param>
            <param>const <type>void</type>*                             <name>fill_color</name></param>
            <param>const <type>size_t</type>*                           <name>origin</name></param>
            <param>const <type>size_t</type>*                           <name>region</name></param>
            <param><type>cl_uint</type>                                 <name>num_events_in_wait_list</name></param>
            <param>const <type>cl_event</type>*                         <name>event_wait_list</name></param>
            <param><type>cl_event</type>*                               <name>event</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_0">
            <proto><type>cl_int</type>                                  <name>clEnqueueCopyImage</name></proto>
            <param><type>cl_command_queue</type>                        <name>command_queue</name></param>
            <param><type>cl_mem</type>                                  <name>src_image</name></param>
            <param><type>cl_mem</type>                                  <name>dst_image</name></param>
            <param>const <type>size_t</type>*                           <name>src_origin</name></param>
            <param>const <type>size_t</type>*                           <name>dst_origin</name></param>
            <param>const <type>size_t</type>*                           <name>region</name></param>
            <param><type>cl_uint</type>                                 <name>num_events_in_wait_list</name></param>
            <param>const <type>cl_event</type>*                         <name>event_wait_list</name></param>
            <param><type>cl_event</type>*                               <name>event</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_0">
            <proto><type>cl_int</type>                                  <name>clEnqueueCopyImageToBuffer</name></proto>
            <param><type>cl_command_queue</type>                        <name>command_queue</name></param>
            <param><type>cl_mem</type>                                  <name>src_image</name></param>
            <param><type>cl_mem</type>                                  <name>dst_buffer</name></param>
            <param>const <type>size_t</type>*                           <name>src_origin</name></param>
            <param>const <type>size_t</type>*                           <name>region</name></param>
            <param><type>size_t</type>                                  <name>dst_offset</name></param>
            <param><type>cl_uint</type>                                 <name>num_events_in_wait_list</name></param>
            <param>const <type>cl_event</type>*                         <name>event_wait_list</name></param>
            <param><type>cl_event</type>*                               <name>event</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_0">
            <proto><type>cl_int</type>                                  <name>clEnqueueCopyBufferToImage</name></proto>
            <param><type>cl_command_queue</type>                        <name>command_queue</name></param>
            <param><type>cl_mem</type>                                  <name>src_buffer</name></param>
            <param><type>cl_mem</type>                                  <name>dst_image</name></param>
            <param><type>size_t</type>                                  <name>src_offset</name></param>
            <param>const <type>size_t</type>*                           <name>dst_origin</name></param>
            <param>const <type>size_t</type>*                           <name>region</name></param>
            <param><type>cl_uint</type>                                 <name>num_events_in_wait_list</name></param>
            <param>const <type>cl_event</type>*                         <name>event_wait_list</name></param>
            <param><type>cl_event</type>*                               <name>event</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_0">
            <proto><type>void</type>*                                   <name>clEnqueueMapBuffer</name></proto>
            <param><type>cl_command_queue</type>                        <name>command_queue</name></param>
            <param><type>cl_mem</type>                                  <name>buffer</name></param>
            <param><type>cl_bool</type>                                 <name>blocking_map</name></param>
            <param><type>cl_map_flags</type>                            <name>map_flags</name></param>
            <param><type>size_t</type>                                  <name>offset</name></param>
            <param><type>size_t</type>                                  <name>size</name></param>
            <param><type>cl_uint</type>                                 <name>num_events_in_wait_list</name></param>
            <param>const <type>cl_event</type>*                         <name>event_wait_list</name></param>
            <param><type>cl_event</type>*                               <name>event</name></param>
            <param><type>cl_int</type>*                                 <name>errcode_ret</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_0">
            <proto><type>void</type>*                                   <name>clEnqueueMapImage</name></proto>
            <param><type>cl_command_queue</type>                        <name>command_queue</name></param>
            <param><type>cl_mem</type>                                  <name>image</name></param>
            <param><type>cl_bool</type>                                 <name>blocking_map</name></param>
            <param><type>cl_map_flags</type>                            <name>map_flags</name></param>
            <param>const <type>size_t</type>*                           <name>origin</name></param>
            <param>const <type>size_t</type>*                           <name>region</name></param>
            <param><type>size_t</type>*                                 <name>image_row_pitch</name></param>
            <param><type>size_t</type>*                                 <name>image_slice_pitch</name></param>
            <param><type>cl_uint</type>                                 <name>num_events_in_wait_list</name></param>
            <param>const <type>cl_event</type>*                         <name>event_wait_list</name></param>
            <param><type>cl_event</type>*                               <name>event</name></param>
            <param><type>cl_int</type>*                                 <name>errcode_ret</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_0">
            <proto><type>cl_int</type>                                  <name>clEnqueueUnmapMemObject</name></proto>
            <param><type>cl_command_queue</type>                        <name>command_queue</name></param>
            <param><type>cl_mem</type>                                  <name>memobj</name></param>
            <param><type>void</type>*                                   <name>mapped_ptr</name></param>
            <param><type>cl_uint</type>                                 <name>num_events_in_wait_list</name></param>
            <param>const <type>cl_event</type>*                         <name>event_wait_list</name></param>
            <param><type>cl_event</type>*                               <name>event</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_2">
            <proto><type>cl_int</type>                                  <name>clEnqueueMigrateMemObjects</name></proto>
            <param><type>cl_command_queue</type>                        <name>command_queue</name></param>
            <param><type>cl_uint</type>                                 <name>num_mem_objects</name></param>
            <param>const <type>cl_mem</type>*                           <name>mem_objects</name></param>
            <param><type>cl_mem_migration_flags</type>                  <name>flags</name></param>
            <param><type>cl_uint</type>                                 <name>num_events_in_wait_list</name></param>
            <param>const <type>cl_event</type>*                         <name>event_wait_list</name></param>
            <param><type>cl_event</type>*                               <name>event</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_0">
            <proto><type>cl_int</type>                                  <name>clEnqueueNDRangeKernel</name></proto>
            <param><type>cl_command_queue</type>                        <name>command_queue</name></param>
            <param><type>cl_kernel</type>                               <name>kernel</name></param>
            <param><type>cl_uint</type>                                 <name>work_dim</name></param>
            <param>const <type>size_t</type>*                           <name>global_work_offset</name></param>
            <param>const <type>size_t</type>*                           <name>global_work_size</name></param>
            <param>const <type>size_t</type>*                           <name>local_work_size</name></param>
            <param><type>cl_uint</type>                                 <name>num_events_in_wait_list</name></param>
            <param>const <type>cl_event</type>*                         <name>event_wait_list</name></param>
            <param><type>cl_event</type>*                               <name>event</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_0">
            <proto><type>cl_int</type>                                  <name>clEnqueueNativeKernel</name></proto>
            <param><type>cl_command_queue</type>                        <name>command_queue</name></param>
            <param>void (CL_CALLBACK*                                   <name>user_func</name>)(void*)</param>
            <param><type>void</type>*                                   <name>args</name></param>
            <param><type>size_t</type>                                  <name>cb_args</name></param>
            <param><type>cl_uint</type>                                 <name>num_mem_objects</name></param>
            <param>const <type>cl_mem</type>*                           <name>mem_list</name></param>
            <param>const <type>void</type>**                            <name>args_mem_loc</name></param>
            <param><type>cl_uint</type>                                 <name>num_events_in_wait_list</name></param>
            <param>const <type>cl_event</type>*                         <name>event_wait_list</name></param>
            <param><type>cl_event</type>*                               <name>event</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_2">
            <proto><type>cl_int</type>                                  <name>clEnqueueMarkerWithWaitList</name></proto>
            <param><type>cl_command_queue</type>                        <name>command_queue</name></param>
            <param><type>cl_uint</type>                                 <name>num_events_in_wait_list</name></param>
            <param>const <type>cl_event</type>*                         <name>event_wait_list</name></param>
            <param><type>cl_event</type>*                               <name>event</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_2">
            <proto><type>cl_int</type>                                  <name>clEnqueueBarrierWithWaitList</name></proto>
            <param><type>cl_command_queue</type>                        <name>command_queue</name></param>
            <param><type>cl_uint</type>                                 <name>num_events_in_wait_list</name></param>
            <param>const <type>cl_event</type>*                         <name>event_wait_list</name></param>
            <param><type>cl_event</type>*                               <name>event</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_2_0">
            <proto><type>cl_int</type>                                  <name>clEnqueueSVMFree</name></proto>
            <param><type>cl_command_queue</type>                        <name>command_queue</name></param>
            <param><type>cl_uint</type>                                 <name>num_svm_pointers</name></param>
            <param><type>void</type>*                                   <name>svm_pointers</name>[]</param>
            <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>
            <param><type>void</type>*                                   <name>user_data</name></param>
            <param><type>cl_uint</type>                                 <name>num_events_in_wait_list</name></param>
            <param>const <type>cl_event</type>*                         <name>event_wait_list</name></param>
            <param><type>cl_event</type>*                               <name>event</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_2_0">
            <proto><type>cl_int</type>                                  <name>clEnqueueSVMMemcpy</name></proto>
            <param><type>cl_command_queue</type>                        <name>command_queue</name></param>
            <param><type>cl_bool</type>                                 <name>blocking_copy</name></param>
            <param><type>void</type>*                                   <name>dst_ptr</name></param>
            <param>const <type>void</type>*                             <name>src_ptr</name></param>
            <param><type>size_t</type>                                  <name>size</name></param>
            <param><type>cl_uint</type>                                 <name>num_events_in_wait_list</name></param>
            <param>const <type>cl_event</type>*                         <name>event_wait_list</name></param>
            <param><type>cl_event</type>*                               <name>event</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_2_0">
            <proto><type>cl_int</type>                                  <name>clEnqueueSVMMemFill</name></proto>
            <param><type>cl_command_queue</type>                        <name>command_queue</name></param>
            <param><type>void</type>*                                   <name>svm_ptr</name></param>
            <param>const <type>void</type>*                             <name>pattern</name></param>
            <param><type>size_t</type>                                  <name>pattern_size</name></param>
            <param><type>size_t</type>                                  <name>size</name></param>
            <param><type>cl_uint</type>                                 <name>num_events_in_wait_list</name></param>
            <param>const <type>cl_event</type>*                         <name>event_wait_list</name></param>
            <param><type>cl_event</type>*                               <name>event</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_2_0">
            <proto><type>cl_int</type>                                  <name>clEnqueueSVMMap</name></proto>
            <param><type>cl_command_queue</type>                        <name>command_queue</name></param>
            <param><type>cl_bool</type>                                 <name>blocking_map</name></param>
            <param><type>cl_map_flags</type>                            <name>flags</name></param>
            <param><type>void</type>*                                   <name>svm_ptr</name></param>
            <param><type>size_t</type>                                  <name>size</name></param>
            <param><type>cl_uint</type>                                 <name>num_events_in_wait_list</name></param>
            <param>const <type>cl_event</type>*                         <name>event_wait_list</name></param>
            <param><type>cl_event</type>*                               <name>event</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_2_0">
            <proto><type>cl_int</type>                                  <name>clEnqueueSVMUnmap</name></proto>
            <param><type>cl_command_queue</type>                        <name>command_queue</name></param>
            <param><type>void</type>*                                   <name>svm_ptr</name></param>
            <param><type>cl_uint</type>                                 <name>num_events_in_wait_list</name></param>
            <param>const <type>cl_event</type>*                         <name>event_wait_list</name></param>
            <param><type>cl_event</type>*                               <name>event</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_2_1">
            <proto><type>cl_int</type>                                  <name>clEnqueueSVMMigrateMem</name></proto>
            <param><type>cl_command_queue</type>                        <name>command_queue</name></param>
            <param><type>cl_uint</type>                                 <name>num_svm_pointers</name></param>
            <param>const <type>void</type>**                            <name>svm_pointers</name></param>
            <param>const <type>size_t</type>*                           <name>sizes</name></param>
            <param><type>cl_mem_migration_flags</type>                  <name>flags</name></param>
            <param><type>cl_uint</type>                                 <name>num_events_in_wait_list</name></param>
            <param>const <type>cl_event</type>*                         <name>event_wait_list</name></param>
            <param><type>cl_event</type>*                               <name>event</name></param>
        </command>
        <command suffix="CL_API_SUFFIX__VERSION_1_2">
            <proto><type>void</type>*                                   <name>clGetExtensionFunctionAddressForPlatform</name></proto>
            <param><type>cl_platform_id</type>                          <name>platform</name></param>
            <param>const <type>char</type>*                             <name>func_name</name></param>
        </command>
        <command suffix="CL_EXT_SUFFIX__VERSION_1_0_DEPRECATED">
            <proto><type>cl_int</type>                                  <name>clSetCommandQueueProperty</name></proto>
            <param><type>cl_command_queue</type>                        <name>command_queue</name></param>
            <param><type>cl_command_queue_properties</type>             <name>properties</name></param>
            <param><type>cl_bool</type>                                 <name>enable</name></param>
            <param><type>cl_command_queue_properties</type>*            <name>old_properties</name></param>
        </command>
        <command prefix="CL_EXT_PREFIX__VERSION_1_1_DEPRECATED" suffix="CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED">
            <proto><type>cl_mem</type>                                  <name>clCreateImage2D</name></proto>
            <param><type>cl_context</type>                              <name>context</name></param>
            <param><type>cl_mem_flags</type>                            <name>flags</name></param>
            <param>const <type>cl_image_format</type>*                  <name>image_format</name></param>
            <param><type>size_t</type>                                  <name>image_width</name></param>
            <param><type>size_t</type>                                  <name>image_height</name></param>
            <param><type>size_t</type>                                  <name>image_row_pitch</name></param>
            <param><type>void</type>*                                   <name>host_ptr</name></param>
            <param><type>cl_int</type>*                                 <name>errcode_ret</name></param>
        </command>
        <command prefix="CL_EXT_PREFIX__VERSION_1_1_DEPRECATED" suffix="CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED">
            <proto><type>cl_mem</type> <name>clCreateImage3D</name></proto>
            <param><type>cl_context</type>                              <name>context</name></param>
            <param><type>cl_mem_flags</type>                            <name>flags</name></param>
            <param>const <type>cl_image_format</type>*                  <name>image_format</name></param>
            <param><type>size_t</type>                                  <name>image_width</name></param>
            <param><type>size_t</type>                                  <name>image_height</name></param>
            <param><type>size_t</type>                                  <name>image_depth</name></param>
            <param><type>size_t</type>                                  <name>image_row_pitch</name></param>
            <param><type>size_t</type>                                  <name>image_slice_pitch</name></param>
            <param><type>void</type>*                                   <name>host_ptr</name></param>
            <param><type>cl_int</type>*                                 <name>errcode_ret</name></param>
        </command>
        <command prefix="CL_EXT_PREFIX__VERSION_1_1_DEPRECATED" suffix="CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED">
            <proto><type>cl_int</type> <name>clEnqueueMarker</name></proto>
            <param><type>cl_command_queue</type>                        <name>command_queue</name></param>
            <param><type>cl_event</type>*                               <name>event</name></param>
        </command>
        <command prefix="CL_EXT_PREFIX__VERSION_1_1_DEPRECATED" suffix="CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED">
            <proto><type>cl_int</type> <name>clEnqueueWaitForEvents</name></proto>
            <param><type>cl_command_queue</type>                        <name>command_queue</name></param>
            <param><type>cl_uint</type>                                 <name>num_events</name></param>
            <param>const <type>cl_event</type>*                         <name>event_list</name></param>
        </command>
        <command prefix="CL_EXT_PREFIX__VERSION_1_1_DEPRECATED" suffix="CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED">
            <proto><type>cl_int</type> <name>clEnqueueBarrier</name></proto>
            <param><type>cl_command_queue</type>                        <name>command_queue</name></param>
        </command>
        <command prefix="CL_EXT_PREFIX__VERSION_1_1_DEPRECATED" suffix="CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED">
            <proto><type>cl_int</type> <name>clUnloadCompiler</name></proto>
            <param><type>void</type>                                    </param>
        </command>
        <command prefix="CL_EXT_PREFIX__VERSION_1_1_DEPRECATED" suffix="CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED">
            <proto><type>void</type>*  <name>clGetExtensionFunctionAddress</name></proto>
            <param>const <type>char</type>*  <name>func_name</name></param>
        </command>
        <command prefix="CL_EXT_PREFIX__VERSION_1_1_DEPRECATED" suffix="CL_EXT_SUFFIX__VERSION_1_2_DEPRECATED">
            <proto><type>cl_command_queue</type> <name>clCreateCommandQueue</name></proto>
            <param><type>cl_context</type>                              <name>context</name></param>
            <param><type>cl_device_id</type>                            <name>device</name></param>
            <param><type>cl_command_queue_properties</type>             <name>properties</name></param>
            <param><type>cl_int</type>*                                 <name>errcode_ret</name></param>
        </command>
        <command prefix="CL_EXT_PREFIX__VERSION_1_1_DEPRECATED" suffix="CL_EXT_SUFFIX__VERSION_1_2_DEPRECATED">
            <proto><type>cl_sampler</type> <name>clCreateSampler</name></proto>
            <param><type>cl_context</type>                              <name>context</name></param>
            <param><type>cl_bool</type>                                 <name>normalized_coords</name></param>
            <param><type>cl_addressing_mode</type>                      <name>addressing_mode</name></param>
            <param><type>cl_filter_mode</type>                          <name>filter_mode</name></param>
            <param><type>cl_int</type>*                                 <name>errcode_ret</name></param>
        </command>
        <command prefix="CL_EXT_PREFIX__VERSION_1_1_DEPRECATED" suffix="CL_EXT_SUFFIX__VERSION_1_2_DEPRECATED">
            <proto><type>cl_int</type> <name>clEnqueueTask</name></proto>
            <param><type>cl_command_queue</type>                        <name>command_queue</name></param>
            <param><type>cl_kernel</type>                               <name>kernel</name></param>
            <param><type>cl_uint</type>                                 <name>num_events_in_wait_list</name></param>
            <param>const <type>cl_event</type>*                         <name>event_wait_list</name></param>
            <param><type>cl_event</type>*                               <name>event</name></param>
        </command>
        <command>
            <proto><type>cl_int</type>                                  <name>clGetLayerInfo</name></proto>
            <param><type>size_t</type>                                  <name>param_value_size</name></param>
            <param><type>cl_layer_info</type>                           <name>param_name</name></param>
            <param><type>void</type>*                                   <name>param_value</name></param>
            <param><type>size_t</type>*                                 <name>param_value_size_ret</name></param>
        </command>
        <command>
            <proto><type>cl_int</type>                                  <name>clInitLayer</name></proto>
            <param><type>cl_uint</type>                                 <name>num_entries</name></param>
            <param>const <type>cl_icd_dispatch</type>*                  <name>target_dispatch</name></param>
            <param><type>cl_uint</type>*                                <name>num_entries_ret</name></param>
            <param>const <type>cl_icd_dispatch</type>**                 <name>layer_dispatch</name></param>
        </command>
    </commands>

    <!-- SECTION: OpenCL API interface definitions -->
    <feature api="opencl" name="CL_VERSION_1_0" number="1.0" comment="OpenCL core API interface definitions">
        <require comment="Header boilerplate">
            <type name="CL/cl_version.h"/>
            <type name="CL/cl_platform.h"/>
        </require>
        <require comment="API types">
            <type name="cl_platform_id"/>
            <type name="cl_device_id"/>
            <type name="cl_context"/>
            <type name="cl_command_queue"/>
            <type name="cl_mem"/>
            <type name="cl_program"/>
            <type name="cl_kernel"/>
            <type name="cl_event"/>
            <type name="cl_sampler"/>
            <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."/>
            <type name="cl_bitfield"/>
            <type name="cl_device_type"/>
            <type name="cl_platform_info"/>
            <type name="cl_device_info"/>
            <type name="cl_device_fp_config"/>
            <type name="cl_device_mem_cache_type"/>
            <type name="cl_device_local_mem_type"/>
            <type name="cl_device_exec_capabilities"/>
            <type name="cl_command_queue_properties"/>
            <type name="cl_context_properties"/>
            <type name="cl_context_info"/>
            <type name="cl_command_queue_info"/>
            <type name="cl_channel_order"/>
            <type name="cl_channel_type"/>
            <type name="cl_mem_flags"/>
            <type name="cl_mem_object_type"/>
            <type name="cl_mem_info"/>
            <type name="cl_image_info"/>
            <type name="cl_addressing_mode"/>
            <type name="cl_filter_mode"/>
            <type name="cl_sampler_info"/>
            <type name="cl_map_flags"/>
            <type name="cl_program_info"/>
            <type name="cl_program_build_info"/>
            <type name="cl_build_status"/>
            <type name="cl_kernel_info"/>
            <type name="cl_kernel_work_group_info"/>
            <type name="cl_event_info"/>
            <type name="cl_command_type"/>
            <type name="cl_profiling_info"/>
            <type name="cl_image_format"/>
            <type name="cl_buffer_region"/>
        </require>
        <require comment="Constants">
            <enum name="CL_CHAR_BIT"/>
            <enum name="CL_CHAR_MAX"/>
            <enum name="CL_CHAR_MIN"/>
            <enum name="CL_UCHAR_MAX"/>
            <enum name="CL_SCHAR_MAX"/>
            <enum name="CL_SCHAR_MIN"/>
            <enum name="CL_SHRT_MAX"/>
            <enum name="CL_SHRT_MIN"/>
            <enum name="CL_USHRT_MAX"/>
            <enum name="CL_INT_MAX"/>
            <enum name="CL_INT_MIN"/>
            <enum name="CL_UINT_MAX"/>
            <enum name="CL_LONG_MAX"/>
            <enum name="CL_LONG_MIN"/>
            <enum name="CL_ULONG_MAX"/>
            <enum name="CL_FLT_DIG"/>
            <enum name="CL_FLT_MANT_DIG"/>
            <enum name="CL_FLT_MAX_10_EXP"/>
            <enum name="CL_FLT_MAX_EXP"/>
            <enum name="CL_FLT_MIN_10_EXP"/>
            <enum name="CL_FLT_MIN_EXP"/>
            <enum name="CL_FLT_RADIX"/>
            <enum name="CL_FLT_MAX"/>
            <enum name="CL_FLT_MIN"/>
            <enum name="CL_FLT_EPSILON"/>
            <enum name="CL_DBL_DIG"/>
            <enum name="CL_DBL_MANT_DIG"/>
            <enum name="CL_DBL_MAX_10_EXP"/>
            <enum name="CL_DBL_MAX_EXP"/>
            <enum name="CL_DBL_MIN_10_EXP"/>
            <enum name="CL_DBL_MIN_EXP"/>
            <enum name="CL_DBL_RADIX"/>
            <enum name="CL_DBL_MAX"/>
            <enum name="CL_DBL_MIN"/>
            <enum name="CL_DBL_EPSILON"/>
            <enum name="CL_NAN"/>
            <enum name="CL_HUGE_VALF"/>
            <enum name="CL_HUGE_VAL"/>
            <enum name="CL_MAXFLOAT"/>
            <enum name="CL_INFINITY"/>
        </require>
        <require comment="Error codes">
            <enum name="CL_SUCCESS"/>
            <enum name="CL_DEVICE_NOT_FOUND"/>
            <enum name="CL_DEVICE_NOT_AVAILABLE"/>
            <enum name="CL_COMPILER_NOT_AVAILABLE"/>
            <enum name="CL_MEM_OBJECT_ALLOCATION_FAILURE"/>
            <enum name="CL_OUT_OF_RESOURCES"/>
            <enum name="CL_OUT_OF_HOST_MEMORY"/>
            <enum name="CL_PROFILING_INFO_NOT_AVAILABLE"/>
            <enum name="CL_MEM_COPY_OVERLAP"/>
            <enum name="CL_IMAGE_FORMAT_MISMATCH"/>
            <enum name="CL_IMAGE_FORMAT_NOT_SUPPORTED"/>
            <enum name="CL_BUILD_PROGRAM_FAILURE"/>
            <enum name="CL_MAP_FAILURE"/>
            <enum name="CL_INVALID_VALUE"/>
            <enum name="CL_INVALID_DEVICE_TYPE"/>
            <enum name="CL_INVALID_PLATFORM"/>
            <enum name="CL_INVALID_DEVICE"/>
            <enum name="CL_INVALID_CONTEXT"/>
            <enum name="CL_INVALID_QUEUE_PROPERTIES"/>
            <enum name="CL_INVALID_COMMAND_QUEUE"/>
            <enum name="CL_INVALID_HOST_PTR"/>
            <enum name="CL_INVALID_MEM_OBJECT"/>
            <enum name="CL_INVALID_IMAGE_FORMAT_DESCRIPTOR"/>
            <enum name="CL_INVALID_IMAGE_SIZE"/>
            <enum name="CL_INVALID_SAMPLER"/>
            <enum name="CL_INVALID_BINARY"/>
            <enum name="CL_INVALID_BUILD_OPTIONS"/>
            <enum name="CL_INVALID_PROGRAM"/>
            <enum name="CL_INVALID_PROGRAM_EXECUTABLE"/>
            <enum name="CL_INVALID_KERNEL_NAME"/>
            <enum name="CL_INVALID_KERNEL_DEFINITION"/>
            <enum name="CL_INVALID_KERNEL"/>
            <enum name="CL_INVALID_ARG_INDEX"/>
            <enum name="CL_INVALID_ARG_VALUE"/>
            <enum name="CL_INVALID_ARG_SIZE"/>
            <enum name="CL_INVALID_KERNEL_ARGS"/>
            <enum name="CL_INVALID_WORK_DIMENSION"/>
            <enum name="CL_INVALID_WORK_GROUP_SIZE"/>
            <enum name="CL_INVALID_WORK_ITEM_SIZE"/>
            <enum name="CL_INVALID_GLOBAL_OFFSET"/>
            <enum name="CL_INVALID_EVENT_WAIT_LIST"/>
            <enum name="CL_INVALID_EVENT"/>
            <enum name="CL_INVALID_OPERATION"/>
            <enum name="CL_INVALID_GL_OBJECT"/>
            <enum name="CL_INVALID_BUFFER_SIZE"/>
            <enum name="CL_INVALID_MIP_LEVEL"/>
            <enum name="CL_INVALID_GLOBAL_WORK_SIZE"/>
        </require>
        <require comment="cl_bool">
            <enum name="CL_FALSE"/>
            <enum name="CL_TRUE"/>
        </require>
        <require comment="cl_platform_info">
            <enum name="CL_PLATFORM_PROFILE"/>
            <enum name="CL_PLATFORM_VERSION"/>
            <enum name="CL_PLATFORM_NAME"/>
            <enum name="CL_PLATFORM_VENDOR"/>
            <enum name="CL_PLATFORM_EXTENSIONS"/>
        </require>
        <require comment="cl_device_type - bitfield">
            <enum name="CL_DEVICE_TYPE_DEFAULT"/>
            <enum name="CL_DEVICE_TYPE_CPU"/>
            <enum name="CL_DEVICE_TYPE_GPU"/>
            <enum name="CL_DEVICE_TYPE_ACCELERATOR"/>
            <enum name="CL_DEVICE_TYPE_ALL"/>
        </require>
        <require comment="cl_device_info">
            <enum name="CL_DEVICE_TYPE"/>
            <enum name="CL_DEVICE_VENDOR_ID"/>
            <enum name="CL_DEVICE_MAX_COMPUTE_UNITS"/>
            <enum name="CL_DEVICE_MAX_WORK_ITEM_DIMENSIONS"/>
            <enum name="CL_DEVICE_MAX_WORK_GROUP_SIZE"/>
            <enum name="CL_DEVICE_MAX_WORK_ITEM_SIZES"/>
            <enum name="CL_DEVICE_PREFERRED_VECTOR_WIDTH_CHAR"/>
            <enum name="CL_DEVICE_PREFERRED_VECTOR_WIDTH_SHORT"/>
            <enum name="CL_DEVICE_PREFERRED_VECTOR_WIDTH_INT"/>
            <enum name="CL_DEVICE_PREFERRED_VECTOR_WIDTH_LONG"/>
            <enum name="CL_DEVICE_PREFERRED_VECTOR_WIDTH_FLOAT"/>
            <enum name="CL_DEVICE_PREFERRED_VECTOR_WIDTH_DOUBLE"/>
            <enum name="CL_DEVICE_MAX_CLOCK_FREQUENCY"/>
            <enum name="CL_DEVICE_ADDRESS_BITS"/>
            <enum name="CL_DEVICE_MAX_READ_IMAGE_ARGS"/>
            <enum name="CL_DEVICE_MAX_WRITE_IMAGE_ARGS"/>
            <enum name="CL_DEVICE_MAX_MEM_ALLOC_SIZE"/>
            <enum name="CL_DEVICE_IMAGE2D_MAX_WIDTH"/>
            <enum name="CL_DEVICE_IMAGE2D_MAX_HEIGHT"/>
            <enum name="CL_DEVICE_IMAGE3D_MAX_WIDTH"/>
            <enum name="CL_DEVICE_IMAGE3D_MAX_HEIGHT"/>
            <enum name="CL_DEVICE_IMAGE3D_MAX_DEPTH"/>
            <enum name="CL_DEVICE_IMAGE_SUPPORT"/>
            <enum name="CL_DEVICE_MAX_PARAMETER_SIZE"/>
            <enum name="CL_DEVICE_MAX_SAMPLERS"/>
            <enum name="CL_DEVICE_MEM_BASE_ADDR_ALIGN"/>
            <enum name="CL_DEVICE_SINGLE_FP_CONFIG"/>
            <enum name="CL_DEVICE_GLOBAL_MEM_CACHE_TYPE"/>
            <enum name="CL_DEVICE_GLOBAL_MEM_CACHELINE_SIZE"/>
            <enum name="CL_DEVICE_GLOBAL_MEM_CACHE_SIZE"/>
            <enum name="CL_DEVICE_GLOBAL_MEM_SIZE"/>
            <enum name="CL_DEVICE_MAX_CONSTANT_BUFFER_SIZE"/>
            <enum name="CL_DEVICE_MAX_CONSTANT_ARGS"/>
            <enum name="CL_DEVICE_LOCAL_MEM_TYPE"/>
            <enum name="CL_DEVICE_LOCAL_MEM_SIZE"/>
            <enum name="CL_DEVICE_ERROR_CORRECTION_SUPPORT"/>
            <enum name="CL_DEVICE_PROFILING_TIMER_RESOLUTION"/>
            <enum name="CL_DEVICE_ENDIAN_LITTLE"/>
            <enum name="CL_DEVICE_AVAILABLE"/>
            <enum name="CL_DEVICE_COMPILER_AVAILABLE"/>
            <enum name="CL_DEVICE_EXECUTION_CAPABILITIES"/>
            <enum name="CL_DEVICE_NAME"/>
            <enum name="CL_DEVICE_VENDOR"/>
            <enum name="CL_DRIVER_VERSION"/>
            <enum name="CL_DEVICE_PROFILE"/>
            <enum name="CL_DEVICE_VERSION"/>
            <enum name="CL_DEVICE_EXTENSIONS"/>
            <enum name="CL_DEVICE_PLATFORM"/>
        </require>
        <require comment="cl_device_fp_config - bitfield">
            <enum name="CL_FP_DENORM"/>
            <enum name="CL_FP_INF_NAN"/>
            <enum name="CL_FP_ROUND_TO_NEAREST"/>
            <enum name="CL_FP_ROUND_TO_ZERO"/>
            <enum name="CL_FP_ROUND_TO_INF"/>
            <enum name="CL_FP_FMA"/>
        </require>
        <require comment="cl_device_mem_cache_type">
            <enum name="CL_NONE"/>
            <enum name="CL_READ_ONLY_CACHE"/>
            <enum name="CL_READ_WRITE_CACHE"/>
        </require>
        <require comment="cl_device_local_mem_type">
            <enum name="CL_LOCAL"/>
            <enum name="CL_GLOBAL"/>
        </require>
        <require comment="cl_device_exec_capabilities - bitfield">
            <enum name="CL_EXEC_KERNEL"/>
            <enum name="CL_EXEC_NATIVE_KERNEL"/>
        </require>
        <require comment="cl_command_queue_properties - bitfield">
            <enum name="CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE"/>
            <enum name="CL_QUEUE_PROFILING_ENABLE"/>
        </require>
        <require comment="cl_context_info">
            <enum name="CL_CONTEXT_REFERENCE_COUNT"/>
            <enum name="CL_CONTEXT_DEVICES"/>
            <enum name="CL_CONTEXT_PROPERTIES"/>
        </require>
        <require comment="cl_context_properties">
            <enum name="CL_CONTEXT_PLATFORM"/>
        </require>
        <require comment="cl_command_queue_info">
            <enum name="CL_QUEUE_CONTEXT"/>
            <enum name="CL_QUEUE_DEVICE"/>
            <enum name="CL_QUEUE_REFERENCE_COUNT"/>
            <enum name="CL_QUEUE_PROPERTIES"/>
        </require>
        <require comment="cl_mem_flags and cl_svm_mem_flags - bitfield">
            <enum name="CL_MEM_READ_WRITE"/>
            <enum name="CL_MEM_WRITE_ONLY"/>
            <enum name="CL_MEM_READ_ONLY"/>
            <enum name="CL_MEM_USE_HOST_PTR"/>
            <enum name="CL_MEM_ALLOC_HOST_PTR"/>
            <enum name="CL_MEM_COPY_HOST_PTR"/>
        </require>
        <require comment="cl_profiling_info">
            <enum name="CL_PROFILING_COMMAND_QUEUED"/>
            <enum name="CL_PROFILING_COMMAND_SUBMIT"/>
            <enum name="CL_PROFILING_COMMAND_START"/>
            <enum name="CL_PROFILING_COMMAND_END"/>
        </require>
        <require comment="cl_channel_order">
            <enum name="CL_R"/>
            <enum name="CL_A"/>
            <enum name="CL_RG"/>
            <enum name="CL_RA"/>
            <enum name="CL_RGB"/>
            <enum name="CL_RGBA"/>
            <enum name="CL_BGRA"/>
            <enum name="CL_ARGB"/>
            <enum name="CL_INTENSITY"/>
            <enum name="CL_LUMINANCE"/>
        </require>
        <require comment="cl_channel_type">
            <enum name="CL_SNORM_INT8"/>
            <enum name="CL_SNORM_INT16"/>
            <enum name="CL_UNORM_INT8"/>
            <enum name="CL_UNORM_INT16"/>
            <enum name="CL_UNORM_SHORT_565"/>
            <enum name="CL_UNORM_SHORT_555"/>
            <enum name="CL_UNORM_INT_101010"/>
            <enum name="CL_SIGNED_INT8"/>
            <enum name="CL_SIGNED_INT16"/>
            <enum name="CL_SIGNED_INT32"/>
            <enum name="CL_UNSIGNED_INT8"/>
            <enum name="CL_UNSIGNED_INT16"/>
            <enum name="CL_UNSIGNED_INT32"/>
            <enum name="CL_HALF_FLOAT"/>
            <enum name="CL_FLOAT"/>
        </require>
        <require comment="cl_mem_object_type">
            <enum name="CL_MEM_OBJECT_BUFFER"/>
            <enum name="CL_MEM_OBJECT_IMAGE2D"/>
            <enum name="CL_MEM_OBJECT_IMAGE3D"/>
        </require>
        <require comment="cl_mem_info">
            <enum name="CL_MEM_TYPE"/>
            <enum name="CL_MEM_FLAGS"/>
            <enum name="CL_MEM_SIZE"/>
            <enum name="CL_MEM_HOST_PTR"/>
            <enum name="CL_MEM_MAP_COUNT"/>
            <enum name="CL_MEM_REFERENCE_COUNT"/>
            <enum name="CL_MEM_CONTEXT"/>
        </require>
        <require comment="cl_image_info">
            <enum name="CL_IMAGE_FORMAT"/>
            <enum name="CL_IMAGE_ELEMENT_SIZE"/>
            <enum name="CL_IMAGE_ROW_PITCH"/>
            <enum name="CL_IMAGE_SLICE_PITCH"/>
            <enum name="CL_IMAGE_WIDTH"/>
            <enum name="CL_IMAGE_HEIGHT"/>
            <enum name="CL_IMAGE_DEPTH"/>
        </require>
        <require comment="cl_addressing_mode">
            <enum name="CL_ADDRESS_NONE"/>
            <enum name="CL_ADDRESS_CLAMP_TO_EDGE"/>
            <enum name="CL_ADDRESS_CLAMP"/>
            <enum name="CL_ADDRESS_REPEAT"/>
        </require>
        <require comment="cl_filter_mode">
            <enum name="CL_FILTER_NEAREST"/>
            <enum name="CL_FILTER_LINEAR"/>
        </require>
        <require comment="cl_sampler_info">
            <enum name="CL_SAMPLER_REFERENCE_COUNT"/>
            <enum name="CL_SAMPLER_CONTEXT"/>
            <enum name="CL_SAMPLER_NORMALIZED_COORDS"/>
            <enum name="CL_SAMPLER_ADDRESSING_MODE"/>
            <enum name="CL_SAMPLER_FILTER_MODE"/>
        </require>
        <require comment="cl_map_flags - bitfield">
            <enum name="CL_MAP_READ"/>
            <enum name="CL_MAP_WRITE"/>
        </require>
        <require comment="cl_program_info">
            <enum name="CL_PROGRAM_REFERENCE_COUNT"/>
            <enum name="CL_PROGRAM_CONTEXT"/>
            <enum name="CL_PROGRAM_NUM_DEVICES"/>
            <enum name="CL_PROGRAM_DEVICES"/>
            <enum name="CL_PROGRAM_SOURCE"/>
            <enum name="CL_PROGRAM_BINARY_SIZES"/>
            <enum name="CL_PROGRAM_BINARIES"/>
        </require>
        <require comment="cl_program_build_info">
            <enum name="CL_PROGRAM_BUILD_STATUS"/>
            <enum name="CL_PROGRAM_BUILD_OPTIONS"/>
            <enum name="CL_PROGRAM_BUILD_LOG"/>
        </require>
        <require comment="cl_build_status">
            <enum name="CL_BUILD_SUCCESS"/>
            <enum name="CL_BUILD_NONE"/>
            <enum name="CL_BUILD_ERROR"/>
            <enum name="CL_BUILD_IN_PROGRESS"/>
        </require>
        <require comment="cl_kernel_info">
            <enum name="CL_KERNEL_FUNCTION_NAME"/>
            <enum name="CL_KERNEL_NUM_ARGS"/>
            <enum name="CL_KERNEL_REFERENCE_COUNT"/>
            <enum name="CL_KERNEL_CONTEXT"/>
            <enum name="CL_KERNEL_PROGRAM"/>
        </require>
        <require comment="cl_kernel_work_group_info">
            <enum name="CL_KERNEL_WORK_GROUP_SIZE"/>
            <enum name="CL_KERNEL_COMPILE_WORK_GROUP_SIZE"/>
            <enum name="CL_KERNEL_LOCAL_MEM_SIZE"/>
            <enum name="CL_KERNEL_PREFERRED_WORK_GROUP_SIZE_MULTIPLE"/>
            <enum name="CL_KERNEL_PRIVATE_MEM_SIZE"/>
        </require>
        <require comment="cl_event_info">
            <enum name="CL_EVENT_COMMAND_QUEUE"/>
            <enum name="CL_EVENT_COMMAND_TYPE"/>
            <enum name="CL_EVENT_REFERENCE_COUNT"/>
            <enum name="CL_EVENT_COMMAND_EXECUTION_STATUS"/>
        </require>
        <require comment="cl_command_type">
            <enum name="CL_COMMAND_NDRANGE_KERNEL"/>
            <enum name="CL_COMMAND_TASK"/>
            <enum name="CL_COMMAND_NATIVE_KERNEL"/>
            <enum name="CL_COMMAND_READ_BUFFER"/>
            <enum name="CL_COMMAND_WRITE_BUFFER"/>
            <enum name="CL_COMMAND_COPY_BUFFER"/>
            <enum name="CL_COMMAND_READ_IMAGE"/>
            <enum name="CL_COMMAND_WRITE_IMAGE"/>
            <enum name="CL_COMMAND_COPY_IMAGE"/>
            <enum name="CL_COMMAND_COPY_IMAGE_TO_BUFFER"/>
            <enum name="CL_COMMAND_COPY_BUFFER_TO_IMAGE"/>
            <enum name="CL_COMMAND_MAP_BUFFER"/>
            <enum name="CL_COMMAND_MAP_IMAGE"/>
            <enum name="CL_COMMAND_UNMAP_MEM_OBJECT"/>
            <enum name="CL_COMMAND_MARKER"/>
            <enum name="CL_COMMAND_ACQUIRE_GL_OBJECTS"/>
            <enum name="CL_COMMAND_RELEASE_GL_OBJECTS"/>
        </require>
        <require comment="command execution status">
            <enum name="CL_COMPLETE"/>
            <enum name="CL_RUNNING"/>
            <enum name="CL_SUBMITTED"/>
            <enum name="CL_QUEUED"/>
        </require>
        <require comment="Platform APIs">
            <command name="clGetPlatformIDs"/>
            <command name="clGetPlatformInfo"/>
        </require>
        <require comment="Device APIs">
            <command name="clGetDeviceIDs"/>
            <command name="clGetDeviceInfo"/>
        </require>
        <require comment="Context APIs">
            <command name="clCreateContext"/>
            <command name="clCreateContextFromType"/>
            <command name="clRetainContext"/>
            <command name="clReleaseContext"/>
            <command name="clGetContextInfo"/>
        </require>
        <require comment="Command Queue APIs">
            <command name="clRetainCommandQueue"/>
            <command name="clReleaseCommandQueue"/>
            <command name="clGetCommandQueueInfo"/>
        </require>
        <require comment="Memory Object APIs">
            <command name="clCreateBuffer"/>
            <command name="clRetainMemObject"/>
            <command name="clReleaseMemObject"/>
            <command name="clGetSupportedImageFormats"/>
            <command name="clGetMemObjectInfo"/>
            <command name="clGetImageInfo"/>
        </require>
        <require comment="Sampler APIs">
            <command name="clRetainSampler"/>
            <command name="clReleaseSampler"/>
            <command name="clGetSamplerInfo"/>
        </require>
        <require comment="Program Object APIs">
            <command name="clCreateProgramWithSource"/>
            <command name="clCreateProgramWithBinary"/>
            <command name="clRetainProgram"/>
            <command name="clReleaseProgram"/>
            <command name="clBuildProgram"/>
            <command name="clGetProgramInfo"/>
            <command name="clGetProgramBuildInfo"/>
        </require>
        <require comment="Kernel Object APIs">
            <command name="clCreateKernel"/>
            <command name="clCreateKernelsInProgram"/>
            <command name="clRetainKernel"/>
            <command name="clReleaseKernel"/>
            <command name="clSetKernelArg"/>
            <command name="clGetKernelInfo"/>
            <command name="clGetKernelWorkGroupInfo"/>
        </require>
        <require comment="Event Object APIs">
            <command name="clWaitForEvents"/>
            <command name="clGetEventInfo"/>
            <command name="clRetainEvent"/>
            <command name="clReleaseEvent"/>
        </require>
        <require comment="Profiling APIs">
            <command name="clGetEventProfilingInfo"/>
        </require>
        <require comment="Flush and Finish APIs">
            <command name="clFlush"/>
            <command name="clFinish"/>
        </require>
        <require comment="Enqueued Commands APIs">
            <command name="clEnqueueReadBuffer"/>
            <command name="clEnqueueWriteBuffer"/>
            <command name="clEnqueueCopyBuffer"/>
            <command name="clEnqueueReadImage"/>
            <command name="clEnqueueWriteImage"/>
            <command name="clEnqueueCopyImage"/>
            <command name="clEnqueueCopyImageToBuffer"/>
            <command name="clEnqueueCopyBufferToImage"/>
            <command name="clEnqueueMapBuffer"/>
            <command name="clEnqueueMapImage"/>
            <command name="clEnqueueUnmapMemObject"/>
            <command name="clEnqueueNDRangeKernel"/>
            <command name="clEnqueueNativeKernel"/>
        </require>
        <require comment="OpenCL 1.0 APIs that were deprecated in OpenCL 1.1">
            <comment>
            #ifdef CL_USE_DEPRECATED_OPENCL_1_0_APIS
                /*
                 *  WARNING:
                 *     This API introduces mutable state into the OpenCL implementation. It has been REMOVED
                 *  to better facilitate thread safety.  The 1.0 API is not thread safe. It is not tested by the
                 *  OpenCL 1.1 conformance test, and consequently may not work or may not work dependably.
                 *  It is likely to be non-performant. Use of this API is not advised. Use at your own risk.
                 *
                 *  Software developers previously relying on this API are instructed to set the command queue
                 *  properties when creating the queue, instead.
                 */
            #endif /* CL_USE_DEPRECATED_OPENCL_1_0_APIS */
            </comment>
            <command name="clSetCommandQueueProperty"/>
        </require>
        <require comment="OpenCL 1.0 APIs that were deprecated in OpenCL 1.2">
            <command name="clCreateImage2D"/>
            <command name="clCreateImage3D"/>
            <command name="clEnqueueMarker"/>
            <command name="clEnqueueWaitForEvents"/>
            <command name="clEnqueueBarrier"/>
            <command name="clUnloadCompiler"/>
            <command name="clGetExtensionFunctionAddress"/>
        </require>
        <require comment="OpenCL 1.0 cl_device_info enums that were deprecated in OpenCL 1.2">
            <enum name="CL_DEVICE_MIN_DATA_TYPE_ALIGN_SIZE"/>
        </require>
        <require comment="OpenCL 1.0 APIs that were deprecated in OpenCL 2.0">
            <command name="clCreateCommandQueue"/>
            <command name="clCreateSampler"/>
            <command name="clEnqueueTask"/>
        </require>
        <require comment="OpenCL 1.0 cl_device_info enums that were deprecated in OpenCL 2.0">
            <enum name="CL_DEVICE_QUEUE_PROPERTIES"/>
        </require>
    </feature>

    <feature api="opencl" name="CL_VERSION_1_1" number="1.1" comment="OpenCL core API interface definitions">
        <require>
            <type name="cl_buffer_create_type"/>
        </require>
        <require comment="Constants">
            <enum name="CL_NAN"/>
            <enum name="CL_HUGE_VALF"/>
            <enum name="CL_HUGE_VAL"/>
            <enum name="CL_MAXFLOAT"/>
            <enum name="CL_INFINITY"/>
        </require>
        <require comment="Error codes">
            <enum name="CL_MISALIGNED_SUB_BUFFER_OFFSET"/>
            <enum name="CL_EXEC_STATUS_ERROR_FOR_EVENTS_IN_WAIT_LIST"/>
            <enum name="CL_INVALID_PROPERTY"/>
        </require>
        <require comment="cl_device_info">
            <enum name="CL_DEVICE_PREFERRED_VECTOR_WIDTH_HALF"/>
            <enum name="CL_DEVICE_NATIVE_VECTOR_WIDTH_CHAR"/>
            <enum name="CL_DEVICE_NATIVE_VECTOR_WIDTH_SHORT"/>
            <enum name="CL_DEVICE_NATIVE_VECTOR_WIDTH_INT"/>
            <enum name="CL_DEVICE_NATIVE_VECTOR_WIDTH_LONG"/>
            <enum name="CL_DEVICE_NATIVE_VECTOR_WIDTH_FLOAT"/>
            <enum name="CL_DEVICE_NATIVE_VECTOR_WIDTH_DOUBLE"/>
            <enum name="CL_DEVICE_NATIVE_VECTOR_WIDTH_HALF"/>
        </require>
        <require comment="cl_device_fp_config - bitfield">
            <enum name="CL_FP_SOFT_FLOAT"/>
        </require>
        <require comment="cl_context_info">
            <enum name="CL_CONTEXT_NUM_DEVICES"/>
        </require>
        <require comment="cl_channel_order">
            <enum name="CL_Rx"/>
            <enum name="CL_RGx"/>
            <enum name="CL_RGBx"/>
        </require>
        <require comment="cl_mem_info">
            <enum name="CL_MEM_ASSOCIATED_MEMOBJECT"/>
            <enum name="CL_MEM_OFFSET"/>
        </require>
        <require comment="cl_addressing_mode">
            <enum name="CL_ADDRESS_MIRRORED_REPEAT"/>
        </require>
        <require comment="cl_event_info">
            <enum name="CL_EVENT_CONTEXT"/>
        </require>
        <require comment="cl_command_type">
            <enum name="CL_COMMAND_READ_BUFFER_RECT"/>
            <enum name="CL_COMMAND_WRITE_BUFFER_RECT"/>
            <enum name="CL_COMMAND_COPY_BUFFER_RECT"/>
            <enum name="CL_COMMAND_USER"/>
        </require>
        <require comment="cl_buffer_create_type">
            <enum name="CL_BUFFER_CREATE_TYPE_REGION"/>
        </require>
        <require comment="Memory Object APIs">
            <command name="clCreateSubBuffer"/>
            <command name="clSetMemObjectDestructorCallback"/>
        </require>
        <require comment="Event Object APIs">
            <command name="clCreateUserEvent"/>
            <command name="clSetUserEventStatus"/>
            <command name="clSetEventCallback"/>
        </require>
        <require comment="Enqueued Commands APIs">
            <command name="clEnqueueReadBufferRect"/>
            <command name="clEnqueueWriteBufferRect"/>
            <command name="clEnqueueCopyBufferRect"/>
        </require>
        <require comment="OpenCL 1.1 cl_device_info enums that were deprecated in OpenCL 2.0">
            <enum name="CL_DEVICE_HOST_UNIFIED_MEMORY"/>
        </require>
        <require comment="OpenCL 1.1 cl_device_info enums that were deprecated in OpenCL 3.0">
            <enum name="CL_DEVICE_OPENCL_C_VERSION"/>
        </require>
    </feature>

    <feature api="opencl" name="CL_VERSION_1_2" number="1.2" comment="OpenCL core API interface definitions">
        <require>
            <type name="cl_device_partition_property"/>
            <type name="cl_device_affinity_domain"/>
            <type name="cl_mem_migration_flags"/>
            <type name="cl_program_binary_type"/>
            <type name="cl_kernel_arg_info"/>
            <type name="cl_kernel_arg_address_qualifier"/>
            <type name="cl_kernel_arg_access_qualifier"/>
            <type name="cl_kernel_arg_type_qualifier"/>
            <type name="cl_image_desc"/>
        </require>
        <require comment="Constants">
            <enum name="CL_DBL_DIG"/>
            <enum name="CL_DBL_MANT_DIG"/>
            <enum name="CL_DBL_MAX_10_EXP"/>
            <enum name="CL_DBL_MAX_EXP"/>
            <enum name="CL_DBL_MIN_10_EXP"/>
            <enum name="CL_DBL_MIN_EXP"/>
            <enum name="CL_DBL_RADIX"/>
            <enum name="CL_DBL_MAX"/>
            <enum name="CL_DBL_MIN"/>
            <enum name="CL_DBL_EPSILON"/>
        </require>
        <require comment="Error codes">
            <enum name="CL_COMPILE_PROGRAM_FAILURE"/>
            <enum name="CL_LINKER_NOT_AVAILABLE"/>
            <enum name="CL_LINK_PROGRAM_FAILURE"/>
            <enum name="CL_DEVICE_PARTITION_FAILED"/>
            <enum name="CL_KERNEL_ARG_INFO_NOT_AVAILABLE"/>
            <enum name="CL_INVALID_IMAGE_DESCRIPTOR"/>
            <enum name="CL_INVALID_COMPILER_OPTIONS"/>
            <enum name="CL_INVALID_LINKER_OPTIONS"/>
            <enum name="CL_INVALID_DEVICE_PARTITION_COUNT"/>
        </require>
        <require comment="cl_command_type">
            <enum name="CL_COMMAND_BARRIER"/>
            <enum name="CL_COMMAND_MIGRATE_MEM_OBJECTS"/>
            <enum name="CL_COMMAND_FILL_BUFFER"/>
            <enum name="CL_COMMAND_FILL_IMAGE"/>
        </require>
        <require comment="cl_bool">
            <enum name="CL_BLOCKING"/>
            <enum name="CL_NON_BLOCKING"/>
        </require>
        <require comment="cl_device_type - bitfield">
            <enum name="CL_DEVICE_TYPE_CUSTOM"/>
        </require>
        <require comment="cl_device_info">
            <enum name="CL_DEVICE_DOUBLE_FP_CONFIG"/>
            <enum name="CL_DEVICE_LINKER_AVAILABLE"/>
            <enum name="CL_DEVICE_BUILT_IN_KERNELS"/>
            <enum name="CL_DEVICE_IMAGE_MAX_BUFFER_SIZE"/>
            <enum name="CL_DEVICE_IMAGE_MAX_ARRAY_SIZE"/>
            <enum name="CL_DEVICE_PARENT_DEVICE"/>
            <enum name="CL_DEVICE_PARTITION_MAX_SUB_DEVICES"/>
            <enum name="CL_DEVICE_PARTITION_PROPERTIES"/>
            <enum name="CL_DEVICE_PARTITION_AFFINITY_DOMAIN"/>
            <enum name="CL_DEVICE_PARTITION_TYPE"/>
            <enum name="CL_DEVICE_REFERENCE_COUNT"/>
            <enum name="CL_DEVICE_PREFERRED_INTEROP_USER_SYNC"/>
            <enum name="CL_DEVICE_PRINTF_BUFFER_SIZE"/>
        </require>
        <require comment="cl_device_fp_config - bitfield">
            <enum name="CL_FP_CORRECTLY_ROUNDED_DIVIDE_SQRT"/>
        </require>
        <require comment="cl_context_properties">
            <enum name="CL_CONTEXT_INTEROP_USER_SYNC"/>
        </require>
        <require comment="cl_device_partition_property">
            <enum name="CL_DEVICE_PARTITION_EQUALLY"/>
            <enum name="CL_DEVICE_PARTITION_BY_COUNTS"/>
            <enum name="CL_DEVICE_PARTITION_BY_COUNTS_LIST_END"/>
            <enum name="CL_DEVICE_PARTITION_BY_AFFINITY_DOMAIN"/>
        </require>
        <require comment="cl_device_affinity_domain">
            <enum name="CL_DEVICE_AFFINITY_DOMAIN_NUMA"/>
            <enum name="CL_DEVICE_AFFINITY_DOMAIN_L4_CACHE"/>
            <enum name="CL_DEVICE_AFFINITY_DOMAIN_L3_CACHE"/>
            <enum name="CL_DEVICE_AFFINITY_DOMAIN_L2_CACHE"/>
            <enum name="CL_DEVICE_AFFINITY_DOMAIN_L1_CACHE"/>
            <enum name="CL_DEVICE_AFFINITY_DOMAIN_NEXT_PARTITIONABLE"/>
        </require>
        <require comment="cl_mem_flags and cl_svm_mem_flags - bitfield">
            <enum name="CL_MEM_HOST_WRITE_ONLY"/>
            <enum name="CL_MEM_HOST_READ_ONLY"/>
            <enum name="CL_MEM_HOST_NO_ACCESS"/>
        </require>
        <require comment="cl_mem_migration_flags - bitfield">
            <enum name="CL_MIGRATE_MEM_OBJECT_HOST"/>
            <enum name="CL_MIGRATE_MEM_OBJECT_CONTENT_UNDEFINED"/>
        </require>
        <require comment="cl_mem_object_type">
            <enum name="CL_MEM_OBJECT_IMAGE2D_ARRAY"/>
            <enum name="CL_MEM_OBJECT_IMAGE1D"/>
            <enum name="CL_MEM_OBJECT_IMAGE1D_ARRAY"/>
            <enum name="CL_MEM_OBJECT_IMAGE1D_BUFFER"/>
        </require>
        <require comment="cl_image_info">
            <enum name="CL_IMAGE_ARRAY_SIZE"/>
            <enum name="CL_IMAGE_NUM_MIP_LEVELS"/>
            <enum name="CL_IMAGE_NUM_SAMPLES"/>
        </require>
        <require comment="cl_map_flags - bitfield">
            <enum name="CL_MAP_WRITE_INVALIDATE_REGION"/>
        </require>
        <require comment="cl_program_info">
            <enum name="CL_PROGRAM_NUM_KERNELS"/>
            <enum name="CL_PROGRAM_KERNEL_NAMES"/>
        </require>
        <require comment="cl_program_build_info">
            <enum name="CL_PROGRAM_BINARY_TYPE"/>
        </require>
        <require comment="cl_program_binary_type">
            <enum name="CL_PROGRAM_BINARY_TYPE_NONE"/>
            <enum name="CL_PROGRAM_BINARY_TYPE_COMPILED_OBJECT"/>
            <enum name="CL_PROGRAM_BINARY_TYPE_LIBRARY"/>
            <enum name="CL_PROGRAM_BINARY_TYPE_EXECUTABLE"/>
        </require>
        <require comment="cl_kernel_info">
            <enum name="CL_KERNEL_ATTRIBUTES"/>
        </require>
        <require comment="cl_kernel_arg_info">
            <enum name="CL_KERNEL_ARG_ADDRESS_QUALIFIER"/>
            <enum name="CL_KERNEL_ARG_ACCESS_QUALIFIER"/>
            <enum name="CL_KERNEL_ARG_TYPE_NAME"/>
            <enum name="CL_KERNEL_ARG_TYPE_QUALIFIER"/>
            <enum name="CL_KERNEL_ARG_NAME"/>
        </require>
        <require comment="cl_kernel_arg_address_qualifier">
            <enum name="CL_KERNEL_ARG_ADDRESS_GLOBAL"/>
            <enum name="CL_KERNEL_ARG_ADDRESS_LOCAL"/>
            <enum name="CL_KERNEL_ARG_ADDRESS_CONSTANT"/>
            <enum name="CL_KERNEL_ARG_ADDRESS_PRIVATE"/>
        </require>
        <require comment="cl_kernel_arg_access_qualifier">
            <enum name="CL_KERNEL_ARG_ACCESS_READ_ONLY"/>
            <enum name="CL_KERNEL_ARG_ACCESS_WRITE_ONLY"/>
            <enum name="CL_KERNEL_ARG_ACCESS_READ_WRITE"/>
            <enum name="CL_KERNEL_ARG_ACCESS_NONE"/>
        </require>
        <require comment="cl_kernel_arg_type_qualifier">
            <enum name="CL_KERNEL_ARG_TYPE_NONE"/>
            <enum name="CL_KERNEL_ARG_TYPE_CONST"/>
            <enum name="CL_KERNEL_ARG_TYPE_RESTRICT"/>
            <enum name="CL_KERNEL_ARG_TYPE_VOLATILE"/>
        </require>
        <require comment="cl_kernel_work_group_info">
            <enum name="CL_KERNEL_GLOBAL_WORK_SIZE"/>
        </require>
        <require comment="Platform APIs">
            <command name="clCreateSubDevices"/>
            <command name="clRetainDevice"/>
            <command name="clReleaseDevice"/>
        </require>
        <require comment="Memory Object APIs">
            <command name="clCreateImage"/>
        </require>
        <require comment="Program Object APIs">
            <command name="clCreateProgramWithBuiltInKernels"/>
            <command name="clCompileProgram"/>
            <command name="clLinkProgram"/>
            <command name="clUnloadPlatformCompiler"/>
        </require>
        <require comment="Kernel Object APIs">
            <command name="clGetKernelArgInfo"/>
        </require>
        <require comment="Enqueued Commands APIs">
            <command name="clEnqueueFillBuffer"/>
            <command name="clEnqueueFillImage"/>
            <command name="clEnqueueMigrateMemObjects"/>
            <command name="clEnqueueMarkerWithWaitList"/>
            <command name="clEnqueueBarrierWithWaitList"/>
        </require>
        <require comment="Extension function access">
            <command name="clGetExtensionFunctionAddressForPlatform"/>
        </require>
        <require comment="OpenCL 1.2 cl_image_info enums that were deprecated in OpenCL 2.0">
            <enum name="CL_IMAGE_BUFFER"/>
        </require>
    </feature>

    <feature api="opencl" name="CL_VERSION_2_0" number="2.0" comment="OpenCL core API interface definitions">
        <require>
            <type name="cl_device_svm_capabilities"/>
            <type name="cl_queue_properties"/>
            <type name="cl_svm_mem_flags"/>
            <type name="cl_pipe_properties"/>
            <type name="cl_pipe_info"/>
            <type name="cl_sampler_properties"/>
            <type name="cl_kernel_exec_info"/>
        </require>
        <require comment="Error codes">
            <enum name="CL_INVALID_PIPE_SIZE"/>
            <enum name="CL_INVALID_DEVICE_QUEUE"/>
        </require>
        <require comment="cl_device_info">
            <enum name="CL_DEVICE_QUEUE_ON_HOST_PROPERTIES"/>
            <enum name="CL_DEVICE_IMAGE_PITCH_ALIGNMENT"/>
            <enum name="CL_DEVICE_IMAGE_BASE_ADDRESS_ALIGNMENT"/>
            <enum name="CL_DEVICE_MAX_READ_WRITE_IMAGE_ARGS"/>
            <enum name="CL_DEVICE_MAX_GLOBAL_VARIABLE_SIZE"/>
            <enum name="CL_DEVICE_QUEUE_ON_DEVICE_PROPERTIES"/>
            <enum name="CL_DEVICE_QUEUE_ON_DEVICE_PREFERRED_SIZE"/>
            <enum name="CL_DEVICE_QUEUE_ON_DEVICE_MAX_SIZE"/>
            <enum name="CL_DEVICE_MAX_ON_DEVICE_QUEUES"/>
            <enum name="CL_DEVICE_MAX_ON_DEVICE_EVENTS"/>
            <enum name="CL_DEVICE_SVM_CAPABILITIES"/>
            <enum name="CL_DEVICE_GLOBAL_VARIABLE_PREFERRED_TOTAL_SIZE"/>
            <enum name="CL_DEVICE_MAX_PIPE_ARGS"/>
            <enum name="CL_DEVICE_PIPE_MAX_ACTIVE_RESERVATIONS"/>
            <enum name="CL_DEVICE_PIPE_MAX_PACKET_SIZE"/>
            <enum name="CL_DEVICE_PREFERRED_PLATFORM_ATOMIC_ALIGNMENT"/>
            <enum name="CL_DEVICE_PREFERRED_GLOBAL_ATOMIC_ALIGNMENT"/>
            <enum name="CL_DEVICE_PREFERRED_LOCAL_ATOMIC_ALIGNMENT"/>
        </require>
        <require comment="cl_command_queue_properties - bitfield">
            <enum name="CL_QUEUE_ON_DEVICE"/>
            <enum name="CL_QUEUE_ON_DEVICE_DEFAULT"/>
        </require>
        <require comment="cl_device_svm_capabilities">
            <enum name="CL_DEVICE_SVM_COARSE_GRAIN_BUFFER"/>
            <enum name="CL_DEVICE_SVM_FINE_GRAIN_BUFFER"/>
            <enum name="CL_DEVICE_SVM_FINE_GRAIN_SYSTEM"/>
            <enum name="CL_DEVICE_SVM_ATOMICS"/>
        </require>
        <require comment="cl_command_queue_info">
            <enum name="CL_QUEUE_SIZE"/>
        </require>
        <require comment="cl_mem_flags and cl_svm_mem_flags - bitfield">
            <enum name="CL_MEM_SVM_FINE_GRAIN_BUFFER"/>
            <enum name="CL_MEM_SVM_ATOMICS"/>
            <enum name="CL_MEM_KERNEL_READ_AND_WRITE"/>
        </require>
        <require comment="cl_channel_order">
            <enum name="CL_DEPTH"/>
            <enum name="CL_sRGB"/>
            <enum name="CL_sRGBx"/>
            <enum name="CL_sRGBA"/>
            <enum name="CL_sBGRA"/>
            <enum name="CL_ABGR"/>
        </require>
        <require comment="cl_mem_object_type">
            <enum name="CL_MEM_OBJECT_PIPE"/>
        </require>
        <require comment="cl_mem_info">
            <enum name="CL_MEM_USES_SVM_POINTER"/>
        </require>
        <require comment="cl_pipe_info">
            <enum name="CL_PIPE_PACKET_SIZE"/>
            <enum name="CL_PIPE_MAX_PACKETS"/>
        </require>
        <require comment="cl_sampler_info">
            <enum name="CL_SAMPLER_MIP_FILTER_MODE"/>
            <enum name="CL_SAMPLER_LOD_MIN"/>
            <enum name="CL_SAMPLER_LOD_MAX"/>
        </require>
        <require comment="cl_program_build_info">
            <enum name="CL_PROGRAM_BUILD_GLOBAL_VARIABLE_TOTAL_SIZE"/>
        </require>
        <require comment="cl_kernel_arg_type_qualifier">
            <enum name="CL_KERNEL_ARG_TYPE_PIPE"/>
        </require>
        <require comment="cl_kernel_exec_info">
            <enum name="CL_KERNEL_EXEC_INFO_SVM_PTRS"/>
            <enum name="CL_KERNEL_EXEC_INFO_SVM_FINE_GRAIN_SYSTEM"/>
        </require>
        <require comment="cl_command_type">
            <enum name="CL_COMMAND_SVM_FREE"/>
            <enum name="CL_COMMAND_SVM_MEMCPY"/>
            <enum name="CL_COMMAND_SVM_MEMFILL"/>
            <enum name="CL_COMMAND_SVM_MAP"/>
            <enum name="CL_COMMAND_SVM_UNMAP"/>
        </require>
        <require comment="cl_profiling_info">
            <enum name="CL_PROFILING_COMMAND_COMPLETE"/>
        </require>
        <require comment="Command Queue APIs">
            <command name="clCreateCommandQueueWithProperties"/>
        </require>
        <require comment="Pipe APIs">
            <command name="clCreatePipe"/>
            <command name="clGetPipeInfo"/>
        </require>
        <require comment="SVM Allocation APIs">
            <command name="clSVMAlloc"/>
            <command name="clSVMFree"/>
        </require>
        <require comment="Sampler APIs">
            <command name="clCreateSamplerWithProperties"/>
        </require>
        <require comment="Kernel Object APIs">
            <command name="clSetKernelArgSVMPointer"/>
            <command name="clSetKernelExecInfo"/>
        </require>
        <require comment="Enqueued Commands APIs">
            <command name="clEnqueueSVMFree"/>
            <command name="clEnqueueSVMMemcpy"/>
            <command name="clEnqueueSVMMemFill"/>
            <command name="clEnqueueSVMMap"/>
            <command name="clEnqueueSVMUnmap"/>
        </require>
    </feature>

    <feature api="opencl" name="CL_VERSION_2_1" number="2.1" comment="OpenCL core API interface definitions">
        <require>
            <type name="cl_kernel_sub_group_info"/>
        </require>
        <require comment="cl_platform_info">
            <enum name="CL_PLATFORM_HOST_TIMER_RESOLUTION"/>
        </require>
        <require comment="cl_device_info">
            <enum name="CL_DEVICE_IL_VERSION"/>
            <enum name="CL_DEVICE_MAX_NUM_SUB_GROUPS"/>
            <enum name="CL_DEVICE_SUB_GROUP_INDEPENDENT_FORWARD_PROGRESS"/>
        </require>
        <require comment="cl_command_queue_info">
            <enum name="CL_QUEUE_DEVICE_DEFAULT"/>
        </require>
        <require comment="cl_channel_type">
            <enum name="CL_UNORM_INT_101010_2"/>
        </require>
        <require comment="cl_program_info">
            <enum name="CL_PROGRAM_IL"/>
        </require>
        <require comment="cl_kernel_sub_group_info">
            <enum name="CL_KERNEL_MAX_NUM_SUB_GROUPS"/>
            <enum name="CL_KERNEL_COMPILE_NUM_SUB_GROUPS"/>
            <enum name="CL_KERNEL_MAX_SUB_GROUP_SIZE_FOR_NDRANGE"/>
            <enum name="CL_KERNEL_SUB_GROUP_COUNT_FOR_NDRANGE"/>
            <enum name="CL_KERNEL_LOCAL_SIZE_FOR_SUB_GROUP_COUNT"/>
        </require>
        <require comment="Platform APIs">
            <command name="clSetDefaultDeviceCommandQueue"/>
        </require>
        <require comment="Device APIs">
            <command name="clGetDeviceAndHostTimer"/>
            <command name="clGetHostTimer"/>
        </require>
        <require comment="Program Object APIs">
            <command name="clCreateProgramWithIL"/>
        </require>
        <require comment="Kernel Object APIs">
            <command name="clCloneKernel"/>
            <command name="clGetKernelSubGroupInfo"/>
        </require>
        <require comment="Enqueued Commands APIs">
            <command name="clEnqueueSVMMigrateMem"/>
        </require>
    </feature>

    <feature api="opencl" name="CL_VERSION_2_2" number="2.2" comment="OpenCL core API interface definitions">
        <require comment="Error codes">
            <enum name="CL_INVALID_SPEC_ID"/>
            <enum name="CL_MAX_SIZE_RESTRICTION_EXCEEDED"/>
        </require>
        <require comment="Program Object APIs">
            <command name="clSetProgramSpecializationConstant"/>
        </require>
        <require comment="OpenCL 2.2 Program Object APIs that were deprecated in OpenCL 3.0">
            <command name="clSetProgramReleaseCallback"/>
        </require>
        <require comment="OpenCL 2.2 cl_program_info enums that were deprecated in OpenCL 3.0">
            <enum name="CL_PROGRAM_SCOPE_GLOBAL_CTORS_PRESENT"/>
            <enum name="CL_PROGRAM_SCOPE_GLOBAL_DTORS_PRESENT"/>
        </require>
    </feature>

    <feature api="opencl" name="CL_VERSION_3_0" number="3.0" comment="OpenCL experimental API interface definitions">
        <require>
            <type name="cl_device_atomic_capabilities"/>
            <type name="cl_device_device_enqueue_capabilities"/>
            <type name="cl_khronos_vendor_id"/>
            <type name="cl_mem_properties"/>
            <type name="cl_version"/>
            <type name="cl_name_version"/>
        </require>
        <require comment="cl_device_atomic_capabilities - bitfield">
            <enum name="CL_DEVICE_ATOMIC_ORDER_RELAXED"/>
            <enum name="CL_DEVICE_ATOMIC_ORDER_ACQ_REL"/>
            <enum name="CL_DEVICE_ATOMIC_ORDER_SEQ_CST"/>
            <enum name="CL_DEVICE_ATOMIC_SCOPE_WORK_ITEM"/>
            <enum name="CL_DEVICE_ATOMIC_SCOPE_WORK_GROUP"/>
            <enum name="CL_DEVICE_ATOMIC_SCOPE_DEVICE"/>
            <enum name="CL_DEVICE_ATOMIC_SCOPE_ALL_DEVICES"/>
        </require>
        <require comment="cl_device_device_enqueue_capabilities - bitfield">
            <enum name="CL_DEVICE_QUEUE_SUPPORTED"/>
            <enum name="CL_DEVICE_QUEUE_REPLACEABLE_DEFAULT"/>
        </require>
        <require comment="cl_platform_info">
            <enum name="CL_PLATFORM_NUMERIC_VERSION"/>
            <enum name="CL_PLATFORM_EXTENSIONS_WITH_VERSION"/>
        </require>
        <require comment="cl_device_info">
            <enum name="CL_DEVICE_ATOMIC_MEMORY_CAPABILITIES"/>
            <enum name="CL_DEVICE_ATOMIC_FENCE_CAPABILITIES"/>
            <enum name="CL_DEVICE_NON_UNIFORM_WORK_GROUP_SUPPORT"/>
            <enum name="CL_DEVICE_OPENCL_C_ALL_VERSIONS"/>
            <enum name="CL_DEVICE_WORK_GROUP_COLLECTIVE_FUNCTIONS_SUPPORT"/>
            <enum name="CL_DEVICE_GENERIC_ADDRESS_SPACE_SUPPORT"/>
            <enum name="CL_DEVICE_OPENCL_C_FEATURES"/>
            <enum name="CL_DEVICE_DEVICE_ENQUEUE_CAPABILITIES"/>
            <enum name="CL_DEVICE_PIPE_SUPPORT"/>
            <enum name="CL_DEVICE_NUMERIC_VERSION"/>
            <enum name="CL_DEVICE_EXTENSIONS_WITH_VERSION"/>
            <enum name="CL_DEVICE_ILS_WITH_VERSION"/>
            <enum name="CL_DEVICE_BUILT_IN_KERNELS_WITH_VERSION"/>
            <enum name="CL_DEVICE_PREFERRED_WORK_GROUP_SIZE_MULTIPLE"/>
            <enum name="CL_DEVICE_LATEST_CONFORMANCE_VERSION_PASSED"/>
        </require>
        <require comment="cl_pipe_info">
            <enum name="CL_PIPE_PROPERTIES"/>
        </require>
        <require comment="cl_sampler_info">
            <enum name="CL_SAMPLER_PROPERTIES"/>
        </require>
        <require comment="cl_command_queue_info">
            <enum name="CL_QUEUE_PROPERTIES_ARRAY"/>
        </require>
        <require comment="cl_mem_info">
            <enum name="CL_MEM_PROPERTIES"/>
        </require>
        <require comment="cl_command_type">
            <enum name="CL_COMMAND_SVM_MIGRATE_MEM"/>
        </require>
        <require comment="Misc API enums">
            <enum name="CL_VERSION_MAJOR_BITS"/>
            <enum name="CL_VERSION_MINOR_BITS"/>
            <enum name="CL_VERSION_PATCH_BITS"/>
            <enum name="CL_NAME_VERSION_MAX_NAME_SIZE"/>
        </require>
        <require comment="Context APIs">
            <command name="clSetContextDestructorCallback"/>
        </require>
        <require comment="Memory Object APIs">
            <command name="clCreateBufferWithProperties"/>
            <command name="clCreateImageWithProperties"/>
        </require>
    </feature>

    <!-- SECTION: OpenCL extension interface definitions -->
    <extensions>
        <extension name="cl_khr_d3d10_sharing" supported="opencl">
            <require>
                <type name="d3d10.h"/>
                <type name="CL/cl.h"/>
                <type name="CL/cl_platform.h"/>
            </require>
            <require>
                <type name="cl_d3d10_device_source_khr"/>
                <type name="cl_d3d10_device_set_khr"/>
            </require>
            <require comment="Error codes">
                <enum name="CL_INVALID_D3D10_DEVICE_KHR"/>
                <enum name="CL_INVALID_D3D10_RESOURCE_KHR"/>
                <enum name="CL_D3D10_RESOURCE_ALREADY_ACQUIRED_KHR"/>
                <enum name="CL_D3D10_RESOURCE_NOT_ACQUIRED_KHR"/>
            </require>
            <require comment="cl_d3d10_device_source_khr">
                <enum name="CL_D3D10_DEVICE_KHR"/>
                <enum name="CL_D3D10_DXGI_ADAPTER_KHR"/>
            </require>
            <require comment="cl_d3d10_device_set_khr">
                <enum name="CL_PREFERRED_DEVICES_FOR_D3D10_KHR"/>
                <enum name="CL_ALL_DEVICES_FOR_D3D10_KHR"/>
            </require>
            <require comment="cl_context_info">
                <enum name="CL_CONTEXT_D3D10_DEVICE_KHR"/>
                <enum name="CL_CONTEXT_D3D10_PREFER_SHARED_RESOURCES_KHR"/>
            </require>
            <require comment="cl_mem_info">
                <enum name="CL_MEM_D3D10_RESOURCE_KHR"/>
            </require>
            <require comment="cl_image_info">
                <enum name="CL_IMAGE_D3D10_SUBRESOURCE_KHR"/>
            </require>
            <require comment="cl_command_type">
                <enum name="CL_COMMAND_ACQUIRE_D3D10_OBJECTS_KHR"/>
                <enum name="CL_COMMAND_RELEASE_D3D10_OBJECTS_KHR"/>
            </require>
            <require>
                <command name="clGetDeviceIDsFromD3D10KHR"/>
                <command name="clCreateFromD3D10BufferKHR"/>
                <command name="clCreateFromD3D10Texture2DKHR"/>
                <command name="clCreateFromD3D10Texture3DKHR"/>
                <command name="clEnqueueAcquireD3D10ObjectsKHR"/>
                <command name="clEnqueueReleaseD3D10ObjectsKHR"/>
            </require>
        </extension>
        <extension name="cl_khr_d3d11_sharing" supported="opencl">
            <require>
                <type name="d3d11.h"/>
                <type name="CL/cl.h"/>
                <type name="CL/cl_platform.h"/>
            </require>
            <require>
                <type name="cl_d3d11_device_source_khr"/>
                <type name="cl_d3d11_device_set_khr"/>
            </require>
            <require comment="Error codes">
                <enum name="CL_INVALID_D3D11_DEVICE_KHR"/>
                <enum name="CL_INVALID_D3D11_RESOURCE_KHR"/>
                <enum name="CL_D3D11_RESOURCE_ALREADY_ACQUIRED_KHR"/>
                <enum name="CL_D3D11_RESOURCE_NOT_ACQUIRED_KHR"/>
            </require>
            <require comment="cl_d3d11_device_source_khr">
                <enum name="CL_D3D11_DEVICE_KHR"/>
                <enum name="CL_D3D11_DXGI_ADAPTER_KHR"/>
            </require>
            <require comment="cl_d3d11_device_set_khr">
                <enum name="CL_PREFERRED_DEVICES_FOR_D3D11_KHR"/>
                <enum name="CL_ALL_DEVICES_FOR_D3D11_KHR"/>
            </require>
            <require comment="cl_context_info">
                <enum name="CL_CONTEXT_D3D11_DEVICE_KHR"/>
                <enum name="CL_CONTEXT_D3D11_PREFER_SHARED_RESOURCES_KHR"/>
            </require>
            <require comment="cl_mem_info">
                <enum name="CL_MEM_D3D11_RESOURCE_KHR"/>
            </require>
            <require comment="cl_image_info">
                <enum name="CL_IMAGE_D3D11_SUBRESOURCE_KHR"/>
            </require>
            <require comment="cl_command_type">
                <enum name="CL_COMMAND_ACQUIRE_D3D11_OBJECTS_KHR"/>
                <enum name="CL_COMMAND_RELEASE_D3D11_OBJECTS_KHR"/>
            </require>
            <require>
                <command name="clGetDeviceIDsFromD3D11KHR"/>
                <command name="clCreateFromD3D11BufferKHR"/>
                <command name="clCreateFromD3D11Texture2DKHR"/>
                <command name="clCreateFromD3D11Texture3DKHR"/>
                <command name="clEnqueueAcquireD3D11ObjectsKHR"/>
                <command name="clEnqueueReleaseD3D11ObjectsKHR"/>
            </require>
        </extension>
        <extension name="cl_khr_dx9_media_sharing" supported="opencl">
            <require>
                <type name="CL/cl.h"/>
                <type name="CL/cl_platform.h"/>
            </require>
            <require>
                <type name="cl_dx9_media_adapter_type_khr"/>
                <type name="cl_dx9_media_adapter_set_khr"/>
                <type name="cl_dx9_surface_info_khr"/>
            </require>
            <require comment="Error codes">
                <enum name="CL_INVALID_DX9_MEDIA_ADAPTER_KHR"/>
                <enum name="CL_INVALID_DX9_MEDIA_SURFACE_KHR"/>
                <enum name="CL_DX9_MEDIA_SURFACE_ALREADY_ACQUIRED_KHR"/>
                <enum name="CL_DX9_MEDIA_SURFACE_NOT_ACQUIRED_KHR"/>
            </require>
            <require comment="cl_media_adapter_type_khr">
                <enum name="CL_ADAPTER_D3D9_KHR"/>
                <enum name="CL_ADAPTER_D3D9EX_KHR"/>
                <enum name="CL_ADAPTER_DXVA_KHR"/>
            </require>
            <require comment="cl_media_adapter_set_khr">
                <enum name="CL_PREFERRED_DEVICES_FOR_DX9_MEDIA_ADAPTER_KHR"/>
                <enum name="CL_ALL_DEVICES_FOR_DX9_MEDIA_ADAPTER_KHR"/>
            </require>
            <require comment="cl_context_info">
                <enum name="CL_CONTEXT_ADAPTER_D3D9_KHR"/>
                <enum name="CL_CONTEXT_ADAPTER_D3D9EX_KHR"/>
                <enum name="CL_CONTEXT_ADAPTER_DXVA_KHR"/>
            </require>
            <require comment="cl_mem_info">
                <enum name="CL_MEM_DX9_MEDIA_ADAPTER_TYPE_KHR"/>
                <enum name="CL_MEM_DX9_MEDIA_SURFACE_INFO_KHR"/>
            </require>
            <require comment="cl_image_info">
                <enum name="CL_IMAGE_DX9_MEDIA_PLANE_KHR"/>
            </require>
            <require comment="cl_command_type">
                <enum name="CL_COMMAND_ACQUIRE_DX9_MEDIA_SURFACES_KHR"/>
                <enum name="CL_COMMAND_RELEASE_DX9_MEDIA_SURFACES_KHR"/>
            </require>
            <require>
                <command name="clGetDeviceIDsFromDX9MediaAdapterKHR"/>
                <command name="clCreateFromDX9MediaSurfaceKHR"/>
                <command name="clEnqueueAcquireDX9MediaSurfacesKHR"/>
                <command name="clEnqueueReleaseDX9MediaSurfacesKHR"/>
            </require>
        </extension>
        <extension name="cl_khr_egl_image" supported="opencl">
            <require>
                <type name="CL/cl.h"/>
            </require>
            <require comment="Command type for events created with clEnqueueAcquireEGLObjectsKHR">
                <enum name="CL_COMMAND_EGL_FENCE_SYNC_OBJECT_KHR"/>
                <enum name="CL_COMMAND_ACQUIRE_EGL_OBJECTS_KHR"/>
                <enum name="CL_COMMAND_RELEASE_EGL_OBJECTS_KHR"/>
            </require>
            <require comment="Error type for clCreateFromEGLImageKHR">
                <enum name="CL_INVALID_EGL_OBJECT_KHR"/>
                <enum name="CL_EGL_RESOURCE_NOT_ACQUIRED_KHR"/>
            </require>
            <require comment="CLeglImageKHR is an opaque handle to an EGLImage">
                <type name="CLeglImageKHR"/>
            </require>
            <require comment="CLeglDisplayKHR is an opaque handle to an EGLDisplay">
                <type name="CLeglDisplayKHR"/>
            </require>
            <require comment="CLeglSyncKHR is an opaque handle to an EGLSync object">
                <type name="CLeglSyncKHR"/>
            </require>
            <require comment="properties passed to clCreateFromEGLImageKHR">
                <type name="cl_egl_image_properties_khr"/>
            </require>
            <require>
                <command name="clCreateFromEGLImageKHR"/>
                <command name="clEnqueueAcquireEGLObjectsKHR"/>
                <command name="clEnqueueReleaseEGLObjectsKHR"/>
            </require>
        </extension>
        <extension name="cl_khr_egl_event" supported="opencl">
            <require>
                <type name="CL/cl.h"/>
            </require>
            <require>
                <command name="clCreateEventFromEGLSyncKHR"/>
            </require>
        </extension>
        <extension name="cl_khr_fp64" supported="opencl">
            <require>
                <type name="CL/cl.h"/>
            </require>
            <require condition="!defined(CL_VERSION_1_2)" comment="cl_device_info - defined in CL.h for OpenCL 1.2 and newer">
                <enum name="CL_DEVICE_DOUBLE_FP_CONFIG"/>
            </require>
        </extension>
        <extension name="cl_khr_fp16" supported="opencl">
            <require>
                <type name="CL/cl.h"/>
            </require>
            <require comment="cl_device_info">
                <enum name="CL_DEVICE_HALF_FP_CONFIG"/>
            </require>
        </extension>
        <extension name="cl_APPLE_SetMemObjectDestructor" comment="not registered" supported="opencl">
            <require>
                <type name="CL/cl.h"/>
            </require>
            <require>
                <command name="clSetMemObjectDestructorAPPLE"/>
            </require>
        </extension>
        <extension name="cl_APPLE_ContextLoggingFunctions" comment="not registered" supported="opencl">
            <require>
                <type name="CL/cl.h"/>
            </require>
            <require>
                <command name="clLogMessagesToSystemLogAPPLE"/>
                <command name="clLogMessagesToStdoutAPPLE"/>
                <command name="clLogMessagesToStderrAPPLE"/>
            </require>
        </extension>
        <extension name="cl_khr_icd" supported="opencl">
            <require>
                <type name="CL/cl.h"/>
            </require>
            <require comment="cl_platform_info">
                <enum name="CL_PLATFORM_ICD_SUFFIX_KHR"/>
            </require>
            <require comment="Error codes">
                <enum name="CL_PLATFORM_NOT_FOUND_KHR"/>
            </require>
            <require>
                <command name="clIcdGetPlatformIDsKHR"/>
            </require>
        </extension>
        <extension name="cl_loader_layers" supported="opencl">
            <require>
                <type name="CL/cl_icd.h"/>
            </require>
            <require comment="cl_layer_info">
                <enum name="CL_LAYER_API_VERSION"/>
            </require>
            <require comment="Misc API enums">
                <enum name="CL_LAYER_API_VERSION_100"/>
            </require>
            <require>
                <command name="clGetLayerInfo"/>
                <command name="clInitLayer"/>
            </require>
        </extension>
        <extension name="cl_khr_il_program" supported="opencl">
            <require>
                <type name="CL/cl.h"/>
            </require>
            <require comment="cl_device_info">
                <enum name="CL_DEVICE_IL_VERSION_KHR"/>
            </require>
            <require comment="cl_program_info">
                <enum name="CL_PROGRAM_IL_KHR"/>
            </require>
            <require>
                <command name="clCreateProgramWithILKHR" comment="No EXT_SUFFIX?"/>
            </require>
        </extension>
        <extension name="cl_khr_image2D_from_buffer" supported="opencl">
            <require comment="cl_device_info">
                <enum name="CL_DEVICE_IMAGE_PITCH_ALIGNMENT_KHR"/>
                <enum name="CL_DEVICE_IMAGE_BASE_ADDRESS_ALIGNMENT_KHR"/>
            </require>
        </extension>
        <extension name="cl_khr_initialize_memory" supported="opencl">
            <require>
                <type name="CL/cl.h"/>
            </require>
            <require comment="Interop tokens">
                <enum name="CL_CONTEXT_MEMORY_INITIALIZE_KHR"/>
            </require>
        </extension>
        <extension name="cl_khr_terminate_context" supported="opencl">
            <require>
                <type name="CL/cl.h"/>
            </require>
            <require comment="cl_device_info">
                <enum name="CL_DEVICE_TERMINATE_CAPABILITY_KHR"/>
            </require>
            <require comment="cl_context_properties">
                <enum name="CL_CONTEXT_TERMINATE_KHR"/>
            </require>
            <require comment="Error codes">
                <enum name="CL_CONTEXT_TERMINATED_KHR"/>
            </require>
            <require>
                <command name="clTerminateContextKHR"/>
            </require>
        </extension>
        <extension name="cl_khr_spir" supported="opencl">
            <require>
                <type name="CL/cl.h"/>
            </require>
            <require comment="cl_device_info">
                <enum name="CL_DEVICE_SPIR_VERSIONS"/>
            </require>
            <require comment="cl_program_binary_type">
                <enum name="CL_PROGRAM_BINARY_TYPE_INTERMEDIATE"/>
            </require>
        </extension>
        <extension name="cl_khr_create_command_queue" supported="opencl">
            <require>
                <type name="CL/cl.h"/>
            </require>
            <require>
                <type name="cl_queue_properties_khr"/>
            </require>
            <require>
                <command name="clCreateCommandQueueWithPropertiesKHR"/>
            </require>
        </extension>
        <extension name="cl_nv_device_attribute_query" supported="opencl">
            <require>
                <type name="CL/cl.h"/>
            </require>
            <require comment="cl_device_info">
                <enum name="CL_DEVICE_COMPUTE_CAPABILITY_MAJOR_NV"/>
                <enum name="CL_DEVICE_COMPUTE_CAPABILITY_MINOR_NV"/>
                <enum name="CL_DEVICE_REGISTERS_PER_BLOCK_NV"/>
                <enum name="CL_DEVICE_WARP_SIZE_NV"/>
                <enum name="CL_DEVICE_GPU_OVERLAP_NV"/>
                <enum name="CL_DEVICE_KERNEL_EXEC_TIMEOUT_NV"/>
                <enum name="CL_DEVICE_INTEGRATED_MEMORY_NV"/>
            </require>
        </extension>
        <extension name="cl_amd_device_attribute_query" supported="opencl">
            <require>
                <type name="CL/cl.h"/>
            </require>
            <require comment="cl_device_info">
                <enum name="CL_DEVICE_PROFILING_TIMER_OFFSET_AMD"/>
                <enum name="CL_DEVICE_TOPOLOGY_AMD"/>
                <enum name="CL_DEVICE_BOARD_NAME_AMD"/>
                <enum name="CL_DEVICE_GLOBAL_FREE_MEMORY_AMD"/>
                <enum name="CL_DEVICE_SIMD_PER_COMPUTE_UNIT_AMD"/>
                <enum name="CL_DEVICE_SIMD_WIDTH_AMD"/>
                <enum name="CL_DEVICE_SIMD_INSTRUCTION_WIDTH_AMD"/>
                <enum name="CL_DEVICE_WAVEFRONT_WIDTH_AMD"/>
                <enum name="CL_DEVICE_GLOBAL_MEM_CHANNELS_AMD"/>
                <enum name="CL_DEVICE_GLOBAL_MEM_CHANNEL_BANKS_AMD"/>
                <enum name="CL_DEVICE_GLOBAL_MEM_CHANNEL_BANK_WIDTH_AMD"/>
                <enum name="CL_DEVICE_LOCAL_MEM_SIZE_PER_COMPUTE_UNIT_AMD"/>
                <enum name="CL_DEVICE_LOCAL_MEM_BANKS_AMD"/>
                <enum name="CL_DEVICE_THREAD_TRACE_SUPPORTED_AMD"/>
                <enum name="CL_DEVICE_GFXIP_MAJOR_AMD"/>
                <enum name="CL_DEVICE_GFXIP_MINOR_AMD"/>
                <enum name="CL_DEVICE_AVAILABLE_ASYNC_QUEUES_AMD"/>
                <enum name="CL_DEVICE_PREFERRED_WORK_GROUP_SIZE_AMD"/>
                <enum name="CL_DEVICE_MAX_WORK_GROUP_SIZE_AMD"/>
                <enum name="CL_DEVICE_PREFERRED_CONSTANT_BUFFER_SIZE_AMD"/>
                <enum name="CL_DEVICE_PCIE_ID_AMD"/>
            </require>
        </extension>
        <extension name="cl_arm_printf" supported="opencl">
            <require>
                <type name="CL/cl.h"/>
            </require>
            <require comment="cl_context_properties">
                <enum name="CL_PRINTF_CALLBACK_ARM"/>
                <enum name="CL_PRINTF_BUFFERSIZE_ARM"/>
            </require>
        </extension>
        <extension name="cl_ext_device_fission" supported="opencl">
            <require>
                <type name="CL/cl.h"/>
            </require>
            <require>
                <type name="cl_device_partition_property_ext"/>
            </require>
            <require comment="Error codes">
                <enum name="CL_DEVICE_PARTITION_FAILED_EXT"/>
                <enum name="CL_INVALID_PARTITION_COUNT_EXT"/>
                <enum name="CL_INVALID_PARTITION_NAME_EXT"/>
            </require>
            <require comment="cl_device_info">
                <enum name="CL_DEVICE_PARENT_DEVICE_EXT"/>
                <enum name="CL_DEVICE_PARTITION_TYPES_EXT"/>
                <enum name="CL_DEVICE_AFFINITY_DOMAINS_EXT"/>
                <enum name="CL_DEVICE_REFERENCE_COUNT_EXT"/>
                <enum name="CL_DEVICE_PARTITION_STYLE_EXT"/>
            </require>
            <require comment="cl_device_partition_property_ext">
                <enum name="CL_DEVICE_PARTITION_EQUALLY_EXT"/>
                <enum name="CL_DEVICE_PARTITION_BY_COUNTS_EXT"/>
                <enum name="CL_DEVICE_PARTITION_BY_NAMES_EXT"/>
                <enum name="CL_DEVICE_PARTITION_BY_AFFINITY_DOMAIN_EXT"/>
            </require>
            <require comment="cl_device_partition_property_ext - affinity domains">
                <enum name="CL_AFFINITY_DOMAIN_L1_CACHE_EXT"/>
                <enum name="CL_AFFINITY_DOMAIN_L2_CACHE_EXT"/>
                <enum name="CL_AFFINITY_DOMAIN_L3_CACHE_EXT"/>
                <enum name="CL_AFFINITY_DOMAIN_L4_CACHE_EXT"/>
                <enum name="CL_AFFINITY_DOMAIN_NUMA_EXT"/>
                <enum name="CL_AFFINITY_DOMAIN_NEXT_FISSIONABLE_EXT"/>
            </require>
            <require comment="cl_device_partition_property_ext - list terminators">
                <enum name="CL_PROPERTIES_LIST_END_EXT"/>
                <enum name="CL_PARTITION_BY_COUNTS_LIST_END_EXT"/>
                <enum name="CL_PARTITION_BY_NAMES_LIST_END_EXT"/>
            </require>
            <require>
                <command name="clReleaseDeviceEXT"/>
                <command name="clRetainDeviceEXT"/>
                <command name="clCreateSubDevicesEXT"/>
            </require>
        </extension>
        <extension name="cl_ext_migrate_memobject" supported="opencl">
            <require>
                <type name="CL/cl.h"/>
            </require>
            <require>
                <type name="cl_mem_migration_flags_ext"/>
            </require>
            <require comment="cl_mem_migration_flags_ext">
                <enum name="CL_MIGRATE_MEM_OBJECT_HOST_EXT"/>
            </require>
            <require comment="cl_command_type">
                <enum name="CL_COMMAND_MIGRATE_MEM_OBJECT_EXT"/>
            </require>
            <require>
                <command name="clEnqueueMigrateMemObjectEXT"/>
            </require>
        </extension>
        <extension name="cl_qcom_ext_host_ptr" supported="opencl">
            <require>
                <type name="CL/cl.h"/>
            </require>
            <require>
                <type name="cl_image_pitch_info_qcom"/>
                <type name="cl_mem_ext_host_ptr"/>
            </require>
            <require comment="cl_mem_flags">
                <enum name="CL_MEM_EXT_HOST_PTR_QCOM"/>
            </require>
            <require comment="cl_device_info">
                <enum name="CL_DEVICE_EXT_MEM_PADDING_IN_BYTES_QCOM"/>
                <enum name="CL_DEVICE_PAGE_SIZE_QCOM"/>
            </require>
            <require comment="cl_image_pitch_info_qcom">
                <enum name="CL_IMAGE_ROW_ALIGNMENT_QCOM"/>
                <enum name="CL_IMAGE_SLICE_ALIGNMENT_QCOM"/>
            </require>
            <require comment="cl_uint host_cache_policy">
                <enum name="CL_MEM_HOST_UNCACHED_QCOM"/>
                <enum name="CL_MEM_HOST_WRITEBACK_QCOM"/>
                <enum name="CL_MEM_HOST_WRITETHROUGH_QCOM"/>
                <enum name="CL_MEM_HOST_WRITE_COMBINING_QCOM"/>
            </require>
            <require>
                <command name="clGetDeviceImageInfoQCOM"/>
            </require>
        </extension>
        <extension name="cl_qcom_ext_host_ptr_iocoherent" supported="opencl">
            <require>
                <type name="CL/cl.h"/>
            </require>
            <require comment="cl_uint host_cache_policy">
                <enum name="CL_MEM_HOST_IOCOHERENT_QCOM"/>
            </require>
        </extension>
        <extension name="cl_qcom_ion_host_ptr" supported="opencl">
            <require>
                <type name="CL/cl.h"/>
            </require>
            <require>
                <type name="cl_mem_ion_host_ptr"/>
            </require>
            <require comment="cl_uint allocation_type">
                <enum name="CL_MEM_ION_HOST_PTR_QCOM"/>
            </require>
        </extension>
        <extension name="cl_qcom_android_native_buffer_host_ptr" supported="opencl">
            <require>
                <type name="CL/cl.h"/>
            </require>
            <require>
                <type name="cl_mem_android_native_buffer_host_ptr"/>
            </require>
            <require comment="cl_uint allocation_type">
                <enum name="CL_MEM_ANDROID_NATIVE_BUFFER_HOST_PTR_QCOM"/>
            </require>
        </extension>
        <extension name="cl_img_yuv_image" supported="opencl">
            <require>
                <type name="CL/cl.h"/>
            </require>
            <require comment="cl_channel_order">
                <enum name="CL_NV21_IMG"/>
                <enum name="CL_YV12_IMG"/>
            </require>
        </extension>
        <extension name="cl_img_cached_allocations" supported="opencl">
            <require>
                <type name="CL/cl.h"/>
            </require>
            <require comment="cl_mem_flags">
                <enum name="CL_MEM_USE_UNCACHED_CPU_MEMORY_IMG"/>
                <enum name="CL_MEM_USE_CACHED_CPU_MEMORY_IMG"/>
            </require>
        </extension>
        <extension name="cl_khr_mipmap_image" supported="opencl">
            <require>
                <type name="CL/cl.h"/>
            </require>
            <require comment="cl_sampler_properties">
                <enum name="CL_SAMPLER_MIP_FILTER_MODE_KHR"/>
                <enum name="CL_SAMPLER_LOD_MIN_KHR"/>
                <enum name="CL_SAMPLER_LOD_MAX_KHR"/>
            </require>
        </extension>
        <extension name="cl_img_use_gralloc_ptr" supported="opencl">
            <require>
                <type name="CL/cl.h"/>
            </require>
            <require comment="Error codes">
                <enum name="CL_GRALLOC_RESOURCE_NOT_ACQUIRED_IMG"/>
                <enum name="CL_INVALID_GRALLOC_OBJECT_IMG"/>
            </require>
            <require comment="cl_mem_flags">
                <enum name="CL_MEM_USE_GRALLOC_PTR_IMG"/>
            </require>
            <require comment="cl_command_type">
                <enum name="CL_COMMAND_ACQUIRE_GRALLOC_OBJECTS_IMG"/>
                <enum name="CL_COMMAND_RELEASE_GRALLOC_OBJECTS_IMG"/>
            </require>
            <require>
                <command name="clEnqueueAcquireGrallocObjectsIMG"/>
                <command name="clEnqueueReleaseGrallocObjectsIMG"/>
            </require>
        </extension>
        <extension name="cl_khr_subgroups" supported="opencl">
            <require>
                <type name="CL/cl.h"/>
            </require>
            <require condition="!defined(CL_VERSION_2_1)" comment="defined in CL.h for OpenCL 2.1 and newer">
                <type name="cl_kernel_sub_group_info"/>
            </require>
            <require comment="cl_kernel_sub_group_info">
                <enum name="CL_KERNEL_MAX_SUB_GROUP_SIZE_FOR_NDRANGE_KHR"/>
                <enum name="CL_KERNEL_SUB_GROUP_COUNT_FOR_NDRANGE_KHR"/>
            </require>
            <require>
                <command name="clGetKernelSubGroupInfoKHR"/>
            </require>
        </extension>
        <extension name="cl_khr_priority_hints" supported="opencl">
            <require>
                <type name="CL/cl.h"/>
            </require>
            <require comment="To be used by clGetEventInfo">
                <type name="cl_queue_priority_khr"/>
            </require>
            <require comment="cl_queue_properties">
                <enum name="CL_QUEUE_PRIORITY_KHR"/>
            </require>
            <require comment="cl_queue_priority_khr">
                <enum name="CL_QUEUE_PRIORITY_HIGH_KHR"/>
                <enum name="CL_QUEUE_PRIORITY_MED_KHR"/>
                <enum name="CL_QUEUE_PRIORITY_LOW_KHR"/>
            </require>
        </extension>
        <extension name="cl_khr_throttle_hints" supported="opencl">
            <require>
                <type name="CL/cl.h"/>
            </require>
            <require comment="To be used by clGetEventInfo">
                <type name="cl_queue_throttle_khr"/>
            </require>
            <require comment="cl_queue_properties">
                <enum name="CL_QUEUE_THROTTLE_KHR"/>
            </require>
            <require comment="cl_queue_throttle_khr">
                <enum name="CL_QUEUE_THROTTLE_HIGH_KHR"/>
                <enum name="CL_QUEUE_THROTTLE_MED_KHR"/>
                <enum name="CL_QUEUE_THROTTLE_LOW_KHR"/>
            </require>
        </extension>
        <extension name="cl_khr_subgroup_named_barrier" supported="opencl">
            <require>
                <type name="CL/cl.h"/>
            </require>
            <require comment="cl_device_info">
                <enum name="CL_DEVICE_MAX_NAMED_BARRIER_COUNT_KHR"/>
            </require>
        </extension>
        <extension name="cl_arm_import_memory" supported="opencl">
            <require>
                <type name="CL/cl.h"/>
            </require>
            <require>
                <type name="cl_import_properties_arm"/>
            </require>
            <require comment="cl_import_properties_arm">
                <enum name="CL_IMPORT_TYPE_ARM"/>
                <enum name="CL_IMPORT_TYPE_HOST_ARM"/>
                <enum name="CL_IMPORT_TYPE_DMA_BUF_ARM"/>
                <enum name="CL_IMPORT_TYPE_PROTECTED_ARM"/>
                <enum name="CL_IMPORT_TYPE_ANDROID_HARDWARE_BUFFER_ARM"/>
                <enum name="CL_IMPORT_DMA_BUF_DATA_CONSISTENCY_WITH_HOST_ARM"/>
                <enum name="CL_IMPORT_MEMORY_WHOLE_ALLOCATION_ARM"/>
                <enum name="CL_IMPORT_ANDROID_HARDWARE_BUFFER_PLANE_INDEX_ARM"/>
                <enum name="CL_IMPORT_ANDROID_HARDWARE_BUFFER_LAYER_INDEX_ARM"/>
            </require>
            <require>
                <comment>
                    Allows for direct memory import into OpenCL via the clImportMemoryARM function.

                    Memory imported through this interface will be mapped into the device's page
                    tables directly, providing zero copy access. It will never fall back to copy
                    operations and aliased buffers.

                    Types of memory supported for import are specified as additional extension
                    strings.

                    This extension produces cl_mem allocations which are compatible with all other
                    users of cl_mem in the standard API.

                    This extension maps pages with the same properties as the normal buffer creation
                    function clCreateBuffer.
                </comment>
                <command name="clImportMemoryARM"/>
            </require>
        </extension>
        <extension name="cl_arm_shared_virtual_memory" supported="opencl">
            <require>
                <type name="CL/cl.h"/>
            </require>
            <require>
                <type name="cl_svm_mem_flags_arm"/>
                <type name="cl_kernel_exec_info_arm"/>
                <type name="cl_device_svm_capabilities_arm"/>
            </require>
            <require comment="cl_device_info">
                <enum name="CL_DEVICE_SVM_CAPABILITIES_ARM"/>
            </require>
            <require comment="cl_mem_info">
                <enum name="CL_MEM_USES_SVM_POINTER_ARM"/>
            </require>
            <require comment="cl_kernel_exec_info_arm">
                <enum name="CL_KERNEL_EXEC_INFO_SVM_PTRS_ARM"/>
                <enum name="CL_KERNEL_EXEC_INFO_SVM_FINE_GRAIN_SYSTEM_ARM"/>
            </require>
            <require comment="cl_command_type">
                <enum name="CL_COMMAND_SVM_FREE_ARM"/>
                <enum name="CL_COMMAND_SVM_MEMCPY_ARM"/>
                <enum name="CL_COMMAND_SVM_MEMFILL_ARM"/>
                <enum name="CL_COMMAND_SVM_MAP_ARM"/>
                <enum name="CL_COMMAND_SVM_UNMAP_ARM"/>
            </require>
            <require comment="cl_device_svm_capabilities_arm">
                <enum name="CL_DEVICE_SVM_COARSE_GRAIN_BUFFER_ARM"/>
                <enum name="CL_DEVICE_SVM_FINE_GRAIN_BUFFER_ARM"/>
                <enum name="CL_DEVICE_SVM_FINE_GRAIN_SYSTEM_ARM"/>
                <enum name="CL_DEVICE_SVM_ATOMICS_ARM"/>
            </require>
            <require comment="cl_svm_mem_flags_arm">
                <enum name="CL_MEM_SVM_FINE_GRAIN_BUFFER_ARM"/>
                <enum name="CL_MEM_SVM_ATOMICS_ARM"/>
            </require>
            <require>
                <command name="clSVMAllocARM"/>
                <command name="clSVMFreeARM"/>
                <command name="clEnqueueSVMFreeARM"/>
                <command name="clEnqueueSVMMemcpyARM"/>
                <command name="clEnqueueSVMMemFillARM"/>
                <command name="clEnqueueSVMMapARM"/>
                <command name="clEnqueueSVMUnmapARM"/>
                <command name="clSetKernelArgSVMPointerARM"/>
                <command name="clSetKernelExecInfoARM"/>
            </require>
        </extension>
        <extension name="cl_arm_get_core_id" requires="CL_VERSION_1_2" supported="opencl">
            <require>
                <type name="CL/cl.h"/>
            </require>
            <require comment="cl_device_info">
                <enum name="CL_DEVICE_COMPUTE_UNITS_BITFIELD_ARM"/>
            </require>
        </extension>
        <extension name="cl_intel_thread_local_exec" supported="opencl">
            <require>
                <type name="CL/cl.h"/>
                <type name="CL/cl_platform.h"/>
            </require>
            <require comment="cl_command_queue_properties - bitfield">
                <enum name="CL_QUEUE_THREAD_LOCAL_EXEC_ENABLE_INTEL"/>
            </require>
        </extension>
        <extension name="cl_intel_device_partition_by_names" supported="opencl">
            <require>
                <enum name="CL_DEVICE_PARTITION_BY_NAMES_INTEL"/>
                <enum name="CL_PARTITION_BY_NAMES_LIST_END_INTEL"/>
            </require>
        </extension>
        <extension name="cl_intel_accelerator" supported="opencl">
            <require>
                <type name="cl_accelerator_intel"/>
                <type name="cl_accelerator_type_intel"/>
                <type name="cl_accelerator_info_intel"/>
            </require>
            <require comment="cl_accelerator_info_intel">
                <enum name="CL_ACCELERATOR_DESCRIPTOR_INTEL"/>
                <enum name="CL_ACCELERATOR_REFERENCE_COUNT_INTEL"/>
                <enum name="CL_ACCELERATOR_CONTEXT_INTEL"/>
                <enum name="CL_ACCELERATOR_TYPE_INTEL"/>
            </require>
            <require comment="Error codes">
                <enum name="CL_INVALID_ACCELERATOR_INTEL"/>
                <enum name="CL_INVALID_ACCELERATOR_TYPE_INTEL"/>
                <enum name="CL_INVALID_ACCELERATOR_DESCRIPTOR_INTEL"/>
                <enum name="CL_ACCELERATOR_TYPE_NOT_SUPPORTED_INTEL"/>
            </require>
            <require>
                <command name="clCreateAcceleratorINTEL"/>
                <command name="clGetAcceleratorInfoINTEL"/>
                <command name="clRetainAcceleratorINTEL"/>
                <command name="clReleaseAcceleratorINTEL"/>
            </require>
        </extension>
        <extension name="cl_intel_motion_estimation" supported="opencl">
            <require>
                <type name="cl_motion_estimation_desc_intel"/>
            </require>
            <require comment="cl_accelerator_type_intel">
                <enum name="CL_ACCELERATOR_TYPE_MOTION_ESTIMATION_INTEL"/>
            </require>
            <require comment="cl_uint mb_block_type">
                <enum name="CL_ME_MB_TYPE_16x16_INTEL"/>
                <enum name="CL_ME_MB_TYPE_8x8_INTEL"/>
                <enum name="CL_ME_MB_TYPE_4x4_INTEL"/>
            </require>
            <require comment="cl_uint subpixel_mode">
                <enum name="CL_ME_SUBPIXEL_MODE_INTEGER_INTEL"/>
                <enum name="CL_ME_SUBPIXEL_MODE_HPEL_INTEL"/>
                <enum name="CL_ME_SUBPIXEL_MODE_QPEL_INTEL"/>
            </require>
            <require comment="cl_uint sad_adjust_mode">
                <enum name="CL_ME_SAD_ADJUST_MODE_NONE_INTEL"/>
                <enum name="CL_ME_SAD_ADJUST_MODE_HAAR_INTEL"/>
            </require>
            <require comment="cl_uint search_path_type">
                <enum name="CL_ME_SEARCH_PATH_RADIUS_2_2_INTEL"/>
                <enum name="CL_ME_SEARCH_PATH_RADIUS_4_4_INTEL"/>
                <enum name="CL_ME_SEARCH_PATH_RADIUS_16_12_INTEL"/>
            </require>
        </extension>
        <extension name="cl_intel_advanced_motion_estimation" supported="opencl">
            <require comment="cl_device_info">
                <enum name="CL_DEVICE_ME_VERSION_INTEL"/>
            </require>
            <require>
                <enum name="CL_ME_VERSION_LEGACY_INTEL"/>
                <enum name="CL_ME_VERSION_ADVANCED_VER_1_INTEL"/>
                <enum name="CL_ME_VERSION_ADVANCED_VER_2_INTEL"/>
            </require>
            <require>
                <enum name="CL_ME_CHROMA_INTRA_PREDICT_ENABLED_INTEL"/>
                <enum name="CL_ME_LUMA_INTRA_PREDICT_ENABLED_INTEL"/>
            </require>
            <require>
                <enum name="CL_ME_SKIP_BLOCK_TYPE_16x16_INTEL"/>
                <enum name="CL_ME_SKIP_BLOCK_TYPE_8x8_INTEL"/>
            </require>
            <require>
                <enum name="CL_ME_COST_PENALTY_NONE_INTEL"/>
                <enum name="CL_ME_COST_PENALTY_LOW_INTEL"/>
                <enum name="CL_ME_COST_PENALTY_NORMAL_INTEL"/>
                <enum name="CL_ME_COST_PENALTY_HIGH_INTEL"/>
            </require>
            <require>
                <enum name="CL_ME_COST_PRECISION_QPEL_INTEL"/>
                <enum name="CL_ME_COST_PRECISION_HPEL_INTEL"/>
                <enum name="CL_ME_COST_PRECISION_PEL_INTEL"/>
                <enum name="CL_ME_COST_PRECISION_DPEL_INTEL"/>
            </require>
            <require>
                <enum name="CL_ME_LUMA_PREDICTOR_MODE_VERTICAL_INTEL"/>
                <enum name="CL_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_INTEL"/>
                <enum name="CL_ME_LUMA_PREDICTOR_MODE_DC_INTEL"/>
                <enum name="CL_ME_LUMA_PREDICTOR_MODE_DIAGONAL_DOWN_LEFT_INTEL"/>
                <enum name="CL_ME_LUMA_PREDICTOR_MODE_DIAGONAL_DOWN_RIGHT_INTEL"/>
                <enum name="CL_ME_LUMA_PREDICTOR_MODE_PLANE_INTEL"/>
                <enum name="CL_ME_LUMA_PREDICTOR_MODE_VERTICAL_RIGHT_INTEL"/>
                <enum name="CL_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_DOWN_INTEL"/>
                <enum name="CL_ME_LUMA_PREDICTOR_MODE_VERTICAL_LEFT_INTEL"/>
                <enum name="CL_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_UP_INTEL"/>
            </require>
            <require>
                <enum name="CL_ME_CHROMA_PREDICTOR_MODE_DC_INTEL"/>
                <enum name="CL_ME_CHROMA_PREDICTOR_MODE_HORIZONTAL_INTEL"/>
                <enum name="CL_ME_CHROMA_PREDICTOR_MODE_VERTICAL_INTEL"/>
                <enum name="CL_ME_CHROMA_PREDICTOR_MODE_PLANE_INTEL"/>
            </require>
            <require>
                <enum name="CL_ME_FORWARD_INPUT_MODE_INTEL"/>
                <enum name="CL_ME_BACKWARD_INPUT_MODE_INTEL"/>
                <enum name="CL_ME_BIDIRECTION_INPUT_MODE_INTEL"/>
            </require>
            <require>
                <enum name="CL_ME_BIDIR_WEIGHT_QUARTER_INTEL"/>
                <enum name="CL_ME_BIDIR_WEIGHT_THIRD_INTEL"/>
                <enum name="CL_ME_BIDIR_WEIGHT_HALF_INTEL"/>
                <enum name="CL_ME_BIDIR_WEIGHT_TWO_THIRD_INTEL"/>
                <enum name="CL_ME_BIDIR_WEIGHT_THREE_QUARTER_INTEL"/>
            </require>
        </extension>
        <extension name="cl_intel_simultaneous_sharing" supported="opencl">
            <require comment="cl_device_info">
                <enum name="CL_DEVICE_SIMULTANEOUS_INTEROPS_INTEL"/>
                <enum name="CL_DEVICE_NUM_SIMULTANEOUS_INTEROPS_INTEL"/>
            </require>
        </extension>
        <extension name="cl_intel_egl_image_yuv" supported="opencl">
            <require comment="cl_egl_image_properties_khr">
                <enum name="CL_EGL_YUV_PLANE_INTEL"/>
            </require>
        </extension>
        <extension name="cl_intel_packed_yuv" supported="opencl">
            <require comment="cl_channel_order">
                <enum name="CL_YUYV_INTEL"/>
                <enum name="CL_UYVY_INTEL"/>
                <enum name="CL_YVYU_INTEL"/>
                <enum name="CL_VYUY_INTEL"/>
            </require>
        </extension>
        <extension name="cl_intel_required_subgroup_size" supported="opencl">
            <require comment="cl_device_info">
                <enum name="CL_DEVICE_SUB_GROUP_SIZES_INTEL"/>
            </require>
            <require comment="cl_kernel_work_group_info">
                <enum name="CL_KERNEL_SPILL_MEM_SIZE_INTEL"/>
            </require>
            <require comment="cl_kernel_sub_group_info">
                <enum name="CL_KERNEL_COMPILE_SUB_GROUP_SIZE_INTEL"/>
            </require>
        </extension>
        <extension name="cl_intel_driver_diagnostics" supported="opencl">
            <require>
                <type name="cl_diagnostics_verbose_level"/>
            </require>
            <require comment="cl_context_properties">
                <enum name="CL_CONTEXT_SHOW_DIAGNOSTICS_INTEL"/>
                <enum name="CL_CONTEXT_DIAGNOSTICS_LEVEL_ALL_INTEL"/>
                <enum name="CL_CONTEXT_DIAGNOSTICS_LEVEL_GOOD_INTEL"/>
                <enum name="CL_CONTEXT_DIAGNOSTICS_LEVEL_BAD_INTEL"/>
                <enum name="CL_CONTEXT_DIAGNOSTICS_LEVEL_NEUTRAL_INTEL"/>
            </require>
        </extension>
        <extension name="cl_intel_planar_yuv" supported="opencl">
            <require comment="cl_channel_order">
                <enum name="CL_NV12_INTEL"/>
            </require>
            <require comment="cl_mem_flags">
                <enum name="CL_MEM_NO_ACCESS_INTEL"/>
                <enum name="CL_MEM_ACCESS_FLAGS_UNRESTRICTED_INTEL"/>
            </require>
            <require comment="cl_device_info">
                <enum name="CL_DEVICE_PLANAR_YUV_MAX_WIDTH_INTEL"/>
                <enum name="CL_DEVICE_PLANAR_YUV_MAX_HEIGHT_INTEL"/>
            </require>
        </extension>
        <extension name="cl_intel_device_side_avc_motion_estimation" supported="opencl">
            <require comment="cl_device_info">
                <enum name="CL_DEVICE_AVC_ME_VERSION_INTEL"/>
                <enum name="CL_DEVICE_AVC_ME_SUPPORTS_TEXTURE_SAMPLER_USE_INTEL"/>
                <enum name="CL_DEVICE_AVC_ME_SUPPORTS_PREEMPTION_INTEL"/>
            </require>
            <require comment="returned by CL_DEVICE_AVC_ME_VERSION_INTEL">
                <enum name="CL_AVC_ME_VERSION_0_INTEL"/>
                <enum name="CL_AVC_ME_VERSION_1_INTEL"/>
            </require>
            <require comment="Inter macro-block major shape values">
                <enum name="CL_AVC_ME_MAJOR_16x16_INTEL"/>
                <enum name="CL_AVC_ME_MAJOR_16x8_INTEL"/>
                <enum name="CL_AVC_ME_MAJOR_8x16_INTEL"/>
                <enum name="CL_AVC_ME_MAJOR_8x8_INTEL"/>
            </require>
            <require comment="Inter macro-block minor shape values">
                <enum name="CL_AVC_ME_MINOR_8x8_INTEL"/>
                <enum name="CL_AVC_ME_MINOR_8x4_INTEL"/>
                <enum name="CL_AVC_ME_MINOR_4x8_INTEL"/>
                <enum name="CL_AVC_ME_MINOR_4x4_INTEL"/>
            </require>
            <require comment="Inter macro-block major direction values">
                <enum name="CL_AVC_ME_MAJOR_FORWARD_INTEL"/>
                <enum name="CL_AVC_ME_MAJOR_BACKWARD_INTEL"/>
                <enum name="CL_AVC_ME_MAJOR_BIDIRECTIONAL_INTEL"/>
            </require>
            <require comment="Inter (IME) partition mask values">
                <enum name="CL_AVC_ME_PARTITION_MASK_ALL_INTEL"/>
                <enum name="CL_AVC_ME_PARTITION_MASK_16x16_INTEL"/>
                <enum name="CL_AVC_ME_PARTITION_MASK_16x8_INTEL"/>
                <enum name="CL_AVC_ME_PARTITION_MASK_8x16_INTEL"/>
                <enum name="CL_AVC_ME_PARTITION_MASK_8x8_INTEL"/>
                <enum name="CL_AVC_ME_PARTITION_MASK_8x4_INTEL"/>
                <enum name="CL_AVC_ME_PARTITION_MASK_4x8_INTEL"/>
                <enum name="CL_AVC_ME_PARTITION_MASK_4x4_INTEL"/>
            </require>
            <require comment="Search window configuration">
                <enum name="CL_AVC_ME_SEARCH_WINDOW_EXHAUSTIVE_INTEL"/>
                <enum name="CL_AVC_ME_SEARCH_WINDOW_SMALL_INTEL"/>
                <enum name="CL_AVC_ME_SEARCH_WINDOW_TINY_INTEL"/>
                <enum name="CL_AVC_ME_SEARCH_WINDOW_EXTRA_TINY_INTEL"/>
                <enum name="CL_AVC_ME_SEARCH_WINDOW_DIAMOND_INTEL"/>
                <enum name="CL_AVC_ME_SEARCH_WINDOW_LARGE_DIAMOND_INTEL"/>
                <enum name="CL_AVC_ME_SEARCH_WINDOW_RESERVED0_INTEL"/>
                <enum name="CL_AVC_ME_SEARCH_WINDOW_RESERVED1_INTEL"/>
                <enum name="CL_AVC_ME_SEARCH_WINDOW_CUSTOM_INTEL"/>
                <enum name="CL_AVC_ME_SEARCH_WINDOW_16x12_RADIUS_INTEL"/>
                <enum name="CL_AVC_ME_SEARCH_WINDOW_4x4_RADIUS_INTEL"/>
                <enum name="CL_AVC_ME_SEARCH_WINDOW_2x2_RADIUS_INTEL"/>
            </require>
            <require comment="SAD adjustment mode">
                <enum name="CL_AVC_ME_SAD_ADJUST_MODE_NONE_INTEL"/>
                <enum name="CL_AVC_ME_SAD_ADJUST_MODE_HAAR_INTEL"/>
            </require>
            <require comment="Pixel resolution">
                <enum name="CL_AVC_ME_SUBPIXEL_MODE_INTEGER_INTEL"/>
                <enum name="CL_AVC_ME_SUBPIXEL_MODE_HPEL_INTEL"/>
                <enum name="CL_AVC_ME_SUBPIXEL_MODE_QPEL_INTEL"/>
            </require>
            <require comment="Cost precision values">
                <enum name="CL_AVC_ME_COST_PRECISION_QPEL_INTEL"/>
                <enum name="CL_AVC_ME_COST_PRECISION_HPEL_INTEL"/>
                <enum name="CL_AVC_ME_COST_PRECISION_PEL_INTEL"/>
                <enum name="CL_AVC_ME_COST_PRECISION_DPEL_INTEL"/>
            </require>
            <require comment="Inter bidirectional weights">
                <enum name="CL_AVC_ME_BIDIR_WEIGHT_QUARTER_INTEL"/>
                <enum name="CL_AVC_ME_BIDIR_WEIGHT_THIRD_INTEL"/>
                <enum name="CL_AVC_ME_BIDIR_WEIGHT_HALF_INTEL"/>
                <enum name="CL_AVC_ME_BIDIR_WEIGHT_TWO_THIRD_INTEL"/>
                <enum name="CL_AVC_ME_BIDIR_WEIGHT_THREE_QUARTER_INTEL"/>
            </require>
            <require comment="Inter border reached values">
                <enum name="CL_AVC_ME_BORDER_REACHED_LEFT_INTEL"/>
                <enum name="CL_AVC_ME_BORDER_REACHED_RIGHT_INTEL"/>
                <enum name="CL_AVC_ME_BORDER_REACHED_TOP_INTEL"/>
                <enum name="CL_AVC_ME_BORDER_REACHED_BOTTOM_INTEL"/>
            </require>
            <require comment="Inter skip block partition type">
                <enum name="CL_AVC_ME_SKIP_BLOCK_PARTITION_16x16_INTEL"/>
                <enum name="CL_AVC_ME_SKIP_BLOCK_PARTITION_8x8_INTEL"/>
            </require>
            <require comment="Inter skip motion vector mask">
                <enum name="CL_AVC_ME_SKIP_BLOCK_16x16_FORWARD_ENABLE_INTEL"/>
                <enum name="CL_AVC_ME_SKIP_BLOCK_16x16_BACKWARD_ENABLE_INTEL"/>
                <enum name="CL_AVC_ME_SKIP_BLOCK_16x16_DUAL_ENABLE_INTEL"/>
                <enum name="CL_AVC_ME_SKIP_BLOCK_8x8_FORWARD_ENABLE_INTEL"/>
                <enum name="CL_AVC_ME_SKIP_BLOCK_8x8_BACKWARD_ENABLE_INTEL"/>
                <enum name="CL_AVC_ME_SKIP_BLOCK_8x8_DUAL_ENABLE_INTEL"/>
                <enum name="CL_AVC_ME_SKIP_BLOCK_8x8_0_FORWARD_ENABLE_INTEL"/>
                <enum name="CL_AVC_ME_SKIP_BLOCK_8x8_0_BACKWARD_ENABLE_INTEL"/>
                <enum name="CL_AVC_ME_SKIP_BLOCK_8x8_1_FORWARD_ENABLE_INTEL"/>
                <enum name="CL_AVC_ME_SKIP_BLOCK_8x8_1_BACKWARD_ENABLE_INTEL"/>
                <enum name="CL_AVC_ME_SKIP_BLOCK_8x8_2_FORWARD_ENABLE_INTEL"/>
                <enum name="CL_AVC_ME_SKIP_BLOCK_8x8_2_BACKWARD_ENABLE_INTEL"/>
                <enum name="CL_AVC_ME_SKIP_BLOCK_8x8_3_FORWARD_ENABLE_INTEL"/>
                <enum name="CL_AVC_ME_SKIP_BLOCK_8x8_3_BACKWARD_ENABLE_INTEL"/>
            </require>
            <require comment="Block based skip type values">
                <enum name="CL_AVC_ME_BLOCK_BASED_SKIP_4x4_INTEL"/>
                <enum name="CL_AVC_ME_BLOCK_BASED_SKIP_8x8_INTEL"/>
            </require>
            <require comment="cl_intel_device_side_avc_motion_estimation.??">
                <enum name="CL_AVC_ME_INTRA_16x16_INTEL"/>
                <enum name="CL_AVC_ME_INTRA_8x8_INTEL"/>
                <enum name="CL_AVC_ME_INTRA_4x4_INTEL"/>
            </require>
            <require comment="Luma intra partition mask values">
                <enum name="CL_AVC_ME_INTRA_LUMA_PARTITION_MASK_16x16_INTEL"/>
                <enum name="CL_AVC_ME_INTRA_LUMA_PARTITION_MASK_8x8_INTEL"/>
                <enum name="CL_AVC_ME_INTRA_LUMA_PARTITION_MASK_4x4_INTEL"/>
            </require>
            <require comment="Intra neighbor availability mask values">
                <enum name="CL_AVC_ME_INTRA_NEIGHBOR_LEFT_MASK_ENABLE_INTEL"/>
                <enum name="CL_AVC_ME_INTRA_NEIGHBOR_UPPER_MASK_ENABLE_INTEL"/>
                <enum name="CL_AVC_ME_INTRA_NEIGHBOR_UPPER_RIGHT_MASK_ENABLE_INTEL"/>
                <enum name="CL_AVC_ME_INTRA_NEIGHBOR_UPPER_LEFT_MASK_ENABLE_INTEL"/>
            </require>
            <require comment="Luma intra modes">
                <enum name="CL_AVC_ME_LUMA_PREDICTOR_MODE_VERTICAL_INTEL"/>
                <enum name="CL_AVC_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_INTEL"/>
                <enum name="CL_AVC_ME_LUMA_PREDICTOR_MODE_DC_INTEL"/>
                <enum name="CL_AVC_ME_LUMA_PREDICTOR_MODE_DIAGONAL_DOWN_LEFT_INTEL"/>
                <enum name="CL_AVC_ME_LUMA_PREDICTOR_MODE_DIAGONAL_DOWN_RIGHT_INTEL"/>
                <enum name="CL_AVC_ME_LUMA_PREDICTOR_MODE_PLANE_INTEL"/>
                <enum name="CL_AVC_ME_LUMA_PREDICTOR_MODE_VERTICAL_RIGHT_INTEL"/>
                <enum name="CL_AVC_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_DOWN_INTEL"/>
                <enum name="CL_AVC_ME_LUMA_PREDICTOR_MODE_VERTICAL_LEFT_INTEL"/>
                <enum name="CL_AVC_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_UP_INTEL"/>
            </require>
            <require comment="Chroma intra modes">
                <enum name="CL_AVC_ME_CHROMA_PREDICTOR_MODE_DC_INTEL"/>
                <enum name="CL_AVC_ME_CHROMA_PREDICTOR_MODE_HORIZONTAL_INTEL"/>
                <enum name="CL_AVC_ME_CHROMA_PREDICTOR_MODE_VERTICAL_INTEL"/>
                <enum name="CL_AVC_ME_CHROMA_PREDICTOR_MODE_PLANE_INTEL"/>
            </require>
            <require comment="Reference image select values">
                <enum name="CL_AVC_ME_FRAME_FORWARD_INTEL"/>
                <enum name="CL_AVC_ME_FRAME_BACKWARD_INTEL"/>
                <enum name="CL_AVC_ME_FRAME_DUAL_INTEL"/>
            </require>
            <require comment="Slice type values">
                <enum name="CL_AVC_ME_SLICE_TYPE_PRED_INTEL"/>
                <enum name="CL_AVC_ME_SLICE_TYPE_BPRED_INTEL"/>
                <enum name="CL_AVC_ME_SLICE_TYPE_INTRA_INTEL"/>
            </require>
            <require comment="Interlaced image field polarity values">
                <enum name="CL_AVC_ME_INTERLACED_SCAN_TOP_FIELD_INTEL"/>
                <enum name="CL_AVC_ME_INTERLACED_SCAN_BOTTOM_FIELD_INTEL"/>
            </require>
        </extension>
        <extension name="cl_khr_gl_event" supported="opencl">
            <require>
                <type name="CL/cl_gl.h"/>
                <type name="cl_GLsync"/>
            </require>
            <require comment="cl_command_type">
                <enum name="CL_COMMAND_GL_FENCE_SYNC_OBJECT_KHR"/>
            </require>
            <require>
                <command name="clCreateEventFromGLsyncKHR"/>
            </require>
        </extension>
        <extension name="cl_intel_va_api_media_sharing" supported="opencl">
            <require>
                <type name="CL/cl.h"/>
                <type name="CL/cl_platform.h"/>
                <type name="va/va.h"/>
                <type name="cl_va_api_device_source_intel"/>
                <type name="cl_va_api_device_set_intel"/>
            </require>
            <require comment="Error codes">
                <enum name="CL_INVALID_VA_API_MEDIA_ADAPTER_INTEL"/>
                <enum name="CL_INVALID_VA_API_MEDIA_SURFACE_INTEL"/>
                <enum name="CL_VA_API_MEDIA_SURFACE_ALREADY_ACQUIRED_INTEL"/>
                <enum name="CL_VA_API_MEDIA_SURFACE_NOT_ACQUIRED_INTEL"/>
            </require>
            <require comment="cl_va_api_device_source_intel">
                <enum name="CL_VA_API_DISPLAY_INTEL"/>
            </require>
            <require comment="cl_va_api_device_set_intel">
                <enum name="CL_PREFERRED_DEVICES_FOR_VA_API_INTEL"/>
                <enum name="CL_ALL_DEVICES_FOR_VA_API_INTEL"/>
            </require>
            <require comment="cl_context_info">
                <enum name="CL_CONTEXT_VA_API_DISPLAY_INTEL"/>
            </require>
            <require comment="cl_mem_info">
                <enum name="CL_MEM_VA_API_MEDIA_SURFACE_INTEL"/>
            </require>
            <require comment="cl_image_info">
                <enum name="CL_IMAGE_VA_API_PLANE_INTEL"/>
            </require>
            <require comment="cl_command_type">
                <enum name="CL_COMMAND_ACQUIRE_VA_API_MEDIA_SURFACES_INTEL"/>
                <enum name="CL_COMMAND_RELEASE_VA_API_MEDIA_SURFACES_INTEL"/>
            </require>
            <require>
                <command name="clGetDeviceIDsFromVA_APIMediaAdapterINTEL"/>
                <command name="clCreateFromVA_APIMediaSurfaceINTEL"/>
                <command name="clEnqueueAcquireVA_APIMediaSurfacesINTEL"/>
                <command name="clEnqueueReleaseVA_APIMediaSurfacesINTEL"/>
            </require>
        </extension>
        <extension name="cl_intel_dx9_media_sharing" supported="opencl">
            <require>
                <type name="CL/cl.h"/>
                <type name="CL/cl_platform.h"/>
                <type name="d3d9.h"/>
                <type name="dxvahd.h"/>
                <type name="wtypes.h"/>
                <type name="d3d9types.h"/>
                <type name="cl_dx9_device_source_intel"/>
                <type name="cl_dx9_device_set_intel"/>
            </require>
            <require comment="Error codes">
                <enum name="CL_INVALID_DX9_DEVICE_INTEL"/>
                <enum name="CL_INVALID_DX9_RESOURCE_INTEL"/>
                <enum name="CL_DX9_RESOURCE_ALREADY_ACQUIRED_INTEL"/>
                <enum name="CL_DX9_RESOURCE_NOT_ACQUIRED_INTEL"/>
            </require>
            <require comment="cl_dx9_device_source_intel">
                <enum name="CL_D3D9_DEVICE_INTEL"/>
                <enum name="CL_D3D9EX_DEVICE_INTEL"/>
                <enum name="CL_DXVA_DEVICE_INTEL"/>
            </require>
            <require comment="cl_dx9_device_set_intel">
                <enum name="CL_PREFERRED_DEVICES_FOR_DX9_INTEL"/>
                <enum name="CL_ALL_DEVICES_FOR_DX9_INTEL"/>
            </require>
            <require comment="cl_context_info">
                <enum name="CL_CONTEXT_D3D9_DEVICE_INTEL"/>
                <enum name="CL_CONTEXT_D3D9EX_DEVICE_INTEL"/>
                <enum name="CL_CONTEXT_DXVA_DEVICE_INTEL"/>
            </require>
            <require comment="cl_mem_info">
                <enum name="CL_MEM_DX9_RESOURCE_INTEL"/>
                <enum name="CL_MEM_DX9_SHARED_HANDLE_INTEL"/>
            </require>
            <require comment="cl_image_info">
                <enum name="CL_IMAGE_DX9_PLANE_INTEL"/>
            </require>
            <require comment="cl_command_type">
                <enum name="CL_COMMAND_ACQUIRE_DX9_OBJECTS_INTEL"/>
                <enum name="CL_COMMAND_RELEASE_DX9_OBJECTS_INTEL"/>
            </require>
            <require>
                <command name="clGetDeviceIDsFromDX9INTEL"/>
                <command name="clCreateFromDX9MediaSurfaceINTEL"/>
                <command name="clEnqueueAcquireDX9ObjectsINTEL"/>
                <command name="clEnqueueReleaseDX9ObjectsINTEL"/>
            </require>
        </extension>
        <extension name="cl_khr_gl_depth_images" requires="cl_khr_gl_sharing" comment="no API - reuses tokens from core API" supported="opencl">
            <require>
                <type name="CL/cl.h"/>
            </require>
            <require comment="cl_channel_order">
                <enum name="CL_DEPTH_STENCIL"/>
            </require>
            <require comment="cl_channel_type">
                <enum name="CL_UNORM_INT24"/>
                <enum name="CL_FLOAT"/>
            </require>
        </extension>
        <extension name="cl_khr_gl_msaa_sharing" requires="cl_khr_gl_depth_images" comment="no API - reuses tokens from core API" supported="opencl">
            <require>
                <type name="CL/cl.h"/>
            </require>
            <require comment="cl_gl_texture_info">
                <!-- <enum name="GL_TEXTURE_2D_MULTISAMPLE"/> -->
                <!-- <enum name="GL_TEXTURE_2D_MULTISAMPLE_ARRAY"/> -->
                <enum name="CL_GL_NUM_SAMPLES"/>
            </require>
        </extension>
        <extension name="cl_khr_gl_sharing" supported="opencl">
            <require>
                <type name="CL/cl.h"/>
            </require>
            <require>
                <type name="cl_gl_context_info"/>
            </require>
            <require comment="Error codes">
                <enum name="CL_INVALID_GL_SHAREGROUP_REFERENCE_KHR"/>
            </require>
            <require comment="cl_gl_context_info">
                <enum name="CL_CURRENT_DEVICE_FOR_GL_CONTEXT_KHR"/>
                <enum name="CL_DEVICES_FOR_GL_CONTEXT_KHR"/>
            </require>
            <require comment="Additional cl_context_properties">
                <enum name="CL_GL_CONTEXT_KHR"/>
                <enum name="CL_EGL_DISPLAY_KHR"/>
                <enum name="CL_GLX_DISPLAY_KHR"/>
                <enum name="CL_WGL_HDC_KHR"/>
                <enum name="CL_CGL_SHAREGROUP_KHR"/>
            </require>
            <require>
                <command name="clGetGLContextInfoKHR"/>
            </require>
            <require comment="Mislabelled as cl_khr_gl_sharing__memobjs in header">
                <type name="CL/cl.h"/>
            </require>
            <require>
                <type name="cl_gl_object_type"/>
                <type name="cl_gl_texture_info"/>
                <type name="cl_gl_platform_info" comment="Unused"/>
            </require>
            <require comment="cl_gl_object_type">
                <enum name="CL_GL_OBJECT_BUFFER"/>
                <enum name="CL_GL_OBJECT_TEXTURE2D"/>
                <enum name="CL_GL_OBJECT_TEXTURE3D"/>
                <enum name="CL_GL_OBJECT_RENDERBUFFER"/>
            </require>
            <require feature="CL_VERSION_1_2" comment="cl_gl_object_type">
                <enum name="CL_GL_OBJECT_TEXTURE2D_ARRAY"/>
                <enum name="CL_GL_OBJECT_TEXTURE1D"/>
                <enum name="CL_GL_OBJECT_TEXTURE1D_ARRAY"/>
                <enum name="CL_GL_OBJECT_TEXTURE_BUFFER"/>
            </require>
            <require comment="cl_gl_texture_info">
                <enum name="CL_GL_TEXTURE_TARGET"/>
                <enum name="CL_GL_MIPMAP_LEVEL"/>
            </require>
            <require feature="CL_VERSION_1_2" comment="cl_gl_texture_info">
                <enum name="CL_GL_NUM_SAMPLES"/>
            </require>
            <require comment="Error codes">
                <enum name="CL_INVALID_GL_OBJECT"/>
                <enum name="CL_INVALID_MIP_LEVEL"/>
            </require>
            <require>
                <command name="clCreateFromGLBuffer"/>
            </require>
            <require feature="CL_VERSION_1_2">
                <command name="clCreateFromGLTexture"/>
            </require>
            <require comment="OpenCL 1.0 APIs that were deprecated in OpenCL 1.2">
                <command name="clCreateFromGLTexture2D"/>
                <command name="clCreateFromGLTexture3D"/>
            </require>
            <require>
                <command name="clCreateFromGLRenderbuffer"/>
                <command name="clGetGLObjectInfo"/>
                <command name="clGetGLTextureInfo"/>
                <command name="clEnqueueAcquireGLObjects"/>
                <command name="clEnqueueReleaseGLObjects"/>
            </require>
        </extension>
        <extension name="cl_intel_unified_shared_memory" comment="in sync with rev O" supported="opencl">
            <require>
                <type name="cl_device_unified_shared_memory_capabilities_intel"/>
                <type name="cl_mem_properties_intel"/>
                <type name="cl_mem_alloc_flags_intel"/>
                <type name="cl_mem_info_intel"/>
                <type name="cl_unified_shared_memory_type_intel"/>
                <type name="cl_mem_advice_intel"/>
            </require>
            <require comment="cl_device_info">
                <enum name="CL_DEVICE_HOST_MEM_CAPABILITIES_INTEL"/>
                <enum name="CL_DEVICE_DEVICE_MEM_CAPABILITIES_INTEL"/>
                <enum name="CL_DEVICE_SINGLE_DEVICE_SHARED_MEM_CAPABILITIES_INTEL"/>
                <enum name="CL_DEVICE_CROSS_DEVICE_SHARED_MEM_CAPABILITIES_INTEL"/>
                <enum name="CL_DEVICE_SHARED_SYSTEM_MEM_CAPABILITIES_INTEL"/>
            </require>
            <require comment="cl_unified_shared_memory_capabilities_intel - bitfield">
                <enum name="CL_UNIFIED_SHARED_MEMORY_ACCESS_INTEL"/>
                <enum name="CL_UNIFIED_SHARED_MEMORY_ATOMIC_ACCESS_INTEL"/>
                <enum name="CL_UNIFIED_SHARED_MEMORY_CONCURRENT_ACCESS_INTEL"/>
                <enum name="CL_UNIFIED_SHARED_MEMORY_CONCURRENT_ATOMIC_ACCESS_INTEL"/>
            </require>
            <require comment="cl_mem_properties_intel">
                <enum name="CL_MEM_ALLOC_FLAGS_INTEL"/>
            </require>
            <require comment="cl_mem_alloc_flags_intel - bitfield">
                <enum name="CL_MEM_ALLOC_WRITE_COMBINED_INTEL"/>
            </require>
            <require comment="cl_mem_alloc_info_intel">
                <enum name="CL_MEM_ALLOC_TYPE_INTEL"/>
                <enum name="CL_MEM_ALLOC_BASE_PTR_INTEL"/>
                <enum name="CL_MEM_ALLOC_SIZE_INTEL"/>
                <enum name="CL_MEM_ALLOC_DEVICE_INTEL"/>
            </require>
            <require comment="cl_unified_shared_memory_type_intel">
                <enum name="CL_MEM_TYPE_UNKNOWN_INTEL"/>
                <enum name="CL_MEM_TYPE_HOST_INTEL"/>
                <enum name="CL_MEM_TYPE_DEVICE_INTEL"/>
                <enum name="CL_MEM_TYPE_SHARED_INTEL"/>
            </require>
            <require comment="cl_kernel_exec_info">
                <enum name="CL_KERNEL_EXEC_INFO_INDIRECT_HOST_ACCESS_INTEL"/>
                <enum name="CL_KERNEL_EXEC_INFO_INDIRECT_DEVICE_ACCESS_INTEL"/>
                <enum name="CL_KERNEL_EXEC_INFO_INDIRECT_SHARED_ACCESS_INTEL"/>
                <enum name="CL_KERNEL_EXEC_INFO_USM_PTRS_INTEL"/>
            </require>
            <require comment="cl_command_type">
                <enum name="CL_COMMAND_MEMFILL_INTEL"/>
                <enum name="CL_COMMAND_MEMCPY_INTEL"/>
                <enum name="CL_COMMAND_MIGRATEMEM_INTEL"/>
                <enum name="CL_COMMAND_MEMADVISE_INTEL"/>
            </require>
            <require>
                <command name="clHostMemAllocINTEL"/>
                <command name="clDeviceMemAllocINTEL"/>
                <command name="clSharedMemAllocINTEL"/>
                <command name="clMemFreeINTEL"/>
                <command name="clGetMemAllocInfoINTEL"/>
                <command name="clSetKernelArgMemPointerINTEL"/>
                <command name="clEnqueueMemsetINTEL"/>
                <command name="clEnqueueMemFillINTEL"/>
                <command name="clEnqueueMemcpyINTEL"/>
                <command name="clEnqueueMemAdviseINTEL"/>
            </require>
            <require condition="defined(CL_VERSION_1_2)" comment="Requires OpenCL 1.2 for cl_mem_migration_flags:">
              <command name="clEnqueueMigrateMemINTEL" requires="CL_VERSION_1_2"/>
            </require>
        </extension>
        <extension name="cl_khr_device_uuid" supported="opencl">
            <require comment="Size Constants">
                <enum name="CL_UUID_SIZE_KHR"/>
                <enum name="CL_LUID_SIZE_KHR"/>
            </require>
            <require comment="cl_device_info">
                <enum name="CL_DEVICE_UUID_KHR"/>
                <enum name="CL_DRIVER_UUID_KHR"/>
                <enum name="CL_DEVICE_LUID_VALID_KHR"/>
                <enum name="CL_DEVICE_LUID_KHR"/>
                <enum name="CL_DEVICE_NODE_MASK_KHR"/>
            </require>
        </extension>
        <extension name="cl_intel_create_buffer_with_properties" supported="opencl">
            <require>
                <command name="clCreateBufferWithPropertiesINTEL"/>
            </require>
        </extension>
        <extension name="cl_intel_mem_channel_property" supported="opencl">
            <require comment="cl_mem_properties_intel">
                <enum name="CL_MEM_CHANNEL_INTEL"/>
            </require>
        </extension>
        <extension name="cl_arm_scheduling_controls" supported="opencl">
            <require comment="Types">
                <type name="cl_device_scheduling_controls_capabilities_arm"/>
            </require>
            <require comment="cl_device_scheduling_controls_capabilities_arm">
                <enum name="CL_DEVICE_SCHEDULING_KERNEL_BATCHING_ARM"/>
                <enum name="CL_DEVICE_SCHEDULING_WORKGROUP_BATCH_SIZE_ARM"/>
                <enum name="CL_DEVICE_SCHEDULING_WORKGROUP_BATCH_SIZE_MODIFIER_ARM"/>
                <enum name="CL_DEVICE_SCHEDULING_DEFERRED_FLUSH_ARM"/>
                <enum name="CL_DEVICE_SCHEDULING_REGISTER_ALLOCATION_ARM"/>
            </require>
            <require comment="cl_device_info">
                <enum name="CL_DEVICE_SCHEDULING_CONTROLS_CAPABILITIES_ARM"/>
                <enum name="CL_DEVICE_SUPPORTED_REGISTER_ALLOCATIONS_ARM"/>
            </require>
            <require comment="cl_kernel_exec_info">
                <enum name="CL_KERNEL_EXEC_INFO_WORKGROUP_BATCH_SIZE_ARM"/>
                <enum name="CL_KERNEL_EXEC_INFO_WORKGROUP_BATCH_SIZE_MODIFIER_ARM"/>
            </require>
            <require comment="cl_queue_properties">
                <enum name="CL_QUEUE_KERNEL_BATCHING_ARM"/>
                <enum name="CL_QUEUE_DEFERRED_FLUSH_ARM"/>
            </require>
        </extension>
        <extension name="cl_ext_cxx_for_opencl" supported="opencl">
            <require comment="cl_device_info">
                <enum name="CL_DEVICE_CXX_FOR_OPENCL_NUMERIC_VERSION_EXT"/>
            </require>
        </extension>
        <extension name="cl_intel_mem_force_host_memory" supported="opencl">
            <require comment="cl_mem_flags">
                <enum name="CL_MEM_FORCE_HOST_MEMORY_INTEL"/>
            </require>
        </extension>
        <extension name="cl_khr_depth_images" supported="opencl">
            <require>
                <type name="CL/cl.h"/>
            </require>
            <require condition="!defined(CL_VERSION_1_2)" comment="cl_channel_order - defined in CL.h for OpenCL 1.2 (?) and newer">
                <enum name="CL_DEPTH"/>
            </require>
        </extension>
        <extension name="cl_khr_extended_versioning" supported="opencl">
            <require comment="Constants">
                <enum name="CL_NAME_VERSION_MAX_NAME_SIZE_KHR"/>
                <enum name="CL_VERSION_MAJOR_BITS_KHR"/>
                <enum name="CL_VERSION_MINOR_BITS_KHR"/>
                <enum name="CL_VERSION_PATCH_BITS_KHR"/>
            </require>
            <require comment="Types">
                <type name="cl_version_khr"/>
                <type name="cl_name_version_khr"/>
            </require>
            <require comment="cl_platform_info">
                <enum name="CL_PLATFORM_NUMERIC_VERSION_KHR"/>
                <enum name="CL_PLATFORM_EXTENSIONS_WITH_VERSION_KHR"/>
            </require>
            <require comment="cl_device_info">
                <enum name="CL_DEVICE_NUMERIC_VERSION_KHR"/>
                <enum name="CL_DEVICE_OPENCL_C_NUMERIC_VERSION_KHR"/>
                <enum name="CL_DEVICE_EXTENSIONS_WITH_VERSION_KHR"/>
                <enum name="CL_DEVICE_ILS_WITH_VERSION_KHR"/>
                <enum name="CL_DEVICE_BUILT_IN_KERNELS_WITH_VERSION_KHR"/>
            </require>
        </extension>
        <extension name="cl_img_generate_mipmap" supported="opencl">
            <require comment="cl_mipmap_filter_mode_img">
                <enum name="CL_MIPMAP_FILTER_ANY_IMG"/>
                <enum name="CL_MIPMAP_FILTER_BOX_IMG"/>
            </require>
            <require comment="cl_command_type">
                <enum name="CL_COMMAND_GENERATE_MIPMAP_IMG"/>
            </require>
            <require>
                <command name="clEnqueueGenerateMipmapIMG"/>
            </require>
        </extension>
        <extension name="cl_img_mem_properties" supported="opencl">
            <require>
                <type name="CL/cl.h"/>
            </require>
            <require comment="cl_mem_properties">
                <enum name="CL_MEM_ALLOC_FLAGS_IMG"/>
            </require>
            <require comment="cl_mem_alloc_flags_img">
                <enum name="CL_MEM_ALLOC_RELAX_REQUIREMENTS_IMG"/>
            </require>
        </extension>
        <extension name="cl_arm_controlled_kernel_termination" supported="opencl">
            <require comment="Types">
                <type name="cl_device_controlled_termination_capabilities_arm"/>
            </require>
            <require comment="Error codes">
                <enum name="CL_COMMAND_TERMINATED_ITSELF_WITH_FAILURE_ARM"/>
            </require>
            <require comment="cl_device_controlled_termination_capabilities_arm">
                <enum name="CL_DEVICE_CONTROLLED_TERMINATION_SUCCESS_ARM"/>
                <enum name="CL_DEVICE_CONTROLLED_TERMINATION_FAILURE_ARM"/>
                <enum name="CL_DEVICE_CONTROLLED_TERMINATION_QUERY_ARM"/>
            </require>
            <require comment="cl_device_info">
                <enum name="CL_DEVICE_CONTROLLED_TERMINATION_CAPABILITIES_ARM"/>
            </require>
            <require comment="cl_event_info">
                <enum name="CL_EVENT_COMMAND_TERMINATION_REASON_ARM"/>
            </require>
            <require comment="cl_command_termination_reason_arm">
                <enum name="CL_COMMAND_TERMINATION_COMPLETION_ARM"/>
                <enum name="CL_COMMAND_TERMINATION_CONTROLLED_SUCCESS_ARM"/>
                <enum name="CL_COMMAND_TERMINATION_CONTROLLED_FAILURE_ARM"/>
                <enum name="CL_COMMAND_TERMINATION_ERROR_ARM"/>
            </require>
        </extension>
        <extension name="cl_intel_command_queue_families" supported="opencl">
            <require>
                <type name="CL/cl.h"/>
            </require>
            <require>
                <type name="cl_command_queue_capabilities_intel"/>
            </require>
            <require>
                <enum name="CL_QUEUE_FAMILY_MAX_NAME_SIZE_INTEL"/>
            </require>
            <require>
                <type name="cl_queue_family_properties_intel"/>
            </require>
            <require comment="cl_device_info">
                <enum name="CL_DEVICE_QUEUE_FAMILY_PROPERTIES_INTEL"/>
            </require>
            <require comment="cl_queue_properties">
                <enum name="CL_QUEUE_FAMILY_INTEL"/>
                <enum name="CL_QUEUE_INDEX_INTEL"/>
            </require>
            <require comment="cl_command_queue_capabilities_intel">
                <enum name="CL_QUEUE_DEFAULT_CAPABILITIES_INTEL"/>
                <enum name="CL_QUEUE_CAPABILITY_CREATE_SINGLE_QUEUE_EVENTS_INTEL"/>
                <enum name="CL_QUEUE_CAPABILITY_CREATE_CROSS_QUEUE_EVENTS_INTEL"/>
                <enum name="CL_QUEUE_CAPABILITY_SINGLE_QUEUE_EVENT_WAIT_LIST_INTEL"/>
                <enum name="CL_QUEUE_CAPABILITY_CROSS_QUEUE_EVENT_WAIT_LIST_INTEL"/>
                <enum name="CL_QUEUE_CAPABILITY_TRANSFER_BUFFER_INTEL"/>
                <enum name="CL_QUEUE_CAPABILITY_TRANSFER_BUFFER_RECT_INTEL"/>
                <enum name="CL_QUEUE_CAPABILITY_MAP_BUFFER_INTEL"/>
                <enum name="CL_QUEUE_CAPABILITY_FILL_BUFFER_INTEL"/>
                <enum name="CL_QUEUE_CAPABILITY_TRANSFER_IMAGE_INTEL"/>
                <enum name="CL_QUEUE_CAPABILITY_MAP_IMAGE_INTEL"/>
                <enum name="CL_QUEUE_CAPABILITY_FILL_IMAGE_INTEL"/>
                <enum name="CL_QUEUE_CAPABILITY_TRANSFER_BUFFER_IMAGE_INTEL"/>
                <enum name="CL_QUEUE_CAPABILITY_TRANSFER_IMAGE_BUFFER_INTEL"/>
                <enum name="CL_QUEUE_CAPABILITY_MARKER_INTEL"/>
                <enum name="CL_QUEUE_CAPABILITY_BARRIER_INTEL"/>
                <enum name="CL_QUEUE_CAPABILITY_KERNEL_INTEL"/>
            </require>
        </extension>
    </extensions>
</registry>
