Commit 66f69c57 authored by Brice Videau's avatar Brice Videau
Browse files

Finished support for OpenCL 3.0.

parent b4ea4ad8
This diff is collapsed.
--- cl.xml 2020-05-06 10:25:18.990171213 -0500
+++ cl.xml.patched 2020-05-06 11:54:02.411921608 -0500
@@ -208,8 +208,10 @@
<type category="define">typedef <type>cl_uint</type> <name>cl_mem_advice_intel</name>;</type>
--- cl.xml 2020-10-21 09:49:17.390459386 -0500
+++ cl.xml.patched 2020-10-21 10:32:25.496499193 -0500
@@ -210,8 +210,10 @@
<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_bitfield</type> <name>cl_device_device_enqueue_capabilities</name>;</type>
+ <type category="define">typedef <type>cl_uint</type> <name>cl_icdl_info</name>;</type>
+ <type category="define">typedef <type>cl_uint</type> <name>cl_execution_info_intel</name>;</type>
<comment>Structure types</comment>
<type category="struct" name="cl_dx9_surface_info_khr">
<member><type>IDirect3DSurface9</type>* <name>resource</name></member>
@@ -247,16 +249,9 @@
@@ -249,16 +251,9 @@
<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>
......@@ -29,7 +29,7 @@
<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>
@@ -544,13 +539,13 @@
@@ -552,13 +547,13 @@
<enum value="CL_FALSE" name="CL_NON_BLOCKING"/>
</enums>
......@@ -48,7 +48,7 @@
<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"/>
@@ -560,8 +555,15 @@
@@ -568,8 +563,15 @@
<enum value="0x10" name="CL_AFFINITY_DOMAIN_NUMA_EXT"/>
<enum value="0x100" name="CL_AFFINITY_DOMAIN_NEXT_FISSIONABLE_EXT"/>
</enums>
......@@ -64,7 +64,7 @@
<enum value="0" name="CL_BUILD_SUCCESS"/>
<enum value="-1" name="CL_BUILD_NONE"/>
<enum value="-2" name="CL_BUILD_ERROR"/>
@@ -2304,8 +2306,107 @@
@@ -2344,8 +2346,99 @@
<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>
......@@ -77,14 +77,6 @@
+ <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>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>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_EXT_SUFFIX__VERSION_1_0">
+ <proto><type>cl_mem</type> <name>clCreateImageWithPropertiesINTEL</name></proto>
+ <param><type>cl_context</type> <name>context</name></param>
+ <param>const <type>cl_mem_properties_intel</type>* <name>properties</name></param>
......@@ -172,18 +164,7 @@
<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>
@@ -2862,9 +2963,9 @@
</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_indx</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>
@@ -4019,9 +4120,9 @@
@@ -4074,9 +4167,9 @@
<enum name="CL_DEVICE_PARTITION_BY_COUNTS"/>
<enum name="CL_DEVICE_PARTITION_BY_COUNTS_LIST_END"/>
<enum name="CL_DEVICE_PARTITION_BY_AFFINITY_DOMAIN"/>
......@@ -194,7 +175,7 @@
<enum name="CL_DEVICE_AFFINITY_DOMAIN_L4_CACHE"/>
<enum name="CL_DEVICE_AFFINITY_DOMAIN_L3_CACHE"/>
<enum name="CL_DEVICE_AFFINITY_DOMAIN_L2_CACHE"/>
@@ -4092,9 +4193,9 @@
@@ -4140,9 +4233,9 @@
<enum name="CL_KERNEL_ARG_ACCESS_WRITE_ONLY"/>
<enum name="CL_KERNEL_ARG_ACCESS_READ_WRITE"/>
<enum name="CL_KERNEL_ARG_ACCESS_NONE"/>
......@@ -205,7 +186,7 @@
<enum name="CL_KERNEL_ARG_TYPE_CONST"/>
<enum name="CL_KERNEL_ARG_TYPE_RESTRICT"/>
<enum name="CL_KERNEL_ARG_TYPE_VOLATILE"/>
@@ -4171,9 +4272,9 @@
@@ -4219,9 +4312,9 @@
<require comment="cl_command_queue_properties - bitfield">
<enum name="CL_QUEUE_ON_DEVICE"/>
<enum name="CL_QUEUE_ON_DEVICE_DEFAULT"/>
......@@ -216,7 +197,7 @@
<enum name="CL_DEVICE_SVM_FINE_GRAIN_BUFFER"/>
<enum name="CL_DEVICE_SVM_FINE_GRAIN_SYSTEM"/>
<enum name="CL_DEVICE_SVM_ATOMICS"/>
@@ -4210,9 +4311,9 @@
@@ -4259,9 +4352,9 @@
</require>
<require comment="cl_program_build_info">
<enum name="CL_PROGRAM_BUILD_GLOBAL_VARIABLE_TOTAL_SIZE"/>
......@@ -227,7 +208,18 @@
</require>
<require comment="cl_kernel_exec_info">
<enum name="CL_KERNEL_EXEC_INFO_SVM_PTRS"/>
@@ -4528,14 +4629,14 @@
@@ -4361,9 +4454,9 @@
</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">
+ <require comment="cl_program_info 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>
@@ -4588,14 +4681,14 @@
<extension name="cl_khr_egl_image" supported="opencl">
<require>
<type name="CL/cl.h"/>
......@@ -244,7 +236,7 @@
<enum name="CL_EGL_RESOURCE_NOT_ACQUIRED_KHR"/>
</require>
<require comment="CLeglImageKHR is an opaque handle to an EGLImage">
@@ -4619,10 +4720,12 @@
@@ -4679,10 +4772,12 @@
</require>
<require comment="cl_device_info">
<enum name="CL_DEVICE_IL_VERSION_KHR"/>
......@@ -258,7 +250,7 @@
</require>
</extension>
<extension name="cl_khr_image2D_buffer" supported="opencl">
@@ -4760,9 +4863,9 @@
@@ -4840,9 +4935,9 @@
</require>
<require comment="cl_device_partition_property_ext">
<type name="cl_mem_migration_flags_ext"/>
......@@ -269,7 +261,7 @@
</require>
<require comment="cl_command_type">
<enum name="CL_COMMAND_MIGRATE_MEM_OBJECT_EXT"/>
@@ -4847,12 +4950,12 @@
@@ -4927,12 +5022,12 @@
<extension name="cl_img_use_gralloc_ptr" supported="opencl">
<require>
<type name="CL/cl.h"/>
......@@ -284,7 +276,7 @@
<enum name="CL_COMMAND_RELEASE_GRALLOC_OBJECTS_IMG"/>
</require>
<require comment="Error codes">
@@ -4924,9 +5027,9 @@
@@ -5004,9 +5099,9 @@
</require>
<require comment="To be used by clGetEventInfo">
<type name="cl_import_properties_arm"/>
......@@ -295,7 +287,7 @@
<enum name="CL_IMPORT_TYPE_HOST_ARM"/>
<enum name="CL_IMPORT_TYPE_DMA_BUF_ARM"/>
<enum name="CL_IMPORT_TYPE_PROTECTED_ARM"/>
@@ -4959,32 +5062,32 @@
@@ -5039,32 +5134,32 @@
<type name="cl_svm_mem_flags_arm"/>
<type name="cl_kernel_exec_info_arm"/>
<type name="cl_device_svm_capabilities_arm"/>
......
......@@ -38,6 +38,7 @@ typedef struct _cl_sampler * cl_sampler;
typedef cl_uint cl_bool; /* WARNING! Unlike cl_ types in cl_platform.h, cl_bool is not guaranteed to be the same size as the bool in kernels. */
typedef cl_ulong cl_bitfield;
typedef cl_ulong cl_properties;
typedef cl_bitfield cl_device_type;
typedef cl_uint cl_platform_info;
typedef cl_uint cl_device_info;
......@@ -57,7 +58,7 @@ typedef cl_bitfield cl_device_affinity_domain;
typedef intptr_t cl_context_properties;
typedef cl_uint cl_context_info;
#ifdef CL_VERSION_2_0
typedef cl_bitfield cl_queue_properties;
typedef cl_properties cl_queue_properties;
#endif
typedef cl_uint cl_command_queue_info;
typedef cl_uint cl_channel_order;
......@@ -104,13 +105,14 @@ typedef cl_uint cl_event_info;
typedef cl_uint cl_command_type;
typedef cl_uint cl_profiling_info;
#ifdef CL_VERSION_2_0
typedef cl_bitfield cl_sampler_properties;
typedef cl_properties cl_sampler_properties;
typedef cl_uint cl_kernel_exec_info;
#endif
#ifdef CL_VERSION_3_0
typedef cl_bitfield cl_device_atomic_capabilities;
typedef cl_bitfield cl_device_device_enqueue_capabilities;
typedef cl_uint cl_khronos_vendor_id;
typedef cl_bitfield cl_mem_properties;
typedef cl_properties cl_mem_properties;
typedef cl_uint cl_version;
#endif
......@@ -132,20 +134,28 @@ typedef struct _cl_image_desc {
cl_uint num_mip_levels;
cl_uint num_samples;
#ifdef CL_VERSION_2_0
#ifdef __GNUC__
__extension__ /* Prevents warnings about anonymous union in -pedantic builds */
#if defined(__GNUC__)
__extension__ /* Prevents warnings about anonymous union in -pedantic builds */
#endif
#ifdef _MSC_VER
#if defined(_MSC_VER) && !defined(__STDC__)
#pragma warning( push )
#pragma warning( disable : 4201 ) /* Prevents warning about nameless struct/union in /W4 /Za builds */
#pragma warning( disable : 4201 ) /* Prevents warning about nameless struct/union in /W4 builds */
#endif
#if defined(_MSC_VER) && defined(__STDC__)
/* Anonymous unions are not supported in /Za builds */
#else
union {
#endif
#endif
cl_mem buffer;
#ifdef CL_VERSION_2_0
#if defined(_MSC_VER) && defined(__STDC__)
/* Anonymous unions are not supported in /Za builds */
#else
cl_mem mem_object;
};
#ifdef _MSC_VER
#endif
#if defined(_MSC_VER) && !defined(__STDC__)
#pragma warning( pop )
#endif
#endif
......@@ -408,8 +418,9 @@ typedef struct _cl_name_version {
#define CL_DEVICE_GENERIC_ADDRESS_SPACE_SUPPORT 0x1069
/* 0x106A to 0x106E - Reserved for upcoming KHR extension */
#define CL_DEVICE_OPENCL_C_FEATURES 0x106F
#define CL_DEVICE_DEVICE_ENQUEUE_SUPPORT 0x1070
#define CL_DEVICE_DEVICE_ENQUEUE_CAPABILITIES 0x1070
#define CL_DEVICE_PIPE_SUPPORT 0x1071
#define CL_DEVICE_LATEST_CONFORMANCE_VERSION_PASSED 0x1072
#endif
/* cl_device_fp_config - bitfield */
......@@ -893,6 +904,12 @@ typedef struct _cl_name_version {
#define CL_DEVICE_ATOMIC_SCOPE_ALL_DEVICES (1 << 6)
#endif
/* cl_device_device_enqueue_capabilities - bitfield */
#ifdef CL_VERSION_3_0
#define CL_DEVICE_QUEUE_SUPPORTED (1 << 0)
#define CL_DEVICE_QUEUE_REPLACEABLE_DEFAULT (1 << 1)
#endif
/* cl_khronos_vendor_id */
#define CL_KHRONOS_VENDOR_ID_CODEPLAY 0x10004
......@@ -1023,6 +1040,16 @@ clGetContextInfo(cl_context context,
void * param_value,
size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_1_0;
#ifdef CL_VERSION_3_0
extern CL_API_ENTRY cl_int CL_API_CALL
clSetContextDestructorCallback(cl_context context,
void (CL_CALLBACK* pfn_notify)(cl_context context,
void* user_data),
void* user_data) CL_API_SUFFIX__VERSION_3_0;
#endif
/* Command Queue APIs */
#ifdef CL_VERSION_2_0
......@@ -1284,11 +1311,11 @@ clLinkProgram(cl_context context,
#ifdef CL_VERSION_2_2
extern CL_API_ENTRY cl_int CL_API_CALL
extern CL_API_ENTRY CL_EXT_PREFIX__VERSION_2_2_DEPRECATED cl_int CL_API_CALL
clSetProgramReleaseCallback(cl_program program,
void (CL_CALLBACK * pfn_notify)(cl_program program,
void * user_data),
void * user_data) CL_API_SUFFIX__VERSION_2_2;
void * user_data) CL_EXT_SUFFIX__VERSION_2_2_DEPRECATED;
extern CL_API_ENTRY cl_int CL_API_CALL
clSetProgramSpecializationConstant(cl_program program,
......
......@@ -17,7 +17,18 @@
#ifndef __OPENCL_CL_D3D10_H
#define __OPENCL_CL_D3D10_H
#if defined(_MSC_VER)
#if _MSC_VER >=1500
#pragma warning( push )
#pragma warning( disable : 4201 )
#endif
#endif
#include <d3d10.h>
#if defined(_MSC_VER)
#if _MSC_VER >=1500
#pragma warning( pop )
#endif
#endif
#include <CL/cl.h>
#include <CL/cl_platform.h>
......
......@@ -17,7 +17,18 @@
#ifndef __OPENCL_CL_D3D11_H
#define __OPENCL_CL_D3D11_H
#if defined(_MSC_VER)
#if _MSC_VER >=1500
#pragma warning( push )
#pragma warning( disable : 4201 )
#endif
#endif
#include <d3d11.h>
#if defined(_MSC_VER)
#if _MSC_VER >=1500
#pragma warning( pop )
#endif
#endif
#include <CL/cl.h>
#include <CL/cl_platform.h>
......
......@@ -198,7 +198,7 @@ typedef CL_API_ENTRY cl_int
*****************************************/
#define cl_khr_create_command_queue 1
typedef cl_bitfield cl_queue_properties_khr;
typedef cl_properties cl_queue_properties_khr;
extern CL_API_ENTRY cl_command_queue CL_API_CALL
clCreateCommandQueueWithPropertiesKHR(cl_context context,
......@@ -231,7 +231,27 @@ typedef CL_API_ENTRY cl_command_queue
* cl_amd_device_attribute_query *
*********************************/
#define CL_DEVICE_PROFILING_TIMER_OFFSET_AMD 0x4036
#define CL_DEVICE_PROFILING_TIMER_OFFSET_AMD 0x4036
#define CL_DEVICE_TOPOLOGY_AMD 0x4037
#define CL_DEVICE_BOARD_NAME_AMD 0x4038
#define CL_DEVICE_GLOBAL_FREE_MEMORY_AMD 0x4039
#define CL_DEVICE_SIMD_PER_COMPUTE_UNIT_AMD 0x4040
#define CL_DEVICE_SIMD_WIDTH_AMD 0x4041
#define CL_DEVICE_SIMD_INSTRUCTION_WIDTH_AMD 0x4042
#define CL_DEVICE_WAVEFRONT_WIDTH_AMD 0x4043
#define CL_DEVICE_GLOBAL_MEM_CHANNELS_AMD 0x4044
#define CL_DEVICE_GLOBAL_MEM_CHANNEL_BANKS_AMD 0x4045
#define CL_DEVICE_GLOBAL_MEM_CHANNEL_BANK_WIDTH_AMD 0x4046
#define CL_DEVICE_LOCAL_MEM_SIZE_PER_COMPUTE_UNIT_AMD 0x4047
#define CL_DEVICE_LOCAL_MEM_BANKS_AMD 0x4048
#define CL_DEVICE_THREAD_TRACE_SUPPORTED_AMD 0x4049
#define CL_DEVICE_GFXIP_MAJOR_AMD 0x404A
#define CL_DEVICE_GFXIP_MINOR_AMD 0x404B
#define CL_DEVICE_AVAILABLE_ASYNC_QUEUES_AMD 0x404C
#define CL_DEVICE_PREFERRED_WORK_GROUP_SIZE_AMD 0x4030
#define CL_DEVICE_MAX_WORK_GROUP_SIZE_AMD 0x4031
#define CL_DEVICE_PREFERRED_CONSTANT_BUFFER_SIZE_AMD 0x4033
#define CL_DEVICE_PCIE_ID_AMD 0x4034
/*********************************
......@@ -336,6 +356,13 @@ typedef CL_API_ENTRY cl_int
cl_event * event);
/*********************************
* cl_ext_cxx_for_opencl extension
*********************************/
#define cl_ext_cxx_for_opencl 1
#define CL_DEVICE_CXX_FOR_OPENCL_NUMERIC_VERSION_EXT 0x4230
/*********************************
* cl_qcom_ext_host_ptr extension
*********************************/
......@@ -613,6 +640,21 @@ typedef struct _cl_name_version_khr
#define CL_DEVICE_BUILT_IN_KERNELS_WITH_VERSION_KHR 0x1062
/*********************************
* cl_khr_device_uuid extension
*********************************/
#define cl_khr_device_uuid 1
#define CL_UUID_SIZE_KHR 16
#define CL_LUID_SIZE_KHR 8
#define CL_DEVICE_UUID_KHR 0x106A
#define CL_DRIVER_UUID_KHR 0x106B
#define CL_DEVICE_LUID_VALID_KHR 0x106C
#define CL_DEVICE_LUID_KHR 0x106D
#define CL_DEVICE_NODE_MASK_KHR 0x106E
/**********************************
* cl_arm_import_memory extension *
**********************************/
......@@ -798,6 +840,26 @@ clSetKernelExecInfoARM(cl_kernel kernel,
/* cl_command_queue_properties */
#define CL_QUEUE_JOB_SLOT_ARM 0x41E1
/*********************************
* cl_arm_scheduling_controls
*********************************/
#define cl_arm_scheduling_controls 1
/* cl_device_info */
#define CL_DEVICE_SCHEDULING_CONTROLS_CAPABILITIES_ARM 0x41E4
#define CL_DEVICE_SCHEDULING_KERNEL_BATCHING_ARM (1 << 0)
#define CL_DEVICE_SCHEDULING_WORKGROUP_BATCH_SIZE_ARM (1 << 1)
#define CL_DEVICE_SCHEDULING_WORKGROUP_BATCH_SIZE_MODIFIER_ARM (1 << 2)
/* cl_kernel_info */
#define CL_KERNEL_EXEC_INFO_WORKGROUP_BATCH_SIZE_ARM 0x41E5
#define CL_KERNEL_EXEC_INFO_WORKGROUP_BATCH_SIZE_MODIFIER_ARM 0x41E6
/* cl_queue_properties */
#define CL_QUEUE_KERNEL_BATCHING_ARM 0x41E7
#ifdef __cplusplus
}
#endif
......
......@@ -16,7 +16,7 @@
******************************************************************************/
/*****************************************************************************\
Copyright (c) 2013-2019 Intel Corporation All Rights Reserved.
Copyright (c) 2013-2020 Intel Corporation All Rights Reserved.
THESE MATERIALS ARE PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
......@@ -283,8 +283,8 @@ typedef cl_uint cl_diagnostics_verbose_level;
#define CL_DEVICE_AVC_ME_SUPPORTS_TEXTURE_SAMPLER_USE_INTEL 0x410C
#define CL_DEVICE_AVC_ME_SUPPORTS_PREEMPTION_INTEL 0x410D
#define CL_AVC_ME_VERSION_0_INTEL 0x0; // No support.
#define CL_AVC_ME_VERSION_1_INTEL 0x1; // First supported version.
#define CL_AVC_ME_VERSION_0_INTEL 0x0 /* No support. */
#define CL_AVC_ME_VERSION_1_INTEL 0x1 /* First supported version. */
#define CL_AVC_ME_MAJOR_16x16_INTEL 0x0
#define CL_AVC_ME_MAJOR_16x8_INTEL 0x1
......@@ -405,6 +405,325 @@ typedef cl_uint cl_diagnostics_verbose_level;
#define CL_AVC_ME_INTERLACED_SCAN_TOP_FIELD_INTEL 0x0
#define CL_AVC_ME_INTERLACED_SCAN_BOTTOM_FIELD_INTEL 0x1
/*******************************************
* cl_intel_unified_shared_memory extension *
********************************************/
/* These APIs are in sync with Revision Q of the cl_intel_unified_shared_memory spec! */
#define cl_intel_unified_shared_memory 1
/* cl_device_info */
#define CL_DEVICE_HOST_MEM_CAPABILITIES_INTEL 0x4190
#define CL_DEVICE_DEVICE_MEM_CAPABILITIES_INTEL 0x4191
#define CL_DEVICE_SINGLE_DEVICE_SHARED_MEM_CAPABILITIES_INTEL 0x4192
#define CL_DEVICE_CROSS_DEVICE_SHARED_MEM_CAPABILITIES_INTEL 0x4193
#define CL_DEVICE_SHARED_SYSTEM_MEM_CAPABILITIES_INTEL 0x4194
typedef cl_bitfield cl_device_unified_shared_memory_capabilities_intel;
/* cl_device_unified_shared_memory_capabilities_intel - bitfield */
#define CL_UNIFIED_SHARED_MEMORY_ACCESS_INTEL (1 << 0)
#define CL_UNIFIED_SHARED_MEMORY_ATOMIC_ACCESS_INTEL (1 << 1)
#define CL_UNIFIED_SHARED_MEMORY_CONCURRENT_ACCESS_INTEL (1 << 2)
#define CL_UNIFIED_SHARED_MEMORY_CONCURRENT_ATOMIC_ACCESS_INTEL (1 << 3)
typedef cl_properties cl_mem_properties_intel;
/* cl_mem_properties_intel */
#define CL_MEM_ALLOC_FLAGS_INTEL 0x4195
typedef cl_bitfield cl_mem_alloc_flags_intel;
/* cl_mem_alloc_flags_intel - bitfield */
#define CL_MEM_ALLOC_WRITE_COMBINED_INTEL (1 << 0)
typedef cl_uint cl_mem_info_intel;
/* cl_mem_alloc_info_intel */
#define CL_MEM_ALLOC_TYPE_INTEL 0x419A
#define CL_MEM_ALLOC_BASE_PTR_INTEL 0x419B
#define CL_MEM_ALLOC_SIZE_INTEL 0x419C
#define CL_MEM_ALLOC_DEVICE_INTEL 0x419D
/* Enum values 0x419E-0x419F are reserved for future queries. */
typedef cl_uint cl_unified_shared_memory_type_intel;
/* cl_unified_shared_memory_type_intel */
#define CL_MEM_TYPE_UNKNOWN_INTEL 0x4196
#define CL_MEM_TYPE_HOST_INTEL 0x4197
#define CL_MEM_TYPE_DEVICE_INTEL 0x4198
#define CL_MEM_TYPE_SHARED_INTEL 0x4199
typedef cl_uint cl_mem_advice_intel;
/* cl_mem_advice_intel */
/* Enum values 0x4208-0x420F are reserved for future memory advices. */
/* cl_kernel_exec_info */
#define CL_KERNEL_EXEC_INFO_INDIRECT_HOST_ACCESS_INTEL 0x4200
#define CL_KERNEL_EXEC_INFO_INDIRECT_DEVICE_ACCESS_INTEL 0x4201
#define CL_KERNEL_EXEC_INFO_INDIRECT_SHARED_ACCESS_INTEL 0x4202
#define CL_KERNEL_EXEC_INFO_USM_PTRS_INTEL 0x4203
/* cl_command_type */
#define CL_COMMAND_MEMFILL_INTEL 0x4204
#define CL_COMMAND_MEMCPY_INTEL 0x4205
#define CL_COMMAND_MIGRATEMEM_INTEL 0x4206
#define CL_COMMAND_MEMADVISE_INTEL 0x4207
extern CL_API_ENTRY void* CL_API_CALL
clHostMemAllocINTEL(
cl_context context,
const cl_mem_properties_intel* properties,
size_t size,
cl_uint alignment,
cl_int* errcode_ret);
typedef CL_API_ENTRY void* (CL_API_CALL *
clHostMemAllocINTEL_fn)(
cl_context context,
const cl_mem_properties_intel* properties,
size_t size,
cl_uint alignment,
cl_int* errcode_ret);
extern CL_API_ENTRY void* CL_API_CALL
clDeviceMemAllocINTEL(
cl_context context,
cl_device_id device,
const cl_mem_properties_intel* properties,
size_t size,
cl_uint alignment,
cl_int* errcode_ret);
typedef CL_API_ENTRY void* (CL_API_CALL *
clDeviceMemAllocINTEL_fn)(
cl_context context,
cl_device_id device,
const cl_mem_properties_intel* properties,
size_t size,
cl_uint alignment,
cl_int* errcode_ret);
extern CL_API_ENTRY void* CL_API_CALL
clSharedMemAllocINTEL(
cl_context context,
cl_device_id device,
const cl_mem_properties_intel* properties,
size_t size,
cl_uint alignment,
cl_int* errcode_ret);
typedef CL_API_ENTRY void* (CL_API_CALL *
clSharedMemAllocINTEL_fn)(
cl_context context,
cl_device_id device,
const cl_mem_properties_intel* properties,
size_t size,
cl_uint alignment,
cl_int* errcode_ret);
extern CL_API_ENTRY cl_int CL_API_CALL
clMemFreeINTEL(
cl_context context,
void* ptr);
typedef CL_API_ENTRY cl_int (CL_API_CALL *
clMemFreeINTEL_fn)(
cl_context context,
void* ptr);
extern CL_API_ENTRY cl_int CL_API_CALL
clMemBlockingFreeINTEL(
cl_context context,
void* ptr);
typedef CL_API_ENTRY cl_int (CL_API_CALL *
clMemBlockingFreeINTEL_fn)(
cl_context context,
void* ptr);
extern CL_API_ENTRY cl_int CL_API_CALL
clGetMemAllocInfoINTEL(
cl_context context,
const void* ptr,
cl_mem_info_intel param_name,
size_t param_value_size,
void* param_value,
size_t* param_value_size_ret);
typedef CL_API_ENTRY cl_int (CL_API_CALL *
clGetMemAllocInfoINTEL_fn)(
cl_context context,
const void* ptr,
cl_mem_info_intel param_name,
size_t param_value_size,
void* param_value,
size_t* param_value_size_ret);
extern CL_API_ENTRY cl_int CL_API_CALL
clSetKernelArgMemPointerINTEL(
cl_kernel kernel,
cl_uint arg_index,
const void* arg_value);
typedef CL_API_ENTRY cl_int (CL_API_CALL *
clSetKernelArgMemPointerINTEL_fn)(
cl_kernel kernel,
cl_uint arg_index,
const void* arg_value);
extern CL_API_ENTRY cl_int CL_API_CALL
clEnqueueMemsetINTEL( /* Deprecated */
cl_command_queue command_queue,
void* dst_ptr,
cl_int value,
size_t size,
cl_uint num_events_in_wait_list,
const cl_event* event_wait_list,
cl_event* event);
typedef CL_API_ENTRY cl_int (CL_API_CALL *
clEnqueueMemsetINTEL_fn)( /* Deprecated */
cl_command_queue command_queue,
void* dst_ptr,
cl_int value,
size_t size,
cl_uint num_events_in_wait_list,