CL: update CL headers to 3.0
This just updates the headers from Khronos. Change the cl_mem initialisers, not sure what totally correct answer is. Acked-by: Francisco Jerez <currojerez@riseup.net> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7468>
This commit is contained in:
parent
041e3147c0
commit
725df7c15d
199
include/CL/cl.h
199
include/CL/cl.h
|
@ -1,29 +1,17 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2008-2019 The Khronos Group Inc.
|
||||
* Copyright (c) 2008-2020 The Khronos Group Inc.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and/or associated documentation files (the
|
||||
* "Materials"), to deal in the Materials without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Materials, and to
|
||||
* permit persons to whom the Materials are furnished to do so, subject to
|
||||
* the following conditions:
|
||||
* 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
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Materials.
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS
|
||||
* KHRONOS STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS
|
||||
* SPECIFICATIONS AND HEADER INFORMATION ARE LOCATED AT
|
||||
* https://www.khronos.org/registry/
|
||||
*
|
||||
* THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
|
||||
* 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.
|
||||
******************************************************************************/
|
||||
|
||||
#ifndef __OPENCL_CL_H
|
||||
|
@ -50,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;
|
||||
|
@ -69,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;
|
||||
|
@ -116,9 +105,16 @@ 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_properties cl_mem_properties;
|
||||
typedef cl_uint cl_version;
|
||||
#endif
|
||||
|
||||
typedef struct _cl_image_format {
|
||||
cl_channel_order image_channel_order;
|
||||
|
@ -138,23 +134,29 @@ 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 */
|
||||
#endif
|
||||
#if __CL_HAS_ANON_STRUCT__
|
||||
#ifdef _MSC_VER
|
||||
#if _MSC_VER >= 1500
|
||||
#pragma warning( push )
|
||||
#pragma warning( disable : 4201 ) /* Prevents warning about nameless struct/union in /W4 /Za builds */
|
||||
#endif
|
||||
#endif
|
||||
__CL_ANON_STRUCT__
|
||||
union {
|
||||
#endif
|
||||
#endif
|
||||
cl_mem buffer;
|
||||
#ifdef CL_VERSION_2_0
|
||||
#if __CL_HAS_ANON_STRUCT__
|
||||
cl_mem mem_object;
|
||||
};
|
||||
#ifdef _MSC_VER
|
||||
#if _MSC_VER >= 1500
|
||||
#pragma warning( pop )
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
} cl_image_desc;
|
||||
|
||||
#endif
|
||||
|
@ -168,6 +170,17 @@ typedef struct _cl_buffer_region {
|
|||
|
||||
#endif
|
||||
|
||||
#ifdef CL_VERSION_3_0
|
||||
|
||||
#define CL_NAME_VERSION_MAX_NAME_SIZE 64
|
||||
|
||||
typedef struct _cl_name_version {
|
||||
cl_version version;
|
||||
char name[CL_NAME_VERSION_MAX_NAME_SIZE];
|
||||
} cl_name_version;
|
||||
|
||||
#endif
|
||||
|
||||
/******************************************************************************/
|
||||
|
||||
/* Error Codes */
|
||||
|
@ -266,6 +279,10 @@ typedef struct _cl_buffer_region {
|
|||
#ifdef CL_VERSION_2_1
|
||||
#define CL_PLATFORM_HOST_TIMER_RESOLUTION 0x0905
|
||||
#endif
|
||||
#ifdef CL_VERSION_3_0
|
||||
#define CL_PLATFORM_NUMERIC_VERSION 0x0906
|
||||
#define CL_PLATFORM_EXTENSIONS_WITH_VERSION 0x0907
|
||||
#endif
|
||||
|
||||
/* cl_device_type - bitfield */
|
||||
#define CL_DEVICE_TYPE_DEFAULT (1 << 0)
|
||||
|
@ -385,6 +402,24 @@ typedef struct _cl_buffer_region {
|
|||
#define CL_DEVICE_MAX_NUM_SUB_GROUPS 0x105C
|
||||
#define CL_DEVICE_SUB_GROUP_INDEPENDENT_FORWARD_PROGRESS 0x105D
|
||||
#endif
|
||||
#ifdef CL_VERSION_3_0
|
||||
#define CL_DEVICE_NUMERIC_VERSION 0x105E
|
||||
#define CL_DEVICE_EXTENSIONS_WITH_VERSION 0x1060
|
||||
#define CL_DEVICE_ILS_WITH_VERSION 0x1061
|
||||
#define CL_DEVICE_BUILT_IN_KERNELS_WITH_VERSION 0x1062
|
||||
#define CL_DEVICE_ATOMIC_MEMORY_CAPABILITIES 0x1063
|
||||
#define CL_DEVICE_ATOMIC_FENCE_CAPABILITIES 0x1064
|
||||
#define CL_DEVICE_NON_UNIFORM_WORK_GROUP_SUPPORT 0x1065
|
||||
#define CL_DEVICE_OPENCL_C_ALL_VERSIONS 0x1066
|
||||
#define CL_DEVICE_PREFERRED_WORK_GROUP_SIZE_MULTIPLE 0x1067
|
||||
#define CL_DEVICE_WORK_GROUP_COLLECTIVE_FUNCTIONS_SUPPORT 0x1068
|
||||
#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_CAPABILITIES 0x1070
|
||||
#define CL_DEVICE_PIPE_SUPPORT 0x1071
|
||||
#define CL_DEVICE_LATEST_CONFORMANCE_VERSION_PASSED 0x1072
|
||||
#endif
|
||||
|
||||
/* cl_device_fp_config - bitfield */
|
||||
#define CL_FP_DENORM (1 << 0)
|
||||
|
@ -478,6 +513,9 @@ typedef struct _cl_buffer_region {
|
|||
#ifdef CL_VERSION_2_1
|
||||
#define CL_QUEUE_DEVICE_DEFAULT 0x1095
|
||||
#endif
|
||||
#ifdef CL_VERSION_3_0
|
||||
#define CL_QUEUE_PROPERTIES_ARRAY 0x1098
|
||||
#endif
|
||||
|
||||
/* cl_mem_flags and cl_svm_mem_flags - bitfield */
|
||||
#define CL_MEM_READ_WRITE (1 << 0)
|
||||
|
@ -586,6 +624,9 @@ typedef struct _cl_buffer_region {
|
|||
#ifdef CL_VERSION_2_0
|
||||
#define CL_MEM_USES_SVM_POINTER 0x1109
|
||||
#endif
|
||||
#ifdef CL_VERSION_3_0
|
||||
#define CL_MEM_PROPERTIES 0x110A
|
||||
#endif
|
||||
|
||||
/* cl_image_info */
|
||||
#define CL_IMAGE_FORMAT 0x1110
|
||||
|
@ -602,12 +643,14 @@ typedef struct _cl_buffer_region {
|
|||
#define CL_IMAGE_NUM_SAMPLES 0x111A
|
||||
#endif
|
||||
|
||||
#ifdef CL_VERSION_2_0
|
||||
|
||||
/* cl_pipe_info */
|
||||
#ifdef CL_VERSION_2_0
|
||||
#define CL_PIPE_PACKET_SIZE 0x1120
|
||||
#define CL_PIPE_MAX_PACKETS 0x1121
|
||||
|
||||
#endif
|
||||
#ifdef CL_VERSION_3_0
|
||||
#define CL_PIPE_PROPERTIES 0x1122
|
||||
#endif
|
||||
|
||||
/* cl_addressing_mode */
|
||||
|
@ -637,6 +680,9 @@ typedef struct _cl_buffer_region {
|
|||
#define CL_SAMPLER_LOD_MIN 0x1156
|
||||
#define CL_SAMPLER_LOD_MAX 0x1157
|
||||
#endif
|
||||
#ifdef CL_VERSION_3_0
|
||||
#define CL_SAMPLER_PROPERTIES 0x1158
|
||||
#endif
|
||||
|
||||
/* cl_map_flags - bitfield */
|
||||
#define CL_MAP_READ (1 << 0)
|
||||
|
@ -701,10 +747,6 @@ typedef struct _cl_buffer_region {
|
|||
#ifdef CL_VERSION_1_2
|
||||
#define CL_KERNEL_ATTRIBUTES 0x1195
|
||||
#endif
|
||||
#ifdef CL_VERSION_2_1
|
||||
#define CL_KERNEL_MAX_NUM_SUB_GROUPS 0x11B9
|
||||
#define CL_KERNEL_COMPILE_NUM_SUB_GROUPS 0x11BA
|
||||
#endif
|
||||
|
||||
#ifdef CL_VERSION_1_2
|
||||
|
||||
|
@ -766,6 +808,8 @@ typedef struct _cl_buffer_region {
|
|||
#define CL_KERNEL_MAX_SUB_GROUP_SIZE_FOR_NDRANGE 0x2033
|
||||
#define CL_KERNEL_SUB_GROUP_COUNT_FOR_NDRANGE 0x2034
|
||||
#define CL_KERNEL_LOCAL_SIZE_FOR_SUB_GROUP_COUNT 0x11B8
|
||||
#define CL_KERNEL_MAX_NUM_SUB_GROUPS 0x11B9
|
||||
#define CL_KERNEL_COMPILE_NUM_SUB_GROUPS 0x11BA
|
||||
|
||||
#endif
|
||||
|
||||
|
@ -823,6 +867,9 @@ typedef struct _cl_buffer_region {
|
|||
#define CL_COMMAND_SVM_MAP 0x120C
|
||||
#define CL_COMMAND_SVM_UNMAP 0x120D
|
||||
#endif
|
||||
#ifdef CL_VERSION_3_0
|
||||
#define CL_COMMAND_SVM_MIGRATE_MEM 0x120E
|
||||
#endif
|
||||
|
||||
/* command execution status */
|
||||
#define CL_COMPLETE 0x0
|
||||
|
@ -830,11 +877,9 @@ typedef struct _cl_buffer_region {
|
|||
#define CL_SUBMITTED 0x2
|
||||
#define CL_QUEUED 0x3
|
||||
|
||||
#ifdef CL_VERSION_1_1
|
||||
|
||||
/* cl_buffer_create_type */
|
||||
#ifdef CL_VERSION_1_1
|
||||
#define CL_BUFFER_CREATE_TYPE_REGION 0x1220
|
||||
|
||||
#endif
|
||||
|
||||
/* cl_profiling_info */
|
||||
|
@ -846,6 +891,53 @@ typedef struct _cl_buffer_region {
|
|||
#define CL_PROFILING_COMMAND_COMPLETE 0x1284
|
||||
#endif
|
||||
|
||||
/* cl_device_atomic_capabilities - bitfield */
|
||||
#ifdef CL_VERSION_3_0
|
||||
#define CL_DEVICE_ATOMIC_ORDER_RELAXED (1 << 0)
|
||||
#define CL_DEVICE_ATOMIC_ORDER_ACQ_REL (1 << 1)
|
||||
#define CL_DEVICE_ATOMIC_ORDER_SEQ_CST (1 << 2)
|
||||
#define CL_DEVICE_ATOMIC_SCOPE_WORK_ITEM (1 << 3)
|
||||
#define CL_DEVICE_ATOMIC_SCOPE_WORK_GROUP (1 << 4)
|
||||
#define CL_DEVICE_ATOMIC_SCOPE_DEVICE (1 << 5)
|
||||
#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
|
||||
|
||||
#ifdef CL_VERSION_3_0
|
||||
|
||||
/* cl_version */
|
||||
#define CL_VERSION_MAJOR_BITS (10)
|
||||
#define CL_VERSION_MINOR_BITS (10)
|
||||
#define CL_VERSION_PATCH_BITS (12)
|
||||
|
||||
#define CL_VERSION_MAJOR_MASK ((1 << CL_VERSION_MAJOR_BITS) - 1)
|
||||
#define CL_VERSION_MINOR_MASK ((1 << CL_VERSION_MINOR_BITS) - 1)
|
||||
#define CL_VERSION_PATCH_MASK ((1 << CL_VERSION_PATCH_BITS) - 1)
|
||||
|
||||
#define CL_VERSION_MAJOR(version) \
|
||||
((version) >> (CL_VERSION_MINOR_BITS + CL_VERSION_PATCH_BITS))
|
||||
|
||||
#define CL_VERSION_MINOR(version) \
|
||||
(((version) >> CL_VERSION_PATCH_BITS) & CL_VERSION_MINOR_MASK)
|
||||
|
||||
#define CL_VERSION_PATCH(version) ((version) & CL_VERSION_PATCH_MASK)
|
||||
|
||||
#define CL_MAKE_VERSION(major, minor, patch) \
|
||||
((((major) & CL_VERSION_MAJOR_MASK) \
|
||||
<< (CL_VERSION_MINOR_BITS + CL_VERSION_PATCH_BITS)) | \
|
||||
(((minor) & CL_VERSION_MINOR_MASK) << CL_VERSION_PATCH_BITS) | \
|
||||
((patch) & CL_VERSION_PATCH_MASK))
|
||||
|
||||
#endif
|
||||
|
||||
/********************************************************************************************************/
|
||||
|
||||
/* Platform API */
|
||||
|
@ -946,6 +1038,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
|
||||
|
@ -1014,6 +1116,27 @@ clCreatePipe(cl_context context,
|
|||
|
||||
#endif
|
||||
|
||||
#ifdef CL_VERSION_3_0
|
||||
|
||||
extern CL_API_ENTRY cl_mem CL_API_CALL
|
||||
clCreateBufferWithProperties(cl_context context,
|
||||
const cl_mem_properties * properties,
|
||||
cl_mem_flags flags,
|
||||
size_t size,
|
||||
void * host_ptr,
|
||||
cl_int * errcode_ret) CL_API_SUFFIX__VERSION_3_0;
|
||||
|
||||
extern CL_API_ENTRY cl_mem CL_API_CALL
|
||||
clCreateImageWithProperties(cl_context context,
|
||||
const cl_mem_properties * properties,
|
||||
cl_mem_flags flags,
|
||||
const cl_image_format * image_format,
|
||||
const cl_image_desc * image_desc,
|
||||
void * host_ptr,
|
||||
cl_int * errcode_ret) CL_API_SUFFIX__VERSION_3_0;
|
||||
|
||||
#endif
|
||||
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL
|
||||
clRetainMemObject(cl_mem memobj) CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
|
@ -1186,11 +1309,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,
|
||||
|
|
|
@ -1,29 +1,17 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2008-2019 The Khronos Group Inc.
|
||||
* Copyright (c) 2008-2020 The Khronos Group Inc.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and/or associated documentation files (the
|
||||
* "Materials"), to deal in the Materials without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Materials, and to
|
||||
* permit persons to whom the Materials are furnished to do so, subject to
|
||||
* the following conditions:
|
||||
* 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
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Materials.
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS
|
||||
* KHRONOS STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS
|
||||
* SPECIFICATIONS AND HEADER INFORMATION ARE LOCATED AT
|
||||
* https://www.khronos.org/registry/
|
||||
*
|
||||
* THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
|
||||
* 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.
|
||||
******************************************************************************/
|
||||
|
||||
/* cl_ext.h contains OpenCL extensions which don't have external */
|
||||
|
@ -181,6 +169,8 @@ typedef CL_API_ENTRY cl_program
|
|||
* cl_khr_terminate_context extension *
|
||||
**************************************/
|
||||
|
||||
#define CL_CONTEXT_TERMINATED_KHR -1121
|
||||
|
||||
#define CL_DEVICE_TERMINATE_CAPABILITY_KHR 0x2031
|
||||
#define CL_CONTEXT_TERMINATE_KHR 0x2032
|
||||
|
||||
|
@ -208,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,
|
||||
|
@ -241,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
|
||||
|
||||
|
||||
/*********************************
|
||||
|
@ -346,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
|
||||
*********************************/
|
||||
|
@ -582,6 +599,8 @@ typedef cl_uint cl_queue_throttle_khr;
|
|||
* cl_khr_extended_versioning
|
||||
*********************************/
|
||||
|
||||
#define cl_khr_extended_versioning 1
|
||||
|
||||
#define CL_VERSION_MAJOR_BITS_KHR (10)
|
||||
#define CL_VERSION_MINOR_BITS_KHR (10)
|
||||
#define CL_VERSION_PATCH_BITS_KHR (12)
|
||||
|
@ -621,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 *
|
||||
**********************************/
|
||||
|
@ -637,12 +671,15 @@ typedef intptr_t cl_import_properties_arm;
|
|||
/* DMA BUF memory type value for CL_IMPORT_TYPE_ARM property */
|
||||
#define CL_IMPORT_TYPE_DMA_BUF_ARM 0x40B4
|
||||
|
||||
/* Protected DMA BUF memory type value for CL_IMPORT_TYPE_ARM property */
|
||||
/* Protected memory property */
|
||||
#define CL_IMPORT_TYPE_PROTECTED_ARM 0x40B5
|
||||
|
||||
/* Android hardware buffer type value for CL_IMPORT_TYPE_ARM property */
|
||||
#define CL_IMPORT_TYPE_ANDROID_HARDWARE_BUFFER_ARM 0x41E2
|
||||
|
||||
/* Data consistency with host property */
|
||||
#define CL_IMPORT_DMA_BUF_DATA_CONSISTENCY_WITH_HOST_ARM 0x41E3
|
||||
|
||||
/* Import memory size value to indicate a size for the whole buffer */
|
||||
#define CL_IMPORT_MEMORY_WHOLE_ALLOCATION_ARM SIZE_MAX
|
||||
|
||||
|
@ -803,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
|
||||
|
|
|
@ -1,33 +1,22 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2008-2019 The Khronos Group Inc.
|
||||
* Copyright (c) 2008-2020 The Khronos Group Inc.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and/or associated documentation files (the
|
||||
* "Materials"), to deal in the Materials without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Materials, and to
|
||||
* permit persons to whom the Materials are furnished to do so, subject to
|
||||
* the following conditions:
|
||||
* 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
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Materials.
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS
|
||||
* KHRONOS STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS
|
||||
* SPECIFICATIONS AND HEADER INFORMATION ARE LOCATED AT
|
||||
* https://www.khronos.org/registry/
|
||||
* 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.
|
||||
*
|
||||
* THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
|
||||
******************************************************************************/
|
||||
/*****************************************************************************\
|
||||
|
||||
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
|
||||
|
@ -294,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
|
||||
|
@ -416,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,
|
||||
const cl_event* event_wait_list,
|
||||
cl_event* event);
|
||||
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL
|
||||
clEnqueueMemFillINTEL(
|
||||
cl_command_queue command_queue,
|
||||
void* dst_ptr,
|
||||
const void* pattern,
|
||||
size_t pattern_size,
|
||||
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 *
|
||||
clEnqueueMemFillINTEL_fn)(
|
||||
cl_command_queue command_queue,
|
||||
void* dst_ptr,
|
||||
const void* pattern,
|
||||
size_t pattern_size,
|
||||
size_t size,
|
||||
cl_uint num_events_in_wait_list,
|
||||
const cl_event* event_wait_list,
|
||||
cl_event* event);
|
||||
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL
|
||||
clEnqueueMemcpyINTEL(
|
||||
cl_command_queue command_queue,
|
||||
cl_bool blocking,
|
||||
void* dst_ptr,
|
||||
const void* src_ptr,
|
||||
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 *
|
||||
clEnqueueMemcpyINTEL_fn)(
|
||||
cl_command_queue command_queue,
|
||||
cl_bool blocking,
|
||||
void* dst_ptr,
|
||||
const void* src_ptr,
|
||||
size_t size,
|
||||
cl_uint num_events_in_wait_list,
|
||||
const cl_event* event_wait_list,
|
||||
cl_event* event);
|
||||
|
||||
#ifdef CL_VERSION_1_2
|
||||
|
||||
/* Because these APIs use cl_mem_migration_flags, they require
|
||||
OpenCL 1.2: */
|
||||
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL
|
||||
clEnqueueMigrateMemINTEL(
|
||||
cl_command_queue command_queue,
|
||||
const void* ptr,
|
||||
size_t size,
|
||||
cl_mem_migration_flags flags,
|
||||
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 *
|
||||
clEnqueueMigrateMemINTEL_fn)(
|
||||
cl_command_queue command_queue,
|
||||
const void* ptr,
|
||||
size_t size,
|
||||
cl_mem_migration_flags flags,
|
||||
cl_uint num_events_in_wait_list,
|
||||
const cl_event* event_wait_list,
|
||||
cl_event* event);
|
||||
|
||||
#endif
|
||||
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL
|
||||
clEnqueueMemAdviseINTEL(
|
||||
cl_command_queue command_queue,
|
||||
const void* ptr,
|
||||
size_t size,
|
||||
cl_mem_advice_intel advice,
|
||||
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 *
|
||||
clEnqueueMemAdviseINTEL_fn)(
|
||||
cl_command_queue command_queue,
|
||||
const void* ptr,
|
||||
size_t size,
|
||||
cl_mem_advice_intel advice,
|
||||
cl_uint num_events_in_wait_list,
|
||||
const cl_event* event_wait_list,
|
||||
cl_event* event);
|
||||
|
||||
/***************************************************
|
||||
* cl_intel_create_buffer_with_properties extension *
|
||||
****************************************************/
|
||||
|
||||
#define cl_intel_create_buffer_with_properties 1
|
||||
|
||||
extern CL_API_ENTRY cl_mem CL_API_CALL
|
||||
clCreateBufferWithPropertiesINTEL(
|
||||
cl_context context,
|
||||
const cl_mem_properties_intel* properties,
|
||||
cl_mem_flags flags,
|
||||
size_t size,
|
||||
void * host_ptr,
|
||||
cl_int * errcode_ret) CL_EXT_SUFFIX__VERSION_1_0;
|
||||
|
||||
typedef CL_API_ENTRY cl_mem (CL_API_CALL *
|
||||
clCreateBufferWithPropertiesINTEL_fn)(
|
||||
cl_context context,
|
||||
const cl_mem_properties_intel* properties,
|
||||
cl_mem_flags flags,
|
||||
size_t size,
|
||||
void * host_ptr,
|
||||
cl_int * errcode_ret) CL_EXT_SUFFIX__VERSION_1_0;
|
||||
|
||||
/******************************************
|
||||
* cl_intel_mem_channel_property extension *
|
||||
*******************************************/
|
||||
|
||||
#define CL_MEM_CHANNEL_INTEL 0x4213
|
||||
|
||||
/*********************************
|
||||
* cl_intel_mem_force_host_memory *
|
||||
**********************************/
|
||||
|
||||
#define cl_intel_mem_force_host_memory 1
|
||||
|
||||
/* cl_mem_flags */
|
||||
#define CL_MEM_FORCE_HOST_MEMORY_INTEL (1 << 20)
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -1,29 +1,17 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2019 The Khronos Group Inc.
|
||||
* Copyright (c) 2019-2020 The Khronos Group Inc.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and/or associated documentation files (the
|
||||
* "Materials"), to deal in the Materials without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Materials, and to
|
||||
* permit persons to whom the Materials are furnished to do so, subject to
|
||||
* the following conditions:
|
||||
* 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
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Materials.
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS
|
||||
* KHRONOS STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS
|
||||
* SPECIFICATIONS AND HEADER INFORMATION ARE LOCATED AT
|
||||
* https://www.khronos.org/registry/
|
||||
*
|
||||
* THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
|
||||
* 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.
|
||||
******************************************************************************/
|
||||
|
||||
#ifndef OPENCL_CL_ICD_H
|
||||
|
@ -34,6 +22,12 @@
|
|||
#include <CL/cl_ext.h>
|
||||
#include <CL/cl_gl.h>
|
||||
|
||||
#if defined(_WIN32)
|
||||
#include <CL/cl_d3d11.h>
|
||||
#include <CL/cl_d3d10.h>
|
||||
#include <CL/cl_dx9_media_sharing.h>
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
@ -157,6 +151,31 @@ typedef void *cl_api_clCreateImage;
|
|||
|
||||
#endif
|
||||
|
||||
#ifdef CL_VERSION_3_0
|
||||
|
||||
typedef CL_API_ENTRY cl_mem(CL_API_CALL *cl_api_clCreateBufferWithProperties)(
|
||||
cl_context context, const cl_mem_properties *properties, cl_mem_flags flags,
|
||||
size_t size, void *host_ptr,
|
||||
cl_int *errcode_ret) CL_API_SUFFIX__VERSION_3_0;
|
||||
|
||||
typedef CL_API_ENTRY cl_mem(CL_API_CALL *cl_api_clCreateImageWithProperties)(
|
||||
cl_context context, const cl_mem_properties *properties, cl_mem_flags flags,
|
||||
const cl_image_format *image_format, const cl_image_desc *image_desc,
|
||||
void *host_ptr, cl_int *errcode_ret) CL_API_SUFFIX__VERSION_3_0;
|
||||
|
||||
typedef CL_API_ENTRY cl_int(CL_API_CALL* cl_api_clSetContextDestructorCallback)(
|
||||
cl_context context,
|
||||
void(CL_CALLBACK* pfn_notify)(cl_context context, void* user_data),
|
||||
void* user_data) CL_API_SUFFIX__VERSION_3_0;
|
||||
|
||||
#else
|
||||
|
||||
typedef void *cl_api_clCreateBufferWithProperties;
|
||||
typedef void *cl_api_clCreateImageWithProperties;
|
||||
typedef void *cl_api_clSetContextDestructorCallback;
|
||||
|
||||
#endif
|
||||
|
||||
typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clRetainMemObject)(
|
||||
cl_mem memobj) CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
|
@ -1260,6 +1279,12 @@ typedef struct _cl_icd_dispatch {
|
|||
/* OpenCL 2.2 */
|
||||
cl_api_clSetProgramReleaseCallback clSetProgramReleaseCallback;
|
||||
cl_api_clSetProgramSpecializationConstant clSetProgramSpecializationConstant;
|
||||
|
||||
/* OpenCL 3.0 */
|
||||
cl_api_clCreateBufferWithProperties clCreateBufferWithProperties;
|
||||
cl_api_clCreateImageWithProperties clCreateImageWithProperties;
|
||||
cl_api_clSetContextDestructorCallback clSetContextDestructorCallback;
|
||||
|
||||
} cl_icd_dispatch;
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
|
|
@ -1,30 +1,18 @@
|
|||
/**********************************************************************************
|
||||
* Copyright (c) 2008-2018 The Khronos Group Inc.
|
||||
/*******************************************************************************
|
||||
* Copyright (c) 2008-2020 The Khronos Group Inc.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and/or associated documentation files (the
|
||||
* "Materials"), to deal in the Materials without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Materials, and to
|
||||
* permit persons to whom the Materials are furnished to do so, subject to
|
||||
* the following conditions:
|
||||
* 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
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Materials.
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS
|
||||
* KHRONOS STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS
|
||||
* SPECIFICATIONS AND HEADER INFORMATION ARE LOCATED AT
|
||||
* https://www.khronos.org/registry/
|
||||
*
|
||||
* THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
|
||||
**********************************************************************************/
|
||||
* 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.
|
||||
******************************************************************************/
|
||||
|
||||
#ifndef __CL_PLATFORM_H
|
||||
#define __CL_PLATFORM_H
|
||||
|
@ -66,6 +54,10 @@ extern "C" {
|
|||
#define CL_EXT_SUFFIX__VERSION_2_1
|
||||
#define CL_API_SUFFIX__VERSION_2_2
|
||||
#define CL_EXT_SUFFIX__VERSION_2_2
|
||||
#define CL_API_SUFFIX__VERSION_3_0
|
||||
#define CL_EXT_SUFFIX__VERSION_3_0
|
||||
#define CL_API_SUFFIX__EXPERIMENTAL
|
||||
#define CL_EXT_SUFFIX__EXPERIMENTAL
|
||||
|
||||
|
||||
#ifdef __GNUC__
|
||||
|
@ -119,6 +111,14 @@ extern "C" {
|
|||
#define CL_EXT_PREFIX__VERSION_2_1_DEPRECATED CL_EXT_PREFIX_DEPRECATED
|
||||
#endif
|
||||
|
||||
#ifdef CL_USE_DEPRECATED_OPENCL_2_2_APIS
|
||||
#define CL_EXT_SUFFIX__VERSION_2_2_DEPRECATED
|
||||
#define CL_EXT_PREFIX__VERSION_2_2_DEPRECATED
|
||||
#else
|
||||
#define CL_EXT_SUFFIX__VERSION_2_2_DEPRECATED CL_EXT_SUFFIX_DEPRECATED
|
||||
#define CL_EXT_PREFIX__VERSION_2_2_DEPRECATED CL_EXT_PREFIX_DEPRECATED
|
||||
#endif
|
||||
|
||||
#if (defined (_WIN32) && defined(_MSC_VER))
|
||||
|
||||
/* scalar types */
|
||||
|
@ -355,7 +355,9 @@ typedef unsigned int cl_GLenum;
|
|||
|
||||
/* Define basic vector types */
|
||||
#if defined( __VEC__ )
|
||||
#include <altivec.h> /* may be omitted depending on compiler. AltiVec spec provides no way to detect whether the header is required. */
|
||||
#if !defined(__clang__)
|
||||
#include <altivec.h> /* may be omitted depending on compiler. AltiVec spec provides no way to detect whether the header is required. */
|
||||
#endif
|
||||
typedef __vector unsigned char __cl_uchar16;
|
||||
typedef __vector signed char __cl_char16;
|
||||
typedef __vector unsigned short __cl_ushort8;
|
||||
|
@ -482,7 +484,7 @@ typedef unsigned int cl_GLenum;
|
|||
#elif defined( __GNUC__) && ! defined( __STRICT_ANSI__ )
|
||||
#define __CL_HAS_ANON_STRUCT__ 1
|
||||
#define __CL_ANON_STRUCT__ __extension__
|
||||
#elif defined( _WIN32) && defined(_MSC_VER)
|
||||
#elif defined( _WIN32) && defined(_MSC_VER) && ! defined(__STDC__)
|
||||
#if _MSC_VER >= 1500
|
||||
/* Microsoft Developer Studio 2008 supports anonymous structs, but
|
||||
* complains by default. */
|
||||
|
@ -1373,9 +1375,7 @@ typedef union
|
|||
}
|
||||
#endif
|
||||
|
||||
#undef __CL_HAS_ANON_STRUCT__
|
||||
#undef __CL_ANON_STRUCT__
|
||||
#if defined( _WIN32) && defined(_MSC_VER)
|
||||
#if defined( _WIN32) && defined(_MSC_VER) && ! defined(__STDC__)
|
||||
#if _MSC_VER >=1500
|
||||
#pragma warning( pop )
|
||||
#endif
|
||||
|
|
|
@ -1,29 +1,17 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2018 The Khronos Group Inc.
|
||||
* Copyright (c) 2018-2020 The Khronos Group Inc.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and/or associated documentation files (the
|
||||
* "Materials"), to deal in the Materials without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Materials, and to
|
||||
* permit persons to whom the Materials are furnished to do so, subject to
|
||||
* the following conditions:
|
||||
* 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
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Materials.
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS
|
||||
* KHRONOS STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS
|
||||
* SPECIFICATIONS AND HEADER INFORMATION ARE LOCATED AT
|
||||
* https://www.khronos.org/registry/
|
||||
*
|
||||
* THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
|
||||
* 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.
|
||||
******************************************************************************/
|
||||
|
||||
#ifndef __CL_VERSION_H
|
||||
|
@ -39,14 +27,18 @@
|
|||
CL_TARGET_OPENCL_VERSION != 120 && \
|
||||
CL_TARGET_OPENCL_VERSION != 200 && \
|
||||
CL_TARGET_OPENCL_VERSION != 210 && \
|
||||
CL_TARGET_OPENCL_VERSION != 220
|
||||
#pragma message("cl_version: CL_TARGET_OPENCL_VERSION is not a valid value (100, 110, 120, 200, 210, 220). Defaulting to 220 (OpenCL 2.2)")
|
||||
CL_TARGET_OPENCL_VERSION != 220 && \
|
||||
CL_TARGET_OPENCL_VERSION != 300
|
||||
#pragma message("cl_version: CL_TARGET_OPENCL_VERSION is not a valid value (100, 110, 120, 200, 210, 220, 300). Defaulting to 220 (OpenCL 2.2)")
|
||||
#undef CL_TARGET_OPENCL_VERSION
|
||||
#define CL_TARGET_OPENCL_VERSION 220
|
||||
#endif
|
||||
|
||||
|
||||
/* OpenCL Version */
|
||||
#if CL_TARGET_OPENCL_VERSION >= 300 && !defined(CL_VERSION_3_0)
|
||||
#define CL_VERSION_3_0 1
|
||||
#endif
|
||||
#if CL_TARGET_OPENCL_VERSION >= 220 && !defined(CL_VERSION_2_2)
|
||||
#define CL_VERSION_2_2 1
|
||||
#endif
|
||||
|
@ -67,6 +59,9 @@
|
|||
#endif
|
||||
|
||||
/* Allow deprecated APIs for older OpenCL versions. */
|
||||
#if CL_TARGET_OPENCL_VERSION <= 220 && !defined(CL_USE_DEPRECATED_OPENCL_2_2_APIS)
|
||||
#define CL_USE_DEPRECATED_OPENCL_2_2_APIS
|
||||
#endif
|
||||
#if CL_TARGET_OPENCL_VERSION <= 210 && !defined(CL_USE_DEPRECATED_OPENCL_2_1_APIS)
|
||||
#define CL_USE_DEPRECATED_OPENCL_2_1_APIS
|
||||
#endif
|
||||
|
|
|
@ -242,7 +242,7 @@ clCreateImage2D(cl_context d_ctx, cl_mem_flags d_flags,
|
|||
size_t width, size_t height, size_t row_pitch,
|
||||
void *host_ptr, cl_int *r_errcode) {
|
||||
const cl_image_desc desc = { CL_MEM_OBJECT_IMAGE2D, width, height, 0, 0,
|
||||
row_pitch, 0, 0, 0, { NULL } };
|
||||
row_pitch, 0, 0, 0, NULL };
|
||||
|
||||
return clCreateImage(d_ctx, d_flags, format, &desc, host_ptr, r_errcode);
|
||||
}
|
||||
|
@ -254,7 +254,7 @@ clCreateImage3D(cl_context d_ctx, cl_mem_flags d_flags,
|
|||
size_t row_pitch, size_t slice_pitch,
|
||||
void *host_ptr, cl_int *r_errcode) {
|
||||
const cl_image_desc desc = { CL_MEM_OBJECT_IMAGE3D, width, height, depth, 0,
|
||||
row_pitch, slice_pitch, 0, 0, { NULL } };
|
||||
row_pitch, slice_pitch, 0, 0, NULL };
|
||||
|
||||
return clCreateImage(d_ctx, d_flags, format, &desc, host_ptr, r_errcode);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue