1*6467f958SSadaf Ebrahimi /******************************************************************************* 2*6467f958SSadaf Ebrahimi * Copyright (c) 2008-2020 The Khronos Group Inc. 3*6467f958SSadaf Ebrahimi * 4*6467f958SSadaf Ebrahimi * Licensed under the Apache License, Version 2.0 (the "License"); 5*6467f958SSadaf Ebrahimi * you may not use this file except in compliance with the License. 6*6467f958SSadaf Ebrahimi * You may obtain a copy of the License at 7*6467f958SSadaf Ebrahimi * 8*6467f958SSadaf Ebrahimi * http://www.apache.org/licenses/LICENSE-2.0 9*6467f958SSadaf Ebrahimi * 10*6467f958SSadaf Ebrahimi * Unless required by applicable law or agreed to in writing, software 11*6467f958SSadaf Ebrahimi * distributed under the License is distributed on an "AS IS" BASIS, 12*6467f958SSadaf Ebrahimi * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13*6467f958SSadaf Ebrahimi * See the License for the specific language governing permissions and 14*6467f958SSadaf Ebrahimi * limitations under the License. 15*6467f958SSadaf Ebrahimi ******************************************************************************/ 16*6467f958SSadaf Ebrahimi 17*6467f958SSadaf Ebrahimi #ifndef __OPENCL_CL_H 18*6467f958SSadaf Ebrahimi #define __OPENCL_CL_H 19*6467f958SSadaf Ebrahimi 20*6467f958SSadaf Ebrahimi #include <CL/cl_version.h> 21*6467f958SSadaf Ebrahimi #include <CL/cl_platform.h> 22*6467f958SSadaf Ebrahimi 23*6467f958SSadaf Ebrahimi #ifdef __cplusplus 24*6467f958SSadaf Ebrahimi extern "C" { 25*6467f958SSadaf Ebrahimi #endif 26*6467f958SSadaf Ebrahimi 27*6467f958SSadaf Ebrahimi /******************************************************************************/ 28*6467f958SSadaf Ebrahimi 29*6467f958SSadaf Ebrahimi typedef struct _cl_platform_id * cl_platform_id; 30*6467f958SSadaf Ebrahimi typedef struct _cl_device_id * cl_device_id; 31*6467f958SSadaf Ebrahimi typedef struct _cl_context * cl_context; 32*6467f958SSadaf Ebrahimi typedef struct _cl_command_queue * cl_command_queue; 33*6467f958SSadaf Ebrahimi typedef struct _cl_mem * cl_mem; 34*6467f958SSadaf Ebrahimi typedef struct _cl_program * cl_program; 35*6467f958SSadaf Ebrahimi typedef struct _cl_kernel * cl_kernel; 36*6467f958SSadaf Ebrahimi typedef struct _cl_event * cl_event; 37*6467f958SSadaf Ebrahimi typedef struct _cl_sampler * cl_sampler; 38*6467f958SSadaf Ebrahimi 39*6467f958SSadaf Ebrahimi 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. */ 40*6467f958SSadaf Ebrahimi typedef cl_ulong cl_bitfield; 41*6467f958SSadaf Ebrahimi typedef cl_ulong cl_properties; 42*6467f958SSadaf Ebrahimi typedef cl_bitfield cl_device_type; 43*6467f958SSadaf Ebrahimi typedef cl_uint cl_platform_info; 44*6467f958SSadaf Ebrahimi typedef cl_uint cl_device_info; 45*6467f958SSadaf Ebrahimi typedef cl_bitfield cl_device_fp_config; 46*6467f958SSadaf Ebrahimi typedef cl_uint cl_device_mem_cache_type; 47*6467f958SSadaf Ebrahimi typedef cl_uint cl_device_local_mem_type; 48*6467f958SSadaf Ebrahimi typedef cl_bitfield cl_device_exec_capabilities; 49*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_2_0 50*6467f958SSadaf Ebrahimi typedef cl_bitfield cl_device_svm_capabilities; 51*6467f958SSadaf Ebrahimi #endif 52*6467f958SSadaf Ebrahimi typedef cl_bitfield cl_command_queue_properties; 53*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_1_2 54*6467f958SSadaf Ebrahimi typedef intptr_t cl_device_partition_property; 55*6467f958SSadaf Ebrahimi typedef cl_bitfield cl_device_affinity_domain; 56*6467f958SSadaf Ebrahimi #endif 57*6467f958SSadaf Ebrahimi 58*6467f958SSadaf Ebrahimi typedef intptr_t cl_context_properties; 59*6467f958SSadaf Ebrahimi typedef cl_uint cl_context_info; 60*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_2_0 61*6467f958SSadaf Ebrahimi typedef cl_properties cl_queue_properties; 62*6467f958SSadaf Ebrahimi #endif 63*6467f958SSadaf Ebrahimi typedef cl_uint cl_command_queue_info; 64*6467f958SSadaf Ebrahimi typedef cl_uint cl_channel_order; 65*6467f958SSadaf Ebrahimi typedef cl_uint cl_channel_type; 66*6467f958SSadaf Ebrahimi typedef cl_bitfield cl_mem_flags; 67*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_2_0 68*6467f958SSadaf Ebrahimi typedef cl_bitfield cl_svm_mem_flags; 69*6467f958SSadaf Ebrahimi #endif 70*6467f958SSadaf Ebrahimi typedef cl_uint cl_mem_object_type; 71*6467f958SSadaf Ebrahimi typedef cl_uint cl_mem_info; 72*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_1_2 73*6467f958SSadaf Ebrahimi typedef cl_bitfield cl_mem_migration_flags; 74*6467f958SSadaf Ebrahimi #endif 75*6467f958SSadaf Ebrahimi typedef cl_uint cl_image_info; 76*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_1_1 77*6467f958SSadaf Ebrahimi typedef cl_uint cl_buffer_create_type; 78*6467f958SSadaf Ebrahimi #endif 79*6467f958SSadaf Ebrahimi typedef cl_uint cl_addressing_mode; 80*6467f958SSadaf Ebrahimi typedef cl_uint cl_filter_mode; 81*6467f958SSadaf Ebrahimi typedef cl_uint cl_sampler_info; 82*6467f958SSadaf Ebrahimi typedef cl_bitfield cl_map_flags; 83*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_2_0 84*6467f958SSadaf Ebrahimi typedef intptr_t cl_pipe_properties; 85*6467f958SSadaf Ebrahimi typedef cl_uint cl_pipe_info; 86*6467f958SSadaf Ebrahimi #endif 87*6467f958SSadaf Ebrahimi typedef cl_uint cl_program_info; 88*6467f958SSadaf Ebrahimi typedef cl_uint cl_program_build_info; 89*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_1_2 90*6467f958SSadaf Ebrahimi typedef cl_uint cl_program_binary_type; 91*6467f958SSadaf Ebrahimi #endif 92*6467f958SSadaf Ebrahimi typedef cl_int cl_build_status; 93*6467f958SSadaf Ebrahimi typedef cl_uint cl_kernel_info; 94*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_1_2 95*6467f958SSadaf Ebrahimi typedef cl_uint cl_kernel_arg_info; 96*6467f958SSadaf Ebrahimi typedef cl_uint cl_kernel_arg_address_qualifier; 97*6467f958SSadaf Ebrahimi typedef cl_uint cl_kernel_arg_access_qualifier; 98*6467f958SSadaf Ebrahimi typedef cl_bitfield cl_kernel_arg_type_qualifier; 99*6467f958SSadaf Ebrahimi #endif 100*6467f958SSadaf Ebrahimi typedef cl_uint cl_kernel_work_group_info; 101*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_2_1 102*6467f958SSadaf Ebrahimi typedef cl_uint cl_kernel_sub_group_info; 103*6467f958SSadaf Ebrahimi #endif 104*6467f958SSadaf Ebrahimi typedef cl_uint cl_event_info; 105*6467f958SSadaf Ebrahimi typedef cl_uint cl_command_type; 106*6467f958SSadaf Ebrahimi typedef cl_uint cl_profiling_info; 107*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_2_0 108*6467f958SSadaf Ebrahimi typedef cl_properties cl_sampler_properties; 109*6467f958SSadaf Ebrahimi typedef cl_uint cl_kernel_exec_info; 110*6467f958SSadaf Ebrahimi #endif 111*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_3_0 112*6467f958SSadaf Ebrahimi typedef cl_bitfield cl_device_atomic_capabilities; 113*6467f958SSadaf Ebrahimi typedef cl_bitfield cl_device_device_enqueue_capabilities; 114*6467f958SSadaf Ebrahimi typedef cl_uint cl_khronos_vendor_id; 115*6467f958SSadaf Ebrahimi typedef cl_properties cl_mem_properties; 116*6467f958SSadaf Ebrahimi typedef cl_uint cl_version; 117*6467f958SSadaf Ebrahimi #endif 118*6467f958SSadaf Ebrahimi 119*6467f958SSadaf Ebrahimi typedef struct _cl_image_format { 120*6467f958SSadaf Ebrahimi cl_channel_order image_channel_order; 121*6467f958SSadaf Ebrahimi cl_channel_type image_channel_data_type; 122*6467f958SSadaf Ebrahimi } cl_image_format; 123*6467f958SSadaf Ebrahimi 124*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_1_2 125*6467f958SSadaf Ebrahimi 126*6467f958SSadaf Ebrahimi typedef struct _cl_image_desc { 127*6467f958SSadaf Ebrahimi cl_mem_object_type image_type; 128*6467f958SSadaf Ebrahimi size_t image_width; 129*6467f958SSadaf Ebrahimi size_t image_height; 130*6467f958SSadaf Ebrahimi size_t image_depth; 131*6467f958SSadaf Ebrahimi size_t image_array_size; 132*6467f958SSadaf Ebrahimi size_t image_row_pitch; 133*6467f958SSadaf Ebrahimi size_t image_slice_pitch; 134*6467f958SSadaf Ebrahimi cl_uint num_mip_levels; 135*6467f958SSadaf Ebrahimi cl_uint num_samples; 136*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_2_0 137*6467f958SSadaf Ebrahimi #if defined(__GNUC__) 138*6467f958SSadaf Ebrahimi __extension__ /* Prevents warnings about anonymous union in -pedantic builds */ 139*6467f958SSadaf Ebrahimi #endif 140*6467f958SSadaf Ebrahimi #if defined(_MSC_VER) && !defined(__STDC__) 141*6467f958SSadaf Ebrahimi #pragma warning( push ) 142*6467f958SSadaf Ebrahimi #pragma warning( disable : 4201 ) /* Prevents warning about nameless struct/union in /W4 builds */ 143*6467f958SSadaf Ebrahimi #endif 144*6467f958SSadaf Ebrahimi #ifdef __clang__ 145*6467f958SSadaf Ebrahimi #pragma clang diagnostic push 146*6467f958SSadaf Ebrahimi #pragma clang diagnostic ignored "-Wc11-extensions" /* Prevents warning about nameless union being C11 extension*/ 147*6467f958SSadaf Ebrahimi #endif 148*6467f958SSadaf Ebrahimi #if defined(_MSC_VER) && defined(__STDC__) 149*6467f958SSadaf Ebrahimi /* Anonymous unions are not supported in /Za builds */ 150*6467f958SSadaf Ebrahimi #else 151*6467f958SSadaf Ebrahimi union { 152*6467f958SSadaf Ebrahimi #endif 153*6467f958SSadaf Ebrahimi #endif 154*6467f958SSadaf Ebrahimi cl_mem buffer; 155*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_2_0 156*6467f958SSadaf Ebrahimi #if defined(_MSC_VER) && defined(__STDC__) 157*6467f958SSadaf Ebrahimi /* Anonymous unions are not supported in /Za builds */ 158*6467f958SSadaf Ebrahimi #else 159*6467f958SSadaf Ebrahimi cl_mem mem_object; 160*6467f958SSadaf Ebrahimi }; 161*6467f958SSadaf Ebrahimi #endif 162*6467f958SSadaf Ebrahimi #if defined(_MSC_VER) && !defined(__STDC__) 163*6467f958SSadaf Ebrahimi #pragma warning( pop ) 164*6467f958SSadaf Ebrahimi #endif 165*6467f958SSadaf Ebrahimi #ifdef __clang__ 166*6467f958SSadaf Ebrahimi #pragma clang diagnostic pop 167*6467f958SSadaf Ebrahimi #endif 168*6467f958SSadaf Ebrahimi #endif 169*6467f958SSadaf Ebrahimi } cl_image_desc; 170*6467f958SSadaf Ebrahimi 171*6467f958SSadaf Ebrahimi #endif 172*6467f958SSadaf Ebrahimi 173*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_1_1 174*6467f958SSadaf Ebrahimi 175*6467f958SSadaf Ebrahimi typedef struct _cl_buffer_region { 176*6467f958SSadaf Ebrahimi size_t origin; 177*6467f958SSadaf Ebrahimi size_t size; 178*6467f958SSadaf Ebrahimi } cl_buffer_region; 179*6467f958SSadaf Ebrahimi 180*6467f958SSadaf Ebrahimi #endif 181*6467f958SSadaf Ebrahimi 182*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_3_0 183*6467f958SSadaf Ebrahimi 184*6467f958SSadaf Ebrahimi #define CL_NAME_VERSION_MAX_NAME_SIZE 64 185*6467f958SSadaf Ebrahimi 186*6467f958SSadaf Ebrahimi typedef struct _cl_name_version { 187*6467f958SSadaf Ebrahimi cl_version version; 188*6467f958SSadaf Ebrahimi char name[CL_NAME_VERSION_MAX_NAME_SIZE]; 189*6467f958SSadaf Ebrahimi } cl_name_version; 190*6467f958SSadaf Ebrahimi 191*6467f958SSadaf Ebrahimi #endif 192*6467f958SSadaf Ebrahimi 193*6467f958SSadaf Ebrahimi /******************************************************************************/ 194*6467f958SSadaf Ebrahimi 195*6467f958SSadaf Ebrahimi /* Error Codes */ 196*6467f958SSadaf Ebrahimi #define CL_SUCCESS 0 197*6467f958SSadaf Ebrahimi #define CL_DEVICE_NOT_FOUND -1 198*6467f958SSadaf Ebrahimi #define CL_DEVICE_NOT_AVAILABLE -2 199*6467f958SSadaf Ebrahimi #define CL_COMPILER_NOT_AVAILABLE -3 200*6467f958SSadaf Ebrahimi #define CL_MEM_OBJECT_ALLOCATION_FAILURE -4 201*6467f958SSadaf Ebrahimi #define CL_OUT_OF_RESOURCES -5 202*6467f958SSadaf Ebrahimi #define CL_OUT_OF_HOST_MEMORY -6 203*6467f958SSadaf Ebrahimi #define CL_PROFILING_INFO_NOT_AVAILABLE -7 204*6467f958SSadaf Ebrahimi #define CL_MEM_COPY_OVERLAP -8 205*6467f958SSadaf Ebrahimi #define CL_IMAGE_FORMAT_MISMATCH -9 206*6467f958SSadaf Ebrahimi #define CL_IMAGE_FORMAT_NOT_SUPPORTED -10 207*6467f958SSadaf Ebrahimi #define CL_BUILD_PROGRAM_FAILURE -11 208*6467f958SSadaf Ebrahimi #define CL_MAP_FAILURE -12 209*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_1_1 210*6467f958SSadaf Ebrahimi #define CL_MISALIGNED_SUB_BUFFER_OFFSET -13 211*6467f958SSadaf Ebrahimi #define CL_EXEC_STATUS_ERROR_FOR_EVENTS_IN_WAIT_LIST -14 212*6467f958SSadaf Ebrahimi #endif 213*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_1_2 214*6467f958SSadaf Ebrahimi #define CL_COMPILE_PROGRAM_FAILURE -15 215*6467f958SSadaf Ebrahimi #define CL_LINKER_NOT_AVAILABLE -16 216*6467f958SSadaf Ebrahimi #define CL_LINK_PROGRAM_FAILURE -17 217*6467f958SSadaf Ebrahimi #define CL_DEVICE_PARTITION_FAILED -18 218*6467f958SSadaf Ebrahimi #define CL_KERNEL_ARG_INFO_NOT_AVAILABLE -19 219*6467f958SSadaf Ebrahimi #endif 220*6467f958SSadaf Ebrahimi 221*6467f958SSadaf Ebrahimi #define CL_INVALID_VALUE -30 222*6467f958SSadaf Ebrahimi #define CL_INVALID_DEVICE_TYPE -31 223*6467f958SSadaf Ebrahimi #define CL_INVALID_PLATFORM -32 224*6467f958SSadaf Ebrahimi #define CL_INVALID_DEVICE -33 225*6467f958SSadaf Ebrahimi #define CL_INVALID_CONTEXT -34 226*6467f958SSadaf Ebrahimi #define CL_INVALID_QUEUE_PROPERTIES -35 227*6467f958SSadaf Ebrahimi #define CL_INVALID_COMMAND_QUEUE -36 228*6467f958SSadaf Ebrahimi #define CL_INVALID_HOST_PTR -37 229*6467f958SSadaf Ebrahimi #define CL_INVALID_MEM_OBJECT -38 230*6467f958SSadaf Ebrahimi #define CL_INVALID_IMAGE_FORMAT_DESCRIPTOR -39 231*6467f958SSadaf Ebrahimi #define CL_INVALID_IMAGE_SIZE -40 232*6467f958SSadaf Ebrahimi #define CL_INVALID_SAMPLER -41 233*6467f958SSadaf Ebrahimi #define CL_INVALID_BINARY -42 234*6467f958SSadaf Ebrahimi #define CL_INVALID_BUILD_OPTIONS -43 235*6467f958SSadaf Ebrahimi #define CL_INVALID_PROGRAM -44 236*6467f958SSadaf Ebrahimi #define CL_INVALID_PROGRAM_EXECUTABLE -45 237*6467f958SSadaf Ebrahimi #define CL_INVALID_KERNEL_NAME -46 238*6467f958SSadaf Ebrahimi #define CL_INVALID_KERNEL_DEFINITION -47 239*6467f958SSadaf Ebrahimi #define CL_INVALID_KERNEL -48 240*6467f958SSadaf Ebrahimi #define CL_INVALID_ARG_INDEX -49 241*6467f958SSadaf Ebrahimi #define CL_INVALID_ARG_VALUE -50 242*6467f958SSadaf Ebrahimi #define CL_INVALID_ARG_SIZE -51 243*6467f958SSadaf Ebrahimi #define CL_INVALID_KERNEL_ARGS -52 244*6467f958SSadaf Ebrahimi #define CL_INVALID_WORK_DIMENSION -53 245*6467f958SSadaf Ebrahimi #define CL_INVALID_WORK_GROUP_SIZE -54 246*6467f958SSadaf Ebrahimi #define CL_INVALID_WORK_ITEM_SIZE -55 247*6467f958SSadaf Ebrahimi #define CL_INVALID_GLOBAL_OFFSET -56 248*6467f958SSadaf Ebrahimi #define CL_INVALID_EVENT_WAIT_LIST -57 249*6467f958SSadaf Ebrahimi #define CL_INVALID_EVENT -58 250*6467f958SSadaf Ebrahimi #define CL_INVALID_OPERATION -59 251*6467f958SSadaf Ebrahimi #define CL_INVALID_GL_OBJECT -60 252*6467f958SSadaf Ebrahimi #define CL_INVALID_BUFFER_SIZE -61 253*6467f958SSadaf Ebrahimi #define CL_INVALID_MIP_LEVEL -62 254*6467f958SSadaf Ebrahimi #define CL_INVALID_GLOBAL_WORK_SIZE -63 255*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_1_1 256*6467f958SSadaf Ebrahimi #define CL_INVALID_PROPERTY -64 257*6467f958SSadaf Ebrahimi #endif 258*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_1_2 259*6467f958SSadaf Ebrahimi #define CL_INVALID_IMAGE_DESCRIPTOR -65 260*6467f958SSadaf Ebrahimi #define CL_INVALID_COMPILER_OPTIONS -66 261*6467f958SSadaf Ebrahimi #define CL_INVALID_LINKER_OPTIONS -67 262*6467f958SSadaf Ebrahimi #define CL_INVALID_DEVICE_PARTITION_COUNT -68 263*6467f958SSadaf Ebrahimi #endif 264*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_2_0 265*6467f958SSadaf Ebrahimi #define CL_INVALID_PIPE_SIZE -69 266*6467f958SSadaf Ebrahimi #define CL_INVALID_DEVICE_QUEUE -70 267*6467f958SSadaf Ebrahimi #endif 268*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_2_2 269*6467f958SSadaf Ebrahimi #define CL_INVALID_SPEC_ID -71 270*6467f958SSadaf Ebrahimi #define CL_MAX_SIZE_RESTRICTION_EXCEEDED -72 271*6467f958SSadaf Ebrahimi #endif 272*6467f958SSadaf Ebrahimi 273*6467f958SSadaf Ebrahimi 274*6467f958SSadaf Ebrahimi /* cl_bool */ 275*6467f958SSadaf Ebrahimi #define CL_FALSE 0 276*6467f958SSadaf Ebrahimi #define CL_TRUE 1 277*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_1_2 278*6467f958SSadaf Ebrahimi #define CL_BLOCKING CL_TRUE 279*6467f958SSadaf Ebrahimi #define CL_NON_BLOCKING CL_FALSE 280*6467f958SSadaf Ebrahimi #endif 281*6467f958SSadaf Ebrahimi 282*6467f958SSadaf Ebrahimi /* cl_platform_info */ 283*6467f958SSadaf Ebrahimi #define CL_PLATFORM_PROFILE 0x0900 284*6467f958SSadaf Ebrahimi #define CL_PLATFORM_VERSION 0x0901 285*6467f958SSadaf Ebrahimi #define CL_PLATFORM_NAME 0x0902 286*6467f958SSadaf Ebrahimi #define CL_PLATFORM_VENDOR 0x0903 287*6467f958SSadaf Ebrahimi #define CL_PLATFORM_EXTENSIONS 0x0904 288*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_2_1 289*6467f958SSadaf Ebrahimi #define CL_PLATFORM_HOST_TIMER_RESOLUTION 0x0905 290*6467f958SSadaf Ebrahimi #endif 291*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_3_0 292*6467f958SSadaf Ebrahimi #define CL_PLATFORM_NUMERIC_VERSION 0x0906 293*6467f958SSadaf Ebrahimi #define CL_PLATFORM_EXTENSIONS_WITH_VERSION 0x0907 294*6467f958SSadaf Ebrahimi #endif 295*6467f958SSadaf Ebrahimi 296*6467f958SSadaf Ebrahimi /* cl_device_type - bitfield */ 297*6467f958SSadaf Ebrahimi #define CL_DEVICE_TYPE_DEFAULT (1 << 0) 298*6467f958SSadaf Ebrahimi #define CL_DEVICE_TYPE_CPU (1 << 1) 299*6467f958SSadaf Ebrahimi #define CL_DEVICE_TYPE_GPU (1 << 2) 300*6467f958SSadaf Ebrahimi #define CL_DEVICE_TYPE_ACCELERATOR (1 << 3) 301*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_1_2 302*6467f958SSadaf Ebrahimi #define CL_DEVICE_TYPE_CUSTOM (1 << 4) 303*6467f958SSadaf Ebrahimi #endif 304*6467f958SSadaf Ebrahimi #define CL_DEVICE_TYPE_ALL 0xFFFFFFFF 305*6467f958SSadaf Ebrahimi 306*6467f958SSadaf Ebrahimi /* cl_device_info */ 307*6467f958SSadaf Ebrahimi #define CL_DEVICE_TYPE 0x1000 308*6467f958SSadaf Ebrahimi #define CL_DEVICE_VENDOR_ID 0x1001 309*6467f958SSadaf Ebrahimi #define CL_DEVICE_MAX_COMPUTE_UNITS 0x1002 310*6467f958SSadaf Ebrahimi #define CL_DEVICE_MAX_WORK_ITEM_DIMENSIONS 0x1003 311*6467f958SSadaf Ebrahimi #define CL_DEVICE_MAX_WORK_GROUP_SIZE 0x1004 312*6467f958SSadaf Ebrahimi #define CL_DEVICE_MAX_WORK_ITEM_SIZES 0x1005 313*6467f958SSadaf Ebrahimi #define CL_DEVICE_PREFERRED_VECTOR_WIDTH_CHAR 0x1006 314*6467f958SSadaf Ebrahimi #define CL_DEVICE_PREFERRED_VECTOR_WIDTH_SHORT 0x1007 315*6467f958SSadaf Ebrahimi #define CL_DEVICE_PREFERRED_VECTOR_WIDTH_INT 0x1008 316*6467f958SSadaf Ebrahimi #define CL_DEVICE_PREFERRED_VECTOR_WIDTH_LONG 0x1009 317*6467f958SSadaf Ebrahimi #define CL_DEVICE_PREFERRED_VECTOR_WIDTH_FLOAT 0x100A 318*6467f958SSadaf Ebrahimi #define CL_DEVICE_PREFERRED_VECTOR_WIDTH_DOUBLE 0x100B 319*6467f958SSadaf Ebrahimi #define CL_DEVICE_MAX_CLOCK_FREQUENCY 0x100C 320*6467f958SSadaf Ebrahimi #define CL_DEVICE_ADDRESS_BITS 0x100D 321*6467f958SSadaf Ebrahimi #define CL_DEVICE_MAX_READ_IMAGE_ARGS 0x100E 322*6467f958SSadaf Ebrahimi #define CL_DEVICE_MAX_WRITE_IMAGE_ARGS 0x100F 323*6467f958SSadaf Ebrahimi #define CL_DEVICE_MAX_MEM_ALLOC_SIZE 0x1010 324*6467f958SSadaf Ebrahimi #define CL_DEVICE_IMAGE2D_MAX_WIDTH 0x1011 325*6467f958SSadaf Ebrahimi #define CL_DEVICE_IMAGE2D_MAX_HEIGHT 0x1012 326*6467f958SSadaf Ebrahimi #define CL_DEVICE_IMAGE3D_MAX_WIDTH 0x1013 327*6467f958SSadaf Ebrahimi #define CL_DEVICE_IMAGE3D_MAX_HEIGHT 0x1014 328*6467f958SSadaf Ebrahimi #define CL_DEVICE_IMAGE3D_MAX_DEPTH 0x1015 329*6467f958SSadaf Ebrahimi #define CL_DEVICE_IMAGE_SUPPORT 0x1016 330*6467f958SSadaf Ebrahimi #define CL_DEVICE_MAX_PARAMETER_SIZE 0x1017 331*6467f958SSadaf Ebrahimi #define CL_DEVICE_MAX_SAMPLERS 0x1018 332*6467f958SSadaf Ebrahimi #define CL_DEVICE_MEM_BASE_ADDR_ALIGN 0x1019 333*6467f958SSadaf Ebrahimi #define CL_DEVICE_MIN_DATA_TYPE_ALIGN_SIZE 0x101A 334*6467f958SSadaf Ebrahimi #define CL_DEVICE_SINGLE_FP_CONFIG 0x101B 335*6467f958SSadaf Ebrahimi #define CL_DEVICE_GLOBAL_MEM_CACHE_TYPE 0x101C 336*6467f958SSadaf Ebrahimi #define CL_DEVICE_GLOBAL_MEM_CACHELINE_SIZE 0x101D 337*6467f958SSadaf Ebrahimi #define CL_DEVICE_GLOBAL_MEM_CACHE_SIZE 0x101E 338*6467f958SSadaf Ebrahimi #define CL_DEVICE_GLOBAL_MEM_SIZE 0x101F 339*6467f958SSadaf Ebrahimi #define CL_DEVICE_MAX_CONSTANT_BUFFER_SIZE 0x1020 340*6467f958SSadaf Ebrahimi #define CL_DEVICE_MAX_CONSTANT_ARGS 0x1021 341*6467f958SSadaf Ebrahimi #define CL_DEVICE_LOCAL_MEM_TYPE 0x1022 342*6467f958SSadaf Ebrahimi #define CL_DEVICE_LOCAL_MEM_SIZE 0x1023 343*6467f958SSadaf Ebrahimi #define CL_DEVICE_ERROR_CORRECTION_SUPPORT 0x1024 344*6467f958SSadaf Ebrahimi #define CL_DEVICE_PROFILING_TIMER_RESOLUTION 0x1025 345*6467f958SSadaf Ebrahimi #define CL_DEVICE_ENDIAN_LITTLE 0x1026 346*6467f958SSadaf Ebrahimi #define CL_DEVICE_AVAILABLE 0x1027 347*6467f958SSadaf Ebrahimi #define CL_DEVICE_COMPILER_AVAILABLE 0x1028 348*6467f958SSadaf Ebrahimi #define CL_DEVICE_EXECUTION_CAPABILITIES 0x1029 349*6467f958SSadaf Ebrahimi #define CL_DEVICE_QUEUE_PROPERTIES 0x102A /* deprecated */ 350*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_2_0 351*6467f958SSadaf Ebrahimi #define CL_DEVICE_QUEUE_ON_HOST_PROPERTIES 0x102A 352*6467f958SSadaf Ebrahimi #endif 353*6467f958SSadaf Ebrahimi #define CL_DEVICE_NAME 0x102B 354*6467f958SSadaf Ebrahimi #define CL_DEVICE_VENDOR 0x102C 355*6467f958SSadaf Ebrahimi #define CL_DRIVER_VERSION 0x102D 356*6467f958SSadaf Ebrahimi #define CL_DEVICE_PROFILE 0x102E 357*6467f958SSadaf Ebrahimi #define CL_DEVICE_VERSION 0x102F 358*6467f958SSadaf Ebrahimi #define CL_DEVICE_EXTENSIONS 0x1030 359*6467f958SSadaf Ebrahimi #define CL_DEVICE_PLATFORM 0x1031 360*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_1_2 361*6467f958SSadaf Ebrahimi #define CL_DEVICE_DOUBLE_FP_CONFIG 0x1032 362*6467f958SSadaf Ebrahimi #endif 363*6467f958SSadaf Ebrahimi /* 0x1033 reserved for CL_DEVICE_HALF_FP_CONFIG which is already defined in "cl_ext.h" */ 364*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_1_1 365*6467f958SSadaf Ebrahimi #define CL_DEVICE_PREFERRED_VECTOR_WIDTH_HALF 0x1034 366*6467f958SSadaf Ebrahimi #define CL_DEVICE_HOST_UNIFIED_MEMORY 0x1035 /* deprecated */ 367*6467f958SSadaf Ebrahimi #define CL_DEVICE_NATIVE_VECTOR_WIDTH_CHAR 0x1036 368*6467f958SSadaf Ebrahimi #define CL_DEVICE_NATIVE_VECTOR_WIDTH_SHORT 0x1037 369*6467f958SSadaf Ebrahimi #define CL_DEVICE_NATIVE_VECTOR_WIDTH_INT 0x1038 370*6467f958SSadaf Ebrahimi #define CL_DEVICE_NATIVE_VECTOR_WIDTH_LONG 0x1039 371*6467f958SSadaf Ebrahimi #define CL_DEVICE_NATIVE_VECTOR_WIDTH_FLOAT 0x103A 372*6467f958SSadaf Ebrahimi #define CL_DEVICE_NATIVE_VECTOR_WIDTH_DOUBLE 0x103B 373*6467f958SSadaf Ebrahimi #define CL_DEVICE_NATIVE_VECTOR_WIDTH_HALF 0x103C 374*6467f958SSadaf Ebrahimi #define CL_DEVICE_OPENCL_C_VERSION 0x103D 375*6467f958SSadaf Ebrahimi #endif 376*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_1_2 377*6467f958SSadaf Ebrahimi #define CL_DEVICE_LINKER_AVAILABLE 0x103E 378*6467f958SSadaf Ebrahimi #define CL_DEVICE_BUILT_IN_KERNELS 0x103F 379*6467f958SSadaf Ebrahimi #define CL_DEVICE_IMAGE_MAX_BUFFER_SIZE 0x1040 380*6467f958SSadaf Ebrahimi #define CL_DEVICE_IMAGE_MAX_ARRAY_SIZE 0x1041 381*6467f958SSadaf Ebrahimi #define CL_DEVICE_PARENT_DEVICE 0x1042 382*6467f958SSadaf Ebrahimi #define CL_DEVICE_PARTITION_MAX_SUB_DEVICES 0x1043 383*6467f958SSadaf Ebrahimi #define CL_DEVICE_PARTITION_PROPERTIES 0x1044 384*6467f958SSadaf Ebrahimi #define CL_DEVICE_PARTITION_AFFINITY_DOMAIN 0x1045 385*6467f958SSadaf Ebrahimi #define CL_DEVICE_PARTITION_TYPE 0x1046 386*6467f958SSadaf Ebrahimi #define CL_DEVICE_REFERENCE_COUNT 0x1047 387*6467f958SSadaf Ebrahimi #define CL_DEVICE_PREFERRED_INTEROP_USER_SYNC 0x1048 388*6467f958SSadaf Ebrahimi #define CL_DEVICE_PRINTF_BUFFER_SIZE 0x1049 389*6467f958SSadaf Ebrahimi #endif 390*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_2_0 391*6467f958SSadaf Ebrahimi #define CL_DEVICE_IMAGE_PITCH_ALIGNMENT 0x104A 392*6467f958SSadaf Ebrahimi #define CL_DEVICE_IMAGE_BASE_ADDRESS_ALIGNMENT 0x104B 393*6467f958SSadaf Ebrahimi #define CL_DEVICE_MAX_READ_WRITE_IMAGE_ARGS 0x104C 394*6467f958SSadaf Ebrahimi #define CL_DEVICE_MAX_GLOBAL_VARIABLE_SIZE 0x104D 395*6467f958SSadaf Ebrahimi #define CL_DEVICE_QUEUE_ON_DEVICE_PROPERTIES 0x104E 396*6467f958SSadaf Ebrahimi #define CL_DEVICE_QUEUE_ON_DEVICE_PREFERRED_SIZE 0x104F 397*6467f958SSadaf Ebrahimi #define CL_DEVICE_QUEUE_ON_DEVICE_MAX_SIZE 0x1050 398*6467f958SSadaf Ebrahimi #define CL_DEVICE_MAX_ON_DEVICE_QUEUES 0x1051 399*6467f958SSadaf Ebrahimi #define CL_DEVICE_MAX_ON_DEVICE_EVENTS 0x1052 400*6467f958SSadaf Ebrahimi #define CL_DEVICE_SVM_CAPABILITIES 0x1053 401*6467f958SSadaf Ebrahimi #define CL_DEVICE_GLOBAL_VARIABLE_PREFERRED_TOTAL_SIZE 0x1054 402*6467f958SSadaf Ebrahimi #define CL_DEVICE_MAX_PIPE_ARGS 0x1055 403*6467f958SSadaf Ebrahimi #define CL_DEVICE_PIPE_MAX_ACTIVE_RESERVATIONS 0x1056 404*6467f958SSadaf Ebrahimi #define CL_DEVICE_PIPE_MAX_PACKET_SIZE 0x1057 405*6467f958SSadaf Ebrahimi #define CL_DEVICE_PREFERRED_PLATFORM_ATOMIC_ALIGNMENT 0x1058 406*6467f958SSadaf Ebrahimi #define CL_DEVICE_PREFERRED_GLOBAL_ATOMIC_ALIGNMENT 0x1059 407*6467f958SSadaf Ebrahimi #define CL_DEVICE_PREFERRED_LOCAL_ATOMIC_ALIGNMENT 0x105A 408*6467f958SSadaf Ebrahimi #endif 409*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_2_1 410*6467f958SSadaf Ebrahimi #define CL_DEVICE_IL_VERSION 0x105B 411*6467f958SSadaf Ebrahimi #define CL_DEVICE_MAX_NUM_SUB_GROUPS 0x105C 412*6467f958SSadaf Ebrahimi #define CL_DEVICE_SUB_GROUP_INDEPENDENT_FORWARD_PROGRESS 0x105D 413*6467f958SSadaf Ebrahimi #endif 414*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_3_0 415*6467f958SSadaf Ebrahimi #define CL_DEVICE_NUMERIC_VERSION 0x105E 416*6467f958SSadaf Ebrahimi #define CL_DEVICE_EXTENSIONS_WITH_VERSION 0x1060 417*6467f958SSadaf Ebrahimi #define CL_DEVICE_ILS_WITH_VERSION 0x1061 418*6467f958SSadaf Ebrahimi #define CL_DEVICE_BUILT_IN_KERNELS_WITH_VERSION 0x1062 419*6467f958SSadaf Ebrahimi #define CL_DEVICE_ATOMIC_MEMORY_CAPABILITIES 0x1063 420*6467f958SSadaf Ebrahimi #define CL_DEVICE_ATOMIC_FENCE_CAPABILITIES 0x1064 421*6467f958SSadaf Ebrahimi #define CL_DEVICE_NON_UNIFORM_WORK_GROUP_SUPPORT 0x1065 422*6467f958SSadaf Ebrahimi #define CL_DEVICE_OPENCL_C_ALL_VERSIONS 0x1066 423*6467f958SSadaf Ebrahimi #define CL_DEVICE_PREFERRED_WORK_GROUP_SIZE_MULTIPLE 0x1067 424*6467f958SSadaf Ebrahimi #define CL_DEVICE_WORK_GROUP_COLLECTIVE_FUNCTIONS_SUPPORT 0x1068 425*6467f958SSadaf Ebrahimi #define CL_DEVICE_GENERIC_ADDRESS_SPACE_SUPPORT 0x1069 426*6467f958SSadaf Ebrahimi /* 0x106A to 0x106E - Reserved for upcoming KHR extension */ 427*6467f958SSadaf Ebrahimi #define CL_DEVICE_OPENCL_C_FEATURES 0x106F 428*6467f958SSadaf Ebrahimi #define CL_DEVICE_DEVICE_ENQUEUE_CAPABILITIES 0x1070 429*6467f958SSadaf Ebrahimi #define CL_DEVICE_PIPE_SUPPORT 0x1071 430*6467f958SSadaf Ebrahimi #define CL_DEVICE_LATEST_CONFORMANCE_VERSION_PASSED 0x1072 431*6467f958SSadaf Ebrahimi #endif 432*6467f958SSadaf Ebrahimi 433*6467f958SSadaf Ebrahimi /* cl_device_fp_config - bitfield */ 434*6467f958SSadaf Ebrahimi #define CL_FP_DENORM (1 << 0) 435*6467f958SSadaf Ebrahimi #define CL_FP_INF_NAN (1 << 1) 436*6467f958SSadaf Ebrahimi #define CL_FP_ROUND_TO_NEAREST (1 << 2) 437*6467f958SSadaf Ebrahimi #define CL_FP_ROUND_TO_ZERO (1 << 3) 438*6467f958SSadaf Ebrahimi #define CL_FP_ROUND_TO_INF (1 << 4) 439*6467f958SSadaf Ebrahimi #define CL_FP_FMA (1 << 5) 440*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_1_1 441*6467f958SSadaf Ebrahimi #define CL_FP_SOFT_FLOAT (1 << 6) 442*6467f958SSadaf Ebrahimi #endif 443*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_1_2 444*6467f958SSadaf Ebrahimi #define CL_FP_CORRECTLY_ROUNDED_DIVIDE_SQRT (1 << 7) 445*6467f958SSadaf Ebrahimi #endif 446*6467f958SSadaf Ebrahimi 447*6467f958SSadaf Ebrahimi /* cl_device_mem_cache_type */ 448*6467f958SSadaf Ebrahimi #define CL_NONE 0x0 449*6467f958SSadaf Ebrahimi #define CL_READ_ONLY_CACHE 0x1 450*6467f958SSadaf Ebrahimi #define CL_READ_WRITE_CACHE 0x2 451*6467f958SSadaf Ebrahimi 452*6467f958SSadaf Ebrahimi /* cl_device_local_mem_type */ 453*6467f958SSadaf Ebrahimi #define CL_LOCAL 0x1 454*6467f958SSadaf Ebrahimi #define CL_GLOBAL 0x2 455*6467f958SSadaf Ebrahimi 456*6467f958SSadaf Ebrahimi /* cl_device_exec_capabilities - bitfield */ 457*6467f958SSadaf Ebrahimi #define CL_EXEC_KERNEL (1 << 0) 458*6467f958SSadaf Ebrahimi #define CL_EXEC_NATIVE_KERNEL (1 << 1) 459*6467f958SSadaf Ebrahimi 460*6467f958SSadaf Ebrahimi /* cl_command_queue_properties - bitfield */ 461*6467f958SSadaf Ebrahimi #define CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE (1 << 0) 462*6467f958SSadaf Ebrahimi #define CL_QUEUE_PROFILING_ENABLE (1 << 1) 463*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_2_0 464*6467f958SSadaf Ebrahimi #define CL_QUEUE_ON_DEVICE (1 << 2) 465*6467f958SSadaf Ebrahimi #define CL_QUEUE_ON_DEVICE_DEFAULT (1 << 3) 466*6467f958SSadaf Ebrahimi #endif 467*6467f958SSadaf Ebrahimi 468*6467f958SSadaf Ebrahimi /* cl_context_info */ 469*6467f958SSadaf Ebrahimi #define CL_CONTEXT_REFERENCE_COUNT 0x1080 470*6467f958SSadaf Ebrahimi #define CL_CONTEXT_DEVICES 0x1081 471*6467f958SSadaf Ebrahimi #define CL_CONTEXT_PROPERTIES 0x1082 472*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_1_1 473*6467f958SSadaf Ebrahimi #define CL_CONTEXT_NUM_DEVICES 0x1083 474*6467f958SSadaf Ebrahimi #endif 475*6467f958SSadaf Ebrahimi 476*6467f958SSadaf Ebrahimi /* cl_context_properties */ 477*6467f958SSadaf Ebrahimi #define CL_CONTEXT_PLATFORM 0x1084 478*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_1_2 479*6467f958SSadaf Ebrahimi #define CL_CONTEXT_INTEROP_USER_SYNC 0x1085 480*6467f958SSadaf Ebrahimi #endif 481*6467f958SSadaf Ebrahimi 482*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_1_2 483*6467f958SSadaf Ebrahimi 484*6467f958SSadaf Ebrahimi /* cl_device_partition_property */ 485*6467f958SSadaf Ebrahimi #define CL_DEVICE_PARTITION_EQUALLY 0x1086 486*6467f958SSadaf Ebrahimi #define CL_DEVICE_PARTITION_BY_COUNTS 0x1087 487*6467f958SSadaf Ebrahimi #define CL_DEVICE_PARTITION_BY_COUNTS_LIST_END 0x0 488*6467f958SSadaf Ebrahimi #define CL_DEVICE_PARTITION_BY_AFFINITY_DOMAIN 0x1088 489*6467f958SSadaf Ebrahimi 490*6467f958SSadaf Ebrahimi #endif 491*6467f958SSadaf Ebrahimi 492*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_1_2 493*6467f958SSadaf Ebrahimi 494*6467f958SSadaf Ebrahimi /* cl_device_affinity_domain */ 495*6467f958SSadaf Ebrahimi #define CL_DEVICE_AFFINITY_DOMAIN_NUMA (1 << 0) 496*6467f958SSadaf Ebrahimi #define CL_DEVICE_AFFINITY_DOMAIN_L4_CACHE (1 << 1) 497*6467f958SSadaf Ebrahimi #define CL_DEVICE_AFFINITY_DOMAIN_L3_CACHE (1 << 2) 498*6467f958SSadaf Ebrahimi #define CL_DEVICE_AFFINITY_DOMAIN_L2_CACHE (1 << 3) 499*6467f958SSadaf Ebrahimi #define CL_DEVICE_AFFINITY_DOMAIN_L1_CACHE (1 << 4) 500*6467f958SSadaf Ebrahimi #define CL_DEVICE_AFFINITY_DOMAIN_NEXT_PARTITIONABLE (1 << 5) 501*6467f958SSadaf Ebrahimi 502*6467f958SSadaf Ebrahimi #endif 503*6467f958SSadaf Ebrahimi 504*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_2_0 505*6467f958SSadaf Ebrahimi 506*6467f958SSadaf Ebrahimi /* cl_device_svm_capabilities */ 507*6467f958SSadaf Ebrahimi #define CL_DEVICE_SVM_COARSE_GRAIN_BUFFER (1 << 0) 508*6467f958SSadaf Ebrahimi #define CL_DEVICE_SVM_FINE_GRAIN_BUFFER (1 << 1) 509*6467f958SSadaf Ebrahimi #define CL_DEVICE_SVM_FINE_GRAIN_SYSTEM (1 << 2) 510*6467f958SSadaf Ebrahimi #define CL_DEVICE_SVM_ATOMICS (1 << 3) 511*6467f958SSadaf Ebrahimi 512*6467f958SSadaf Ebrahimi #endif 513*6467f958SSadaf Ebrahimi 514*6467f958SSadaf Ebrahimi /* cl_command_queue_info */ 515*6467f958SSadaf Ebrahimi #define CL_QUEUE_CONTEXT 0x1090 516*6467f958SSadaf Ebrahimi #define CL_QUEUE_DEVICE 0x1091 517*6467f958SSadaf Ebrahimi #define CL_QUEUE_REFERENCE_COUNT 0x1092 518*6467f958SSadaf Ebrahimi #define CL_QUEUE_PROPERTIES 0x1093 519*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_2_0 520*6467f958SSadaf Ebrahimi #define CL_QUEUE_SIZE 0x1094 521*6467f958SSadaf Ebrahimi #endif 522*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_2_1 523*6467f958SSadaf Ebrahimi #define CL_QUEUE_DEVICE_DEFAULT 0x1095 524*6467f958SSadaf Ebrahimi #endif 525*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_3_0 526*6467f958SSadaf Ebrahimi #define CL_QUEUE_PROPERTIES_ARRAY 0x1098 527*6467f958SSadaf Ebrahimi #endif 528*6467f958SSadaf Ebrahimi 529*6467f958SSadaf Ebrahimi /* cl_mem_flags and cl_svm_mem_flags - bitfield */ 530*6467f958SSadaf Ebrahimi #define CL_MEM_READ_WRITE (1 << 0) 531*6467f958SSadaf Ebrahimi #define CL_MEM_WRITE_ONLY (1 << 1) 532*6467f958SSadaf Ebrahimi #define CL_MEM_READ_ONLY (1 << 2) 533*6467f958SSadaf Ebrahimi #define CL_MEM_USE_HOST_PTR (1 << 3) 534*6467f958SSadaf Ebrahimi #define CL_MEM_ALLOC_HOST_PTR (1 << 4) 535*6467f958SSadaf Ebrahimi #define CL_MEM_COPY_HOST_PTR (1 << 5) 536*6467f958SSadaf Ebrahimi /* reserved (1 << 6) */ 537*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_1_2 538*6467f958SSadaf Ebrahimi #define CL_MEM_HOST_WRITE_ONLY (1 << 7) 539*6467f958SSadaf Ebrahimi #define CL_MEM_HOST_READ_ONLY (1 << 8) 540*6467f958SSadaf Ebrahimi #define CL_MEM_HOST_NO_ACCESS (1 << 9) 541*6467f958SSadaf Ebrahimi #endif 542*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_2_0 543*6467f958SSadaf Ebrahimi #define CL_MEM_SVM_FINE_GRAIN_BUFFER (1 << 10) /* used by cl_svm_mem_flags only */ 544*6467f958SSadaf Ebrahimi #define CL_MEM_SVM_ATOMICS (1 << 11) /* used by cl_svm_mem_flags only */ 545*6467f958SSadaf Ebrahimi #define CL_MEM_KERNEL_READ_AND_WRITE (1 << 12) 546*6467f958SSadaf Ebrahimi #endif 547*6467f958SSadaf Ebrahimi 548*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_1_2 549*6467f958SSadaf Ebrahimi 550*6467f958SSadaf Ebrahimi /* cl_mem_migration_flags - bitfield */ 551*6467f958SSadaf Ebrahimi #define CL_MIGRATE_MEM_OBJECT_HOST (1 << 0) 552*6467f958SSadaf Ebrahimi #define CL_MIGRATE_MEM_OBJECT_CONTENT_UNDEFINED (1 << 1) 553*6467f958SSadaf Ebrahimi 554*6467f958SSadaf Ebrahimi #endif 555*6467f958SSadaf Ebrahimi 556*6467f958SSadaf Ebrahimi /* cl_channel_order */ 557*6467f958SSadaf Ebrahimi #define CL_R 0x10B0 558*6467f958SSadaf Ebrahimi #define CL_A 0x10B1 559*6467f958SSadaf Ebrahimi #define CL_RG 0x10B2 560*6467f958SSadaf Ebrahimi #define CL_RA 0x10B3 561*6467f958SSadaf Ebrahimi #define CL_RGB 0x10B4 562*6467f958SSadaf Ebrahimi #define CL_RGBA 0x10B5 563*6467f958SSadaf Ebrahimi #define CL_BGRA 0x10B6 564*6467f958SSadaf Ebrahimi #define CL_ARGB 0x10B7 565*6467f958SSadaf Ebrahimi #define CL_INTENSITY 0x10B8 566*6467f958SSadaf Ebrahimi #define CL_LUMINANCE 0x10B9 567*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_1_1 568*6467f958SSadaf Ebrahimi #define CL_Rx 0x10BA 569*6467f958SSadaf Ebrahimi #define CL_RGx 0x10BB 570*6467f958SSadaf Ebrahimi #define CL_RGBx 0x10BC 571*6467f958SSadaf Ebrahimi #endif 572*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_1_2 573*6467f958SSadaf Ebrahimi #define CL_DEPTH 0x10BD 574*6467f958SSadaf Ebrahimi #define CL_DEPTH_STENCIL 0x10BE 575*6467f958SSadaf Ebrahimi #endif 576*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_2_0 577*6467f958SSadaf Ebrahimi #define CL_sRGB 0x10BF 578*6467f958SSadaf Ebrahimi #define CL_sRGBx 0x10C0 579*6467f958SSadaf Ebrahimi #define CL_sRGBA 0x10C1 580*6467f958SSadaf Ebrahimi #define CL_sBGRA 0x10C2 581*6467f958SSadaf Ebrahimi #define CL_ABGR 0x10C3 582*6467f958SSadaf Ebrahimi #endif 583*6467f958SSadaf Ebrahimi 584*6467f958SSadaf Ebrahimi /* cl_channel_type */ 585*6467f958SSadaf Ebrahimi #define CL_SNORM_INT8 0x10D0 586*6467f958SSadaf Ebrahimi #define CL_SNORM_INT16 0x10D1 587*6467f958SSadaf Ebrahimi #define CL_UNORM_INT8 0x10D2 588*6467f958SSadaf Ebrahimi #define CL_UNORM_INT16 0x10D3 589*6467f958SSadaf Ebrahimi #define CL_UNORM_SHORT_565 0x10D4 590*6467f958SSadaf Ebrahimi #define CL_UNORM_SHORT_555 0x10D5 591*6467f958SSadaf Ebrahimi #define CL_UNORM_INT_101010 0x10D6 592*6467f958SSadaf Ebrahimi #define CL_SIGNED_INT8 0x10D7 593*6467f958SSadaf Ebrahimi #define CL_SIGNED_INT16 0x10D8 594*6467f958SSadaf Ebrahimi #define CL_SIGNED_INT32 0x10D9 595*6467f958SSadaf Ebrahimi #define CL_UNSIGNED_INT8 0x10DA 596*6467f958SSadaf Ebrahimi #define CL_UNSIGNED_INT16 0x10DB 597*6467f958SSadaf Ebrahimi #define CL_UNSIGNED_INT32 0x10DC 598*6467f958SSadaf Ebrahimi #define CL_HALF_FLOAT 0x10DD 599*6467f958SSadaf Ebrahimi #define CL_FLOAT 0x10DE 600*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_1_2 601*6467f958SSadaf Ebrahimi #define CL_UNORM_INT24 0x10DF 602*6467f958SSadaf Ebrahimi #endif 603*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_2_1 604*6467f958SSadaf Ebrahimi #define CL_UNORM_INT_101010_2 0x10E0 605*6467f958SSadaf Ebrahimi #endif 606*6467f958SSadaf Ebrahimi 607*6467f958SSadaf Ebrahimi /* cl_mem_object_type */ 608*6467f958SSadaf Ebrahimi #define CL_MEM_OBJECT_BUFFER 0x10F0 609*6467f958SSadaf Ebrahimi #define CL_MEM_OBJECT_IMAGE2D 0x10F1 610*6467f958SSadaf Ebrahimi #define CL_MEM_OBJECT_IMAGE3D 0x10F2 611*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_1_2 612*6467f958SSadaf Ebrahimi #define CL_MEM_OBJECT_IMAGE2D_ARRAY 0x10F3 613*6467f958SSadaf Ebrahimi #define CL_MEM_OBJECT_IMAGE1D 0x10F4 614*6467f958SSadaf Ebrahimi #define CL_MEM_OBJECT_IMAGE1D_ARRAY 0x10F5 615*6467f958SSadaf Ebrahimi #define CL_MEM_OBJECT_IMAGE1D_BUFFER 0x10F6 616*6467f958SSadaf Ebrahimi #endif 617*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_2_0 618*6467f958SSadaf Ebrahimi #define CL_MEM_OBJECT_PIPE 0x10F7 619*6467f958SSadaf Ebrahimi #endif 620*6467f958SSadaf Ebrahimi 621*6467f958SSadaf Ebrahimi /* cl_mem_info */ 622*6467f958SSadaf Ebrahimi #define CL_MEM_TYPE 0x1100 623*6467f958SSadaf Ebrahimi #define CL_MEM_FLAGS 0x1101 624*6467f958SSadaf Ebrahimi #define CL_MEM_SIZE 0x1102 625*6467f958SSadaf Ebrahimi #define CL_MEM_HOST_PTR 0x1103 626*6467f958SSadaf Ebrahimi #define CL_MEM_MAP_COUNT 0x1104 627*6467f958SSadaf Ebrahimi #define CL_MEM_REFERENCE_COUNT 0x1105 628*6467f958SSadaf Ebrahimi #define CL_MEM_CONTEXT 0x1106 629*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_1_1 630*6467f958SSadaf Ebrahimi #define CL_MEM_ASSOCIATED_MEMOBJECT 0x1107 631*6467f958SSadaf Ebrahimi #define CL_MEM_OFFSET 0x1108 632*6467f958SSadaf Ebrahimi #endif 633*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_2_0 634*6467f958SSadaf Ebrahimi #define CL_MEM_USES_SVM_POINTER 0x1109 635*6467f958SSadaf Ebrahimi #endif 636*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_3_0 637*6467f958SSadaf Ebrahimi #define CL_MEM_PROPERTIES 0x110A 638*6467f958SSadaf Ebrahimi #endif 639*6467f958SSadaf Ebrahimi 640*6467f958SSadaf Ebrahimi /* cl_image_info */ 641*6467f958SSadaf Ebrahimi #define CL_IMAGE_FORMAT 0x1110 642*6467f958SSadaf Ebrahimi #define CL_IMAGE_ELEMENT_SIZE 0x1111 643*6467f958SSadaf Ebrahimi #define CL_IMAGE_ROW_PITCH 0x1112 644*6467f958SSadaf Ebrahimi #define CL_IMAGE_SLICE_PITCH 0x1113 645*6467f958SSadaf Ebrahimi #define CL_IMAGE_WIDTH 0x1114 646*6467f958SSadaf Ebrahimi #define CL_IMAGE_HEIGHT 0x1115 647*6467f958SSadaf Ebrahimi #define CL_IMAGE_DEPTH 0x1116 648*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_1_2 649*6467f958SSadaf Ebrahimi #define CL_IMAGE_ARRAY_SIZE 0x1117 650*6467f958SSadaf Ebrahimi #define CL_IMAGE_BUFFER 0x1118 651*6467f958SSadaf Ebrahimi #define CL_IMAGE_NUM_MIP_LEVELS 0x1119 652*6467f958SSadaf Ebrahimi #define CL_IMAGE_NUM_SAMPLES 0x111A 653*6467f958SSadaf Ebrahimi #endif 654*6467f958SSadaf Ebrahimi 655*6467f958SSadaf Ebrahimi 656*6467f958SSadaf Ebrahimi /* cl_pipe_info */ 657*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_2_0 658*6467f958SSadaf Ebrahimi #define CL_PIPE_PACKET_SIZE 0x1120 659*6467f958SSadaf Ebrahimi #define CL_PIPE_MAX_PACKETS 0x1121 660*6467f958SSadaf Ebrahimi #endif 661*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_3_0 662*6467f958SSadaf Ebrahimi #define CL_PIPE_PROPERTIES 0x1122 663*6467f958SSadaf Ebrahimi #endif 664*6467f958SSadaf Ebrahimi 665*6467f958SSadaf Ebrahimi /* cl_addressing_mode */ 666*6467f958SSadaf Ebrahimi #define CL_ADDRESS_NONE 0x1130 667*6467f958SSadaf Ebrahimi #define CL_ADDRESS_CLAMP_TO_EDGE 0x1131 668*6467f958SSadaf Ebrahimi #define CL_ADDRESS_CLAMP 0x1132 669*6467f958SSadaf Ebrahimi #define CL_ADDRESS_REPEAT 0x1133 670*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_1_1 671*6467f958SSadaf Ebrahimi #define CL_ADDRESS_MIRRORED_REPEAT 0x1134 672*6467f958SSadaf Ebrahimi #endif 673*6467f958SSadaf Ebrahimi 674*6467f958SSadaf Ebrahimi /* cl_filter_mode */ 675*6467f958SSadaf Ebrahimi #define CL_FILTER_NEAREST 0x1140 676*6467f958SSadaf Ebrahimi #define CL_FILTER_LINEAR 0x1141 677*6467f958SSadaf Ebrahimi 678*6467f958SSadaf Ebrahimi /* cl_sampler_info */ 679*6467f958SSadaf Ebrahimi #define CL_SAMPLER_REFERENCE_COUNT 0x1150 680*6467f958SSadaf Ebrahimi #define CL_SAMPLER_CONTEXT 0x1151 681*6467f958SSadaf Ebrahimi #define CL_SAMPLER_NORMALIZED_COORDS 0x1152 682*6467f958SSadaf Ebrahimi #define CL_SAMPLER_ADDRESSING_MODE 0x1153 683*6467f958SSadaf Ebrahimi #define CL_SAMPLER_FILTER_MODE 0x1154 684*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_2_0 685*6467f958SSadaf Ebrahimi /* These enumerants are for the cl_khr_mipmap_image extension. 686*6467f958SSadaf Ebrahimi They have since been added to cl_ext.h with an appropriate 687*6467f958SSadaf Ebrahimi KHR suffix, but are left here for backwards compatibility. */ 688*6467f958SSadaf Ebrahimi #define CL_SAMPLER_MIP_FILTER_MODE 0x1155 689*6467f958SSadaf Ebrahimi #define CL_SAMPLER_LOD_MIN 0x1156 690*6467f958SSadaf Ebrahimi #define CL_SAMPLER_LOD_MAX 0x1157 691*6467f958SSadaf Ebrahimi #endif 692*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_3_0 693*6467f958SSadaf Ebrahimi #define CL_SAMPLER_PROPERTIES 0x1158 694*6467f958SSadaf Ebrahimi #endif 695*6467f958SSadaf Ebrahimi 696*6467f958SSadaf Ebrahimi /* cl_map_flags - bitfield */ 697*6467f958SSadaf Ebrahimi #define CL_MAP_READ (1 << 0) 698*6467f958SSadaf Ebrahimi #define CL_MAP_WRITE (1 << 1) 699*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_1_2 700*6467f958SSadaf Ebrahimi #define CL_MAP_WRITE_INVALIDATE_REGION (1 << 2) 701*6467f958SSadaf Ebrahimi #endif 702*6467f958SSadaf Ebrahimi 703*6467f958SSadaf Ebrahimi /* cl_program_info */ 704*6467f958SSadaf Ebrahimi #define CL_PROGRAM_REFERENCE_COUNT 0x1160 705*6467f958SSadaf Ebrahimi #define CL_PROGRAM_CONTEXT 0x1161 706*6467f958SSadaf Ebrahimi #define CL_PROGRAM_NUM_DEVICES 0x1162 707*6467f958SSadaf Ebrahimi #define CL_PROGRAM_DEVICES 0x1163 708*6467f958SSadaf Ebrahimi #define CL_PROGRAM_SOURCE 0x1164 709*6467f958SSadaf Ebrahimi #define CL_PROGRAM_BINARY_SIZES 0x1165 710*6467f958SSadaf Ebrahimi #define CL_PROGRAM_BINARIES 0x1166 711*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_1_2 712*6467f958SSadaf Ebrahimi #define CL_PROGRAM_NUM_KERNELS 0x1167 713*6467f958SSadaf Ebrahimi #define CL_PROGRAM_KERNEL_NAMES 0x1168 714*6467f958SSadaf Ebrahimi #endif 715*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_2_1 716*6467f958SSadaf Ebrahimi #define CL_PROGRAM_IL 0x1169 717*6467f958SSadaf Ebrahimi #endif 718*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_2_2 719*6467f958SSadaf Ebrahimi #define CL_PROGRAM_SCOPE_GLOBAL_CTORS_PRESENT 0x116A 720*6467f958SSadaf Ebrahimi #define CL_PROGRAM_SCOPE_GLOBAL_DTORS_PRESENT 0x116B 721*6467f958SSadaf Ebrahimi #endif 722*6467f958SSadaf Ebrahimi 723*6467f958SSadaf Ebrahimi /* cl_program_build_info */ 724*6467f958SSadaf Ebrahimi #define CL_PROGRAM_BUILD_STATUS 0x1181 725*6467f958SSadaf Ebrahimi #define CL_PROGRAM_BUILD_OPTIONS 0x1182 726*6467f958SSadaf Ebrahimi #define CL_PROGRAM_BUILD_LOG 0x1183 727*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_1_2 728*6467f958SSadaf Ebrahimi #define CL_PROGRAM_BINARY_TYPE 0x1184 729*6467f958SSadaf Ebrahimi #endif 730*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_2_0 731*6467f958SSadaf Ebrahimi #define CL_PROGRAM_BUILD_GLOBAL_VARIABLE_TOTAL_SIZE 0x1185 732*6467f958SSadaf Ebrahimi #endif 733*6467f958SSadaf Ebrahimi 734*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_1_2 735*6467f958SSadaf Ebrahimi 736*6467f958SSadaf Ebrahimi /* cl_program_binary_type */ 737*6467f958SSadaf Ebrahimi #define CL_PROGRAM_BINARY_TYPE_NONE 0x0 738*6467f958SSadaf Ebrahimi #define CL_PROGRAM_BINARY_TYPE_COMPILED_OBJECT 0x1 739*6467f958SSadaf Ebrahimi #define CL_PROGRAM_BINARY_TYPE_LIBRARY 0x2 740*6467f958SSadaf Ebrahimi #define CL_PROGRAM_BINARY_TYPE_EXECUTABLE 0x4 741*6467f958SSadaf Ebrahimi 742*6467f958SSadaf Ebrahimi #endif 743*6467f958SSadaf Ebrahimi 744*6467f958SSadaf Ebrahimi /* cl_build_status */ 745*6467f958SSadaf Ebrahimi #define CL_BUILD_SUCCESS 0 746*6467f958SSadaf Ebrahimi #define CL_BUILD_NONE -1 747*6467f958SSadaf Ebrahimi #define CL_BUILD_ERROR -2 748*6467f958SSadaf Ebrahimi #define CL_BUILD_IN_PROGRESS -3 749*6467f958SSadaf Ebrahimi 750*6467f958SSadaf Ebrahimi /* cl_kernel_info */ 751*6467f958SSadaf Ebrahimi #define CL_KERNEL_FUNCTION_NAME 0x1190 752*6467f958SSadaf Ebrahimi #define CL_KERNEL_NUM_ARGS 0x1191 753*6467f958SSadaf Ebrahimi #define CL_KERNEL_REFERENCE_COUNT 0x1192 754*6467f958SSadaf Ebrahimi #define CL_KERNEL_CONTEXT 0x1193 755*6467f958SSadaf Ebrahimi #define CL_KERNEL_PROGRAM 0x1194 756*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_1_2 757*6467f958SSadaf Ebrahimi #define CL_KERNEL_ATTRIBUTES 0x1195 758*6467f958SSadaf Ebrahimi #endif 759*6467f958SSadaf Ebrahimi 760*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_1_2 761*6467f958SSadaf Ebrahimi 762*6467f958SSadaf Ebrahimi /* cl_kernel_arg_info */ 763*6467f958SSadaf Ebrahimi #define CL_KERNEL_ARG_ADDRESS_QUALIFIER 0x1196 764*6467f958SSadaf Ebrahimi #define CL_KERNEL_ARG_ACCESS_QUALIFIER 0x1197 765*6467f958SSadaf Ebrahimi #define CL_KERNEL_ARG_TYPE_NAME 0x1198 766*6467f958SSadaf Ebrahimi #define CL_KERNEL_ARG_TYPE_QUALIFIER 0x1199 767*6467f958SSadaf Ebrahimi #define CL_KERNEL_ARG_NAME 0x119A 768*6467f958SSadaf Ebrahimi 769*6467f958SSadaf Ebrahimi #endif 770*6467f958SSadaf Ebrahimi 771*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_1_2 772*6467f958SSadaf Ebrahimi 773*6467f958SSadaf Ebrahimi /* cl_kernel_arg_address_qualifier */ 774*6467f958SSadaf Ebrahimi #define CL_KERNEL_ARG_ADDRESS_GLOBAL 0x119B 775*6467f958SSadaf Ebrahimi #define CL_KERNEL_ARG_ADDRESS_LOCAL 0x119C 776*6467f958SSadaf Ebrahimi #define CL_KERNEL_ARG_ADDRESS_CONSTANT 0x119D 777*6467f958SSadaf Ebrahimi #define CL_KERNEL_ARG_ADDRESS_PRIVATE 0x119E 778*6467f958SSadaf Ebrahimi 779*6467f958SSadaf Ebrahimi #endif 780*6467f958SSadaf Ebrahimi 781*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_1_2 782*6467f958SSadaf Ebrahimi 783*6467f958SSadaf Ebrahimi /* cl_kernel_arg_access_qualifier */ 784*6467f958SSadaf Ebrahimi #define CL_KERNEL_ARG_ACCESS_READ_ONLY 0x11A0 785*6467f958SSadaf Ebrahimi #define CL_KERNEL_ARG_ACCESS_WRITE_ONLY 0x11A1 786*6467f958SSadaf Ebrahimi #define CL_KERNEL_ARG_ACCESS_READ_WRITE 0x11A2 787*6467f958SSadaf Ebrahimi #define CL_KERNEL_ARG_ACCESS_NONE 0x11A3 788*6467f958SSadaf Ebrahimi 789*6467f958SSadaf Ebrahimi #endif 790*6467f958SSadaf Ebrahimi 791*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_1_2 792*6467f958SSadaf Ebrahimi 793*6467f958SSadaf Ebrahimi /* cl_kernel_arg_type_qualifier */ 794*6467f958SSadaf Ebrahimi #define CL_KERNEL_ARG_TYPE_NONE 0 795*6467f958SSadaf Ebrahimi #define CL_KERNEL_ARG_TYPE_CONST (1 << 0) 796*6467f958SSadaf Ebrahimi #define CL_KERNEL_ARG_TYPE_RESTRICT (1 << 1) 797*6467f958SSadaf Ebrahimi #define CL_KERNEL_ARG_TYPE_VOLATILE (1 << 2) 798*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_2_0 799*6467f958SSadaf Ebrahimi #define CL_KERNEL_ARG_TYPE_PIPE (1 << 3) 800*6467f958SSadaf Ebrahimi #endif 801*6467f958SSadaf Ebrahimi 802*6467f958SSadaf Ebrahimi #endif 803*6467f958SSadaf Ebrahimi 804*6467f958SSadaf Ebrahimi /* cl_kernel_work_group_info */ 805*6467f958SSadaf Ebrahimi #define CL_KERNEL_WORK_GROUP_SIZE 0x11B0 806*6467f958SSadaf Ebrahimi #define CL_KERNEL_COMPILE_WORK_GROUP_SIZE 0x11B1 807*6467f958SSadaf Ebrahimi #define CL_KERNEL_LOCAL_MEM_SIZE 0x11B2 808*6467f958SSadaf Ebrahimi #define CL_KERNEL_PREFERRED_WORK_GROUP_SIZE_MULTIPLE 0x11B3 809*6467f958SSadaf Ebrahimi #define CL_KERNEL_PRIVATE_MEM_SIZE 0x11B4 810*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_1_2 811*6467f958SSadaf Ebrahimi #define CL_KERNEL_GLOBAL_WORK_SIZE 0x11B5 812*6467f958SSadaf Ebrahimi #endif 813*6467f958SSadaf Ebrahimi 814*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_2_1 815*6467f958SSadaf Ebrahimi 816*6467f958SSadaf Ebrahimi /* cl_kernel_sub_group_info */ 817*6467f958SSadaf Ebrahimi #define CL_KERNEL_MAX_SUB_GROUP_SIZE_FOR_NDRANGE 0x2033 818*6467f958SSadaf Ebrahimi #define CL_KERNEL_SUB_GROUP_COUNT_FOR_NDRANGE 0x2034 819*6467f958SSadaf Ebrahimi #define CL_KERNEL_LOCAL_SIZE_FOR_SUB_GROUP_COUNT 0x11B8 820*6467f958SSadaf Ebrahimi #define CL_KERNEL_MAX_NUM_SUB_GROUPS 0x11B9 821*6467f958SSadaf Ebrahimi #define CL_KERNEL_COMPILE_NUM_SUB_GROUPS 0x11BA 822*6467f958SSadaf Ebrahimi 823*6467f958SSadaf Ebrahimi #endif 824*6467f958SSadaf Ebrahimi 825*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_2_0 826*6467f958SSadaf Ebrahimi 827*6467f958SSadaf Ebrahimi /* cl_kernel_exec_info */ 828*6467f958SSadaf Ebrahimi #define CL_KERNEL_EXEC_INFO_SVM_PTRS 0x11B6 829*6467f958SSadaf Ebrahimi #define CL_KERNEL_EXEC_INFO_SVM_FINE_GRAIN_SYSTEM 0x11B7 830*6467f958SSadaf Ebrahimi 831*6467f958SSadaf Ebrahimi #endif 832*6467f958SSadaf Ebrahimi 833*6467f958SSadaf Ebrahimi /* cl_event_info */ 834*6467f958SSadaf Ebrahimi #define CL_EVENT_COMMAND_QUEUE 0x11D0 835*6467f958SSadaf Ebrahimi #define CL_EVENT_COMMAND_TYPE 0x11D1 836*6467f958SSadaf Ebrahimi #define CL_EVENT_REFERENCE_COUNT 0x11D2 837*6467f958SSadaf Ebrahimi #define CL_EVENT_COMMAND_EXECUTION_STATUS 0x11D3 838*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_1_1 839*6467f958SSadaf Ebrahimi #define CL_EVENT_CONTEXT 0x11D4 840*6467f958SSadaf Ebrahimi #endif 841*6467f958SSadaf Ebrahimi 842*6467f958SSadaf Ebrahimi /* cl_command_type */ 843*6467f958SSadaf Ebrahimi #define CL_COMMAND_NDRANGE_KERNEL 0x11F0 844*6467f958SSadaf Ebrahimi #define CL_COMMAND_TASK 0x11F1 845*6467f958SSadaf Ebrahimi #define CL_COMMAND_NATIVE_KERNEL 0x11F2 846*6467f958SSadaf Ebrahimi #define CL_COMMAND_READ_BUFFER 0x11F3 847*6467f958SSadaf Ebrahimi #define CL_COMMAND_WRITE_BUFFER 0x11F4 848*6467f958SSadaf Ebrahimi #define CL_COMMAND_COPY_BUFFER 0x11F5 849*6467f958SSadaf Ebrahimi #define CL_COMMAND_READ_IMAGE 0x11F6 850*6467f958SSadaf Ebrahimi #define CL_COMMAND_WRITE_IMAGE 0x11F7 851*6467f958SSadaf Ebrahimi #define CL_COMMAND_COPY_IMAGE 0x11F8 852*6467f958SSadaf Ebrahimi #define CL_COMMAND_COPY_IMAGE_TO_BUFFER 0x11F9 853*6467f958SSadaf Ebrahimi #define CL_COMMAND_COPY_BUFFER_TO_IMAGE 0x11FA 854*6467f958SSadaf Ebrahimi #define CL_COMMAND_MAP_BUFFER 0x11FB 855*6467f958SSadaf Ebrahimi #define CL_COMMAND_MAP_IMAGE 0x11FC 856*6467f958SSadaf Ebrahimi #define CL_COMMAND_UNMAP_MEM_OBJECT 0x11FD 857*6467f958SSadaf Ebrahimi #define CL_COMMAND_MARKER 0x11FE 858*6467f958SSadaf Ebrahimi #define CL_COMMAND_ACQUIRE_GL_OBJECTS 0x11FF 859*6467f958SSadaf Ebrahimi #define CL_COMMAND_RELEASE_GL_OBJECTS 0x1200 860*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_1_1 861*6467f958SSadaf Ebrahimi #define CL_COMMAND_READ_BUFFER_RECT 0x1201 862*6467f958SSadaf Ebrahimi #define CL_COMMAND_WRITE_BUFFER_RECT 0x1202 863*6467f958SSadaf Ebrahimi #define CL_COMMAND_COPY_BUFFER_RECT 0x1203 864*6467f958SSadaf Ebrahimi #define CL_COMMAND_USER 0x1204 865*6467f958SSadaf Ebrahimi #endif 866*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_1_2 867*6467f958SSadaf Ebrahimi #define CL_COMMAND_BARRIER 0x1205 868*6467f958SSadaf Ebrahimi #define CL_COMMAND_MIGRATE_MEM_OBJECTS 0x1206 869*6467f958SSadaf Ebrahimi #define CL_COMMAND_FILL_BUFFER 0x1207 870*6467f958SSadaf Ebrahimi #define CL_COMMAND_FILL_IMAGE 0x1208 871*6467f958SSadaf Ebrahimi #endif 872*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_2_0 873*6467f958SSadaf Ebrahimi #define CL_COMMAND_SVM_FREE 0x1209 874*6467f958SSadaf Ebrahimi #define CL_COMMAND_SVM_MEMCPY 0x120A 875*6467f958SSadaf Ebrahimi #define CL_COMMAND_SVM_MEMFILL 0x120B 876*6467f958SSadaf Ebrahimi #define CL_COMMAND_SVM_MAP 0x120C 877*6467f958SSadaf Ebrahimi #define CL_COMMAND_SVM_UNMAP 0x120D 878*6467f958SSadaf Ebrahimi #endif 879*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_3_0 880*6467f958SSadaf Ebrahimi #define CL_COMMAND_SVM_MIGRATE_MEM 0x120E 881*6467f958SSadaf Ebrahimi #endif 882*6467f958SSadaf Ebrahimi 883*6467f958SSadaf Ebrahimi /* command execution status */ 884*6467f958SSadaf Ebrahimi #define CL_COMPLETE 0x0 885*6467f958SSadaf Ebrahimi #define CL_RUNNING 0x1 886*6467f958SSadaf Ebrahimi #define CL_SUBMITTED 0x2 887*6467f958SSadaf Ebrahimi #define CL_QUEUED 0x3 888*6467f958SSadaf Ebrahimi 889*6467f958SSadaf Ebrahimi /* cl_buffer_create_type */ 890*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_1_1 891*6467f958SSadaf Ebrahimi #define CL_BUFFER_CREATE_TYPE_REGION 0x1220 892*6467f958SSadaf Ebrahimi #endif 893*6467f958SSadaf Ebrahimi 894*6467f958SSadaf Ebrahimi /* cl_profiling_info */ 895*6467f958SSadaf Ebrahimi #define CL_PROFILING_COMMAND_QUEUED 0x1280 896*6467f958SSadaf Ebrahimi #define CL_PROFILING_COMMAND_SUBMIT 0x1281 897*6467f958SSadaf Ebrahimi #define CL_PROFILING_COMMAND_START 0x1282 898*6467f958SSadaf Ebrahimi #define CL_PROFILING_COMMAND_END 0x1283 899*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_2_0 900*6467f958SSadaf Ebrahimi #define CL_PROFILING_COMMAND_COMPLETE 0x1284 901*6467f958SSadaf Ebrahimi #endif 902*6467f958SSadaf Ebrahimi 903*6467f958SSadaf Ebrahimi /* cl_device_atomic_capabilities - bitfield */ 904*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_3_0 905*6467f958SSadaf Ebrahimi #define CL_DEVICE_ATOMIC_ORDER_RELAXED (1 << 0) 906*6467f958SSadaf Ebrahimi #define CL_DEVICE_ATOMIC_ORDER_ACQ_REL (1 << 1) 907*6467f958SSadaf Ebrahimi #define CL_DEVICE_ATOMIC_ORDER_SEQ_CST (1 << 2) 908*6467f958SSadaf Ebrahimi #define CL_DEVICE_ATOMIC_SCOPE_WORK_ITEM (1 << 3) 909*6467f958SSadaf Ebrahimi #define CL_DEVICE_ATOMIC_SCOPE_WORK_GROUP (1 << 4) 910*6467f958SSadaf Ebrahimi #define CL_DEVICE_ATOMIC_SCOPE_DEVICE (1 << 5) 911*6467f958SSadaf Ebrahimi #define CL_DEVICE_ATOMIC_SCOPE_ALL_DEVICES (1 << 6) 912*6467f958SSadaf Ebrahimi #endif 913*6467f958SSadaf Ebrahimi 914*6467f958SSadaf Ebrahimi /* cl_device_device_enqueue_capabilities - bitfield */ 915*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_3_0 916*6467f958SSadaf Ebrahimi #define CL_DEVICE_QUEUE_SUPPORTED (1 << 0) 917*6467f958SSadaf Ebrahimi #define CL_DEVICE_QUEUE_REPLACEABLE_DEFAULT (1 << 1) 918*6467f958SSadaf Ebrahimi #endif 919*6467f958SSadaf Ebrahimi 920*6467f958SSadaf Ebrahimi /* cl_khronos_vendor_id */ 921*6467f958SSadaf Ebrahimi #define CL_KHRONOS_VENDOR_ID_CODEPLAY 0x10004 922*6467f958SSadaf Ebrahimi 923*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_3_0 924*6467f958SSadaf Ebrahimi 925*6467f958SSadaf Ebrahimi /* cl_version */ 926*6467f958SSadaf Ebrahimi #define CL_VERSION_MAJOR_BITS (10) 927*6467f958SSadaf Ebrahimi #define CL_VERSION_MINOR_BITS (10) 928*6467f958SSadaf Ebrahimi #define CL_VERSION_PATCH_BITS (12) 929*6467f958SSadaf Ebrahimi 930*6467f958SSadaf Ebrahimi #define CL_VERSION_MAJOR_MASK ((1 << CL_VERSION_MAJOR_BITS) - 1) 931*6467f958SSadaf Ebrahimi #define CL_VERSION_MINOR_MASK ((1 << CL_VERSION_MINOR_BITS) - 1) 932*6467f958SSadaf Ebrahimi #define CL_VERSION_PATCH_MASK ((1 << CL_VERSION_PATCH_BITS) - 1) 933*6467f958SSadaf Ebrahimi 934*6467f958SSadaf Ebrahimi #define CL_VERSION_MAJOR(version) \ 935*6467f958SSadaf Ebrahimi ((version) >> (CL_VERSION_MINOR_BITS + CL_VERSION_PATCH_BITS)) 936*6467f958SSadaf Ebrahimi 937*6467f958SSadaf Ebrahimi #define CL_VERSION_MINOR(version) \ 938*6467f958SSadaf Ebrahimi (((version) >> CL_VERSION_PATCH_BITS) & CL_VERSION_MINOR_MASK) 939*6467f958SSadaf Ebrahimi 940*6467f958SSadaf Ebrahimi #define CL_VERSION_PATCH(version) ((version) & CL_VERSION_PATCH_MASK) 941*6467f958SSadaf Ebrahimi 942*6467f958SSadaf Ebrahimi #define CL_MAKE_VERSION(major, minor, patch) \ 943*6467f958SSadaf Ebrahimi ((((major) & CL_VERSION_MAJOR_MASK) \ 944*6467f958SSadaf Ebrahimi << (CL_VERSION_MINOR_BITS + CL_VERSION_PATCH_BITS)) | \ 945*6467f958SSadaf Ebrahimi (((minor) & CL_VERSION_MINOR_MASK) << CL_VERSION_PATCH_BITS) | \ 946*6467f958SSadaf Ebrahimi ((patch) & CL_VERSION_PATCH_MASK)) 947*6467f958SSadaf Ebrahimi 948*6467f958SSadaf Ebrahimi #endif 949*6467f958SSadaf Ebrahimi 950*6467f958SSadaf Ebrahimi /********************************************************************************************************/ 951*6467f958SSadaf Ebrahimi 952*6467f958SSadaf Ebrahimi /* Platform API */ 953*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_int CL_API_CALL 954*6467f958SSadaf Ebrahimi clGetPlatformIDs(cl_uint num_entries, 955*6467f958SSadaf Ebrahimi cl_platform_id * platforms, 956*6467f958SSadaf Ebrahimi cl_uint * num_platforms) CL_API_SUFFIX__VERSION_1_0; 957*6467f958SSadaf Ebrahimi 958*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_int CL_API_CALL 959*6467f958SSadaf Ebrahimi clGetPlatformInfo(cl_platform_id platform, 960*6467f958SSadaf Ebrahimi cl_platform_info param_name, 961*6467f958SSadaf Ebrahimi size_t param_value_size, 962*6467f958SSadaf Ebrahimi void * param_value, 963*6467f958SSadaf Ebrahimi size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; 964*6467f958SSadaf Ebrahimi 965*6467f958SSadaf Ebrahimi /* Device APIs */ 966*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_int CL_API_CALL 967*6467f958SSadaf Ebrahimi clGetDeviceIDs(cl_platform_id platform, 968*6467f958SSadaf Ebrahimi cl_device_type device_type, 969*6467f958SSadaf Ebrahimi cl_uint num_entries, 970*6467f958SSadaf Ebrahimi cl_device_id * devices, 971*6467f958SSadaf Ebrahimi cl_uint * num_devices) CL_API_SUFFIX__VERSION_1_0; 972*6467f958SSadaf Ebrahimi 973*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_int CL_API_CALL 974*6467f958SSadaf Ebrahimi clGetDeviceInfo(cl_device_id device, 975*6467f958SSadaf Ebrahimi cl_device_info param_name, 976*6467f958SSadaf Ebrahimi size_t param_value_size, 977*6467f958SSadaf Ebrahimi void * param_value, 978*6467f958SSadaf Ebrahimi size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; 979*6467f958SSadaf Ebrahimi 980*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_1_2 981*6467f958SSadaf Ebrahimi 982*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_int CL_API_CALL 983*6467f958SSadaf Ebrahimi clCreateSubDevices(cl_device_id in_device, 984*6467f958SSadaf Ebrahimi const cl_device_partition_property * properties, 985*6467f958SSadaf Ebrahimi cl_uint num_devices, 986*6467f958SSadaf Ebrahimi cl_device_id * out_devices, 987*6467f958SSadaf Ebrahimi cl_uint * num_devices_ret) CL_API_SUFFIX__VERSION_1_2; 988*6467f958SSadaf Ebrahimi 989*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_int CL_API_CALL 990*6467f958SSadaf Ebrahimi clRetainDevice(cl_device_id device) CL_API_SUFFIX__VERSION_1_2; 991*6467f958SSadaf Ebrahimi 992*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_int CL_API_CALL 993*6467f958SSadaf Ebrahimi clReleaseDevice(cl_device_id device) CL_API_SUFFIX__VERSION_1_2; 994*6467f958SSadaf Ebrahimi 995*6467f958SSadaf Ebrahimi #endif 996*6467f958SSadaf Ebrahimi 997*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_2_1 998*6467f958SSadaf Ebrahimi 999*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_int CL_API_CALL 1000*6467f958SSadaf Ebrahimi clSetDefaultDeviceCommandQueue(cl_context context, 1001*6467f958SSadaf Ebrahimi cl_device_id device, 1002*6467f958SSadaf Ebrahimi cl_command_queue command_queue) CL_API_SUFFIX__VERSION_2_1; 1003*6467f958SSadaf Ebrahimi 1004*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_int CL_API_CALL 1005*6467f958SSadaf Ebrahimi clGetDeviceAndHostTimer(cl_device_id device, 1006*6467f958SSadaf Ebrahimi cl_ulong* device_timestamp, 1007*6467f958SSadaf Ebrahimi cl_ulong* host_timestamp) CL_API_SUFFIX__VERSION_2_1; 1008*6467f958SSadaf Ebrahimi 1009*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_int CL_API_CALL 1010*6467f958SSadaf Ebrahimi clGetHostTimer(cl_device_id device, 1011*6467f958SSadaf Ebrahimi cl_ulong * host_timestamp) CL_API_SUFFIX__VERSION_2_1; 1012*6467f958SSadaf Ebrahimi 1013*6467f958SSadaf Ebrahimi #endif 1014*6467f958SSadaf Ebrahimi 1015*6467f958SSadaf Ebrahimi /* Context APIs */ 1016*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_context CL_API_CALL 1017*6467f958SSadaf Ebrahimi clCreateContext(const cl_context_properties * properties, 1018*6467f958SSadaf Ebrahimi cl_uint num_devices, 1019*6467f958SSadaf Ebrahimi const cl_device_id * devices, 1020*6467f958SSadaf Ebrahimi void (CL_CALLBACK * pfn_notify)(const char * errinfo, 1021*6467f958SSadaf Ebrahimi const void * private_info, 1022*6467f958SSadaf Ebrahimi size_t cb, 1023*6467f958SSadaf Ebrahimi void * user_data), 1024*6467f958SSadaf Ebrahimi void * user_data, 1025*6467f958SSadaf Ebrahimi cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; 1026*6467f958SSadaf Ebrahimi 1027*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_context CL_API_CALL 1028*6467f958SSadaf Ebrahimi clCreateContextFromType(const cl_context_properties * properties, 1029*6467f958SSadaf Ebrahimi cl_device_type device_type, 1030*6467f958SSadaf Ebrahimi void (CL_CALLBACK * pfn_notify)(const char * errinfo, 1031*6467f958SSadaf Ebrahimi const void * private_info, 1032*6467f958SSadaf Ebrahimi size_t cb, 1033*6467f958SSadaf Ebrahimi void * user_data), 1034*6467f958SSadaf Ebrahimi void * user_data, 1035*6467f958SSadaf Ebrahimi cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; 1036*6467f958SSadaf Ebrahimi 1037*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_int CL_API_CALL 1038*6467f958SSadaf Ebrahimi clRetainContext(cl_context context) CL_API_SUFFIX__VERSION_1_0; 1039*6467f958SSadaf Ebrahimi 1040*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_int CL_API_CALL 1041*6467f958SSadaf Ebrahimi clReleaseContext(cl_context context) CL_API_SUFFIX__VERSION_1_0; 1042*6467f958SSadaf Ebrahimi 1043*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_int CL_API_CALL 1044*6467f958SSadaf Ebrahimi clGetContextInfo(cl_context context, 1045*6467f958SSadaf Ebrahimi cl_context_info param_name, 1046*6467f958SSadaf Ebrahimi size_t param_value_size, 1047*6467f958SSadaf Ebrahimi void * param_value, 1048*6467f958SSadaf Ebrahimi size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; 1049*6467f958SSadaf Ebrahimi 1050*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_3_0 1051*6467f958SSadaf Ebrahimi 1052*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_int CL_API_CALL 1053*6467f958SSadaf Ebrahimi clSetContextDestructorCallback(cl_context context, 1054*6467f958SSadaf Ebrahimi void (CL_CALLBACK* pfn_notify)(cl_context context, 1055*6467f958SSadaf Ebrahimi void* user_data), 1056*6467f958SSadaf Ebrahimi void* user_data) CL_API_SUFFIX__VERSION_3_0; 1057*6467f958SSadaf Ebrahimi 1058*6467f958SSadaf Ebrahimi #endif 1059*6467f958SSadaf Ebrahimi 1060*6467f958SSadaf Ebrahimi /* Command Queue APIs */ 1061*6467f958SSadaf Ebrahimi 1062*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_2_0 1063*6467f958SSadaf Ebrahimi 1064*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_command_queue CL_API_CALL 1065*6467f958SSadaf Ebrahimi clCreateCommandQueueWithProperties(cl_context context, 1066*6467f958SSadaf Ebrahimi cl_device_id device, 1067*6467f958SSadaf Ebrahimi const cl_queue_properties * properties, 1068*6467f958SSadaf Ebrahimi cl_int * errcode_ret) CL_API_SUFFIX__VERSION_2_0; 1069*6467f958SSadaf Ebrahimi 1070*6467f958SSadaf Ebrahimi #endif 1071*6467f958SSadaf Ebrahimi 1072*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_int CL_API_CALL 1073*6467f958SSadaf Ebrahimi clRetainCommandQueue(cl_command_queue command_queue) CL_API_SUFFIX__VERSION_1_0; 1074*6467f958SSadaf Ebrahimi 1075*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_int CL_API_CALL 1076*6467f958SSadaf Ebrahimi clReleaseCommandQueue(cl_command_queue command_queue) CL_API_SUFFIX__VERSION_1_0; 1077*6467f958SSadaf Ebrahimi 1078*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_int CL_API_CALL 1079*6467f958SSadaf Ebrahimi clGetCommandQueueInfo(cl_command_queue command_queue, 1080*6467f958SSadaf Ebrahimi cl_command_queue_info param_name, 1081*6467f958SSadaf Ebrahimi size_t param_value_size, 1082*6467f958SSadaf Ebrahimi void * param_value, 1083*6467f958SSadaf Ebrahimi size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; 1084*6467f958SSadaf Ebrahimi 1085*6467f958SSadaf Ebrahimi /* Memory Object APIs */ 1086*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_mem CL_API_CALL 1087*6467f958SSadaf Ebrahimi clCreateBuffer(cl_context context, 1088*6467f958SSadaf Ebrahimi cl_mem_flags flags, 1089*6467f958SSadaf Ebrahimi size_t size, 1090*6467f958SSadaf Ebrahimi void * host_ptr, 1091*6467f958SSadaf Ebrahimi cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; 1092*6467f958SSadaf Ebrahimi 1093*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_1_1 1094*6467f958SSadaf Ebrahimi 1095*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_mem CL_API_CALL 1096*6467f958SSadaf Ebrahimi clCreateSubBuffer(cl_mem buffer, 1097*6467f958SSadaf Ebrahimi cl_mem_flags flags, 1098*6467f958SSadaf Ebrahimi cl_buffer_create_type buffer_create_type, 1099*6467f958SSadaf Ebrahimi const void * buffer_create_info, 1100*6467f958SSadaf Ebrahimi cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_1; 1101*6467f958SSadaf Ebrahimi 1102*6467f958SSadaf Ebrahimi #endif 1103*6467f958SSadaf Ebrahimi 1104*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_1_2 1105*6467f958SSadaf Ebrahimi 1106*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_mem CL_API_CALL 1107*6467f958SSadaf Ebrahimi clCreateImage(cl_context context, 1108*6467f958SSadaf Ebrahimi cl_mem_flags flags, 1109*6467f958SSadaf Ebrahimi const cl_image_format * image_format, 1110*6467f958SSadaf Ebrahimi const cl_image_desc * image_desc, 1111*6467f958SSadaf Ebrahimi void * host_ptr, 1112*6467f958SSadaf Ebrahimi cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_2; 1113*6467f958SSadaf Ebrahimi 1114*6467f958SSadaf Ebrahimi #endif 1115*6467f958SSadaf Ebrahimi 1116*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_2_0 1117*6467f958SSadaf Ebrahimi 1118*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_mem CL_API_CALL 1119*6467f958SSadaf Ebrahimi clCreatePipe(cl_context context, 1120*6467f958SSadaf Ebrahimi cl_mem_flags flags, 1121*6467f958SSadaf Ebrahimi cl_uint pipe_packet_size, 1122*6467f958SSadaf Ebrahimi cl_uint pipe_max_packets, 1123*6467f958SSadaf Ebrahimi const cl_pipe_properties * properties, 1124*6467f958SSadaf Ebrahimi cl_int * errcode_ret) CL_API_SUFFIX__VERSION_2_0; 1125*6467f958SSadaf Ebrahimi 1126*6467f958SSadaf Ebrahimi #endif 1127*6467f958SSadaf Ebrahimi 1128*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_3_0 1129*6467f958SSadaf Ebrahimi 1130*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_mem CL_API_CALL 1131*6467f958SSadaf Ebrahimi clCreateBufferWithProperties(cl_context context, 1132*6467f958SSadaf Ebrahimi const cl_mem_properties * properties, 1133*6467f958SSadaf Ebrahimi cl_mem_flags flags, 1134*6467f958SSadaf Ebrahimi size_t size, 1135*6467f958SSadaf Ebrahimi void * host_ptr, 1136*6467f958SSadaf Ebrahimi cl_int * errcode_ret) CL_API_SUFFIX__VERSION_3_0; 1137*6467f958SSadaf Ebrahimi 1138*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_mem CL_API_CALL 1139*6467f958SSadaf Ebrahimi clCreateImageWithProperties(cl_context context, 1140*6467f958SSadaf Ebrahimi const cl_mem_properties * properties, 1141*6467f958SSadaf Ebrahimi cl_mem_flags flags, 1142*6467f958SSadaf Ebrahimi const cl_image_format * image_format, 1143*6467f958SSadaf Ebrahimi const cl_image_desc * image_desc, 1144*6467f958SSadaf Ebrahimi void * host_ptr, 1145*6467f958SSadaf Ebrahimi cl_int * errcode_ret) CL_API_SUFFIX__VERSION_3_0; 1146*6467f958SSadaf Ebrahimi 1147*6467f958SSadaf Ebrahimi #endif 1148*6467f958SSadaf Ebrahimi 1149*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_int CL_API_CALL 1150*6467f958SSadaf Ebrahimi clRetainMemObject(cl_mem memobj) CL_API_SUFFIX__VERSION_1_0; 1151*6467f958SSadaf Ebrahimi 1152*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_int CL_API_CALL 1153*6467f958SSadaf Ebrahimi clReleaseMemObject(cl_mem memobj) CL_API_SUFFIX__VERSION_1_0; 1154*6467f958SSadaf Ebrahimi 1155*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_int CL_API_CALL 1156*6467f958SSadaf Ebrahimi clGetSupportedImageFormats(cl_context context, 1157*6467f958SSadaf Ebrahimi cl_mem_flags flags, 1158*6467f958SSadaf Ebrahimi cl_mem_object_type image_type, 1159*6467f958SSadaf Ebrahimi cl_uint num_entries, 1160*6467f958SSadaf Ebrahimi cl_image_format * image_formats, 1161*6467f958SSadaf Ebrahimi cl_uint * num_image_formats) CL_API_SUFFIX__VERSION_1_0; 1162*6467f958SSadaf Ebrahimi 1163*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_int CL_API_CALL 1164*6467f958SSadaf Ebrahimi clGetMemObjectInfo(cl_mem memobj, 1165*6467f958SSadaf Ebrahimi cl_mem_info param_name, 1166*6467f958SSadaf Ebrahimi size_t param_value_size, 1167*6467f958SSadaf Ebrahimi void * param_value, 1168*6467f958SSadaf Ebrahimi size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; 1169*6467f958SSadaf Ebrahimi 1170*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_int CL_API_CALL 1171*6467f958SSadaf Ebrahimi clGetImageInfo(cl_mem image, 1172*6467f958SSadaf Ebrahimi cl_image_info param_name, 1173*6467f958SSadaf Ebrahimi size_t param_value_size, 1174*6467f958SSadaf Ebrahimi void * param_value, 1175*6467f958SSadaf Ebrahimi size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; 1176*6467f958SSadaf Ebrahimi 1177*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_2_0 1178*6467f958SSadaf Ebrahimi 1179*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_int CL_API_CALL 1180*6467f958SSadaf Ebrahimi clGetPipeInfo(cl_mem pipe, 1181*6467f958SSadaf Ebrahimi cl_pipe_info param_name, 1182*6467f958SSadaf Ebrahimi size_t param_value_size, 1183*6467f958SSadaf Ebrahimi void * param_value, 1184*6467f958SSadaf Ebrahimi size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_2_0; 1185*6467f958SSadaf Ebrahimi 1186*6467f958SSadaf Ebrahimi #endif 1187*6467f958SSadaf Ebrahimi 1188*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_1_1 1189*6467f958SSadaf Ebrahimi 1190*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_int CL_API_CALL 1191*6467f958SSadaf Ebrahimi clSetMemObjectDestructorCallback(cl_mem memobj, 1192*6467f958SSadaf Ebrahimi void (CL_CALLBACK * pfn_notify)(cl_mem memobj, 1193*6467f958SSadaf Ebrahimi void * user_data), 1194*6467f958SSadaf Ebrahimi void * user_data) CL_API_SUFFIX__VERSION_1_1; 1195*6467f958SSadaf Ebrahimi 1196*6467f958SSadaf Ebrahimi #endif 1197*6467f958SSadaf Ebrahimi 1198*6467f958SSadaf Ebrahimi /* SVM Allocation APIs */ 1199*6467f958SSadaf Ebrahimi 1200*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_2_0 1201*6467f958SSadaf Ebrahimi 1202*6467f958SSadaf Ebrahimi extern CL_API_ENTRY void * CL_API_CALL 1203*6467f958SSadaf Ebrahimi clSVMAlloc(cl_context context, 1204*6467f958SSadaf Ebrahimi cl_svm_mem_flags flags, 1205*6467f958SSadaf Ebrahimi size_t size, 1206*6467f958SSadaf Ebrahimi cl_uint alignment) CL_API_SUFFIX__VERSION_2_0; 1207*6467f958SSadaf Ebrahimi 1208*6467f958SSadaf Ebrahimi extern CL_API_ENTRY void CL_API_CALL 1209*6467f958SSadaf Ebrahimi clSVMFree(cl_context context, 1210*6467f958SSadaf Ebrahimi void * svm_pointer) CL_API_SUFFIX__VERSION_2_0; 1211*6467f958SSadaf Ebrahimi 1212*6467f958SSadaf Ebrahimi #endif 1213*6467f958SSadaf Ebrahimi 1214*6467f958SSadaf Ebrahimi /* Sampler APIs */ 1215*6467f958SSadaf Ebrahimi 1216*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_2_0 1217*6467f958SSadaf Ebrahimi 1218*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_sampler CL_API_CALL 1219*6467f958SSadaf Ebrahimi clCreateSamplerWithProperties(cl_context context, 1220*6467f958SSadaf Ebrahimi const cl_sampler_properties * sampler_properties, 1221*6467f958SSadaf Ebrahimi cl_int * errcode_ret) CL_API_SUFFIX__VERSION_2_0; 1222*6467f958SSadaf Ebrahimi 1223*6467f958SSadaf Ebrahimi #endif 1224*6467f958SSadaf Ebrahimi 1225*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_int CL_API_CALL 1226*6467f958SSadaf Ebrahimi clRetainSampler(cl_sampler sampler) CL_API_SUFFIX__VERSION_1_0; 1227*6467f958SSadaf Ebrahimi 1228*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_int CL_API_CALL 1229*6467f958SSadaf Ebrahimi clReleaseSampler(cl_sampler sampler) CL_API_SUFFIX__VERSION_1_0; 1230*6467f958SSadaf Ebrahimi 1231*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_int CL_API_CALL 1232*6467f958SSadaf Ebrahimi clGetSamplerInfo(cl_sampler sampler, 1233*6467f958SSadaf Ebrahimi cl_sampler_info param_name, 1234*6467f958SSadaf Ebrahimi size_t param_value_size, 1235*6467f958SSadaf Ebrahimi void * param_value, 1236*6467f958SSadaf Ebrahimi size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; 1237*6467f958SSadaf Ebrahimi 1238*6467f958SSadaf Ebrahimi /* Program Object APIs */ 1239*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_program CL_API_CALL 1240*6467f958SSadaf Ebrahimi clCreateProgramWithSource(cl_context context, 1241*6467f958SSadaf Ebrahimi cl_uint count, 1242*6467f958SSadaf Ebrahimi const char ** strings, 1243*6467f958SSadaf Ebrahimi const size_t * lengths, 1244*6467f958SSadaf Ebrahimi cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; 1245*6467f958SSadaf Ebrahimi 1246*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_program CL_API_CALL 1247*6467f958SSadaf Ebrahimi clCreateProgramWithBinary(cl_context context, 1248*6467f958SSadaf Ebrahimi cl_uint num_devices, 1249*6467f958SSadaf Ebrahimi const cl_device_id * device_list, 1250*6467f958SSadaf Ebrahimi const size_t * lengths, 1251*6467f958SSadaf Ebrahimi const unsigned char ** binaries, 1252*6467f958SSadaf Ebrahimi cl_int * binary_status, 1253*6467f958SSadaf Ebrahimi cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; 1254*6467f958SSadaf Ebrahimi 1255*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_1_2 1256*6467f958SSadaf Ebrahimi 1257*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_program CL_API_CALL 1258*6467f958SSadaf Ebrahimi clCreateProgramWithBuiltInKernels(cl_context context, 1259*6467f958SSadaf Ebrahimi cl_uint num_devices, 1260*6467f958SSadaf Ebrahimi const cl_device_id * device_list, 1261*6467f958SSadaf Ebrahimi const char * kernel_names, 1262*6467f958SSadaf Ebrahimi cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_2; 1263*6467f958SSadaf Ebrahimi 1264*6467f958SSadaf Ebrahimi #endif 1265*6467f958SSadaf Ebrahimi 1266*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_2_1 1267*6467f958SSadaf Ebrahimi 1268*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_program CL_API_CALL 1269*6467f958SSadaf Ebrahimi clCreateProgramWithIL(cl_context context, 1270*6467f958SSadaf Ebrahimi const void* il, 1271*6467f958SSadaf Ebrahimi size_t length, 1272*6467f958SSadaf Ebrahimi cl_int* errcode_ret) CL_API_SUFFIX__VERSION_2_1; 1273*6467f958SSadaf Ebrahimi 1274*6467f958SSadaf Ebrahimi #endif 1275*6467f958SSadaf Ebrahimi 1276*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_int CL_API_CALL 1277*6467f958SSadaf Ebrahimi clRetainProgram(cl_program program) CL_API_SUFFIX__VERSION_1_0; 1278*6467f958SSadaf Ebrahimi 1279*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_int CL_API_CALL 1280*6467f958SSadaf Ebrahimi clReleaseProgram(cl_program program) CL_API_SUFFIX__VERSION_1_0; 1281*6467f958SSadaf Ebrahimi 1282*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_int CL_API_CALL 1283*6467f958SSadaf Ebrahimi clBuildProgram(cl_program program, 1284*6467f958SSadaf Ebrahimi cl_uint num_devices, 1285*6467f958SSadaf Ebrahimi const cl_device_id * device_list, 1286*6467f958SSadaf Ebrahimi const char * options, 1287*6467f958SSadaf Ebrahimi void (CL_CALLBACK * pfn_notify)(cl_program program, 1288*6467f958SSadaf Ebrahimi void * user_data), 1289*6467f958SSadaf Ebrahimi void * user_data) CL_API_SUFFIX__VERSION_1_0; 1290*6467f958SSadaf Ebrahimi 1291*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_1_2 1292*6467f958SSadaf Ebrahimi 1293*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_int CL_API_CALL 1294*6467f958SSadaf Ebrahimi clCompileProgram(cl_program program, 1295*6467f958SSadaf Ebrahimi cl_uint num_devices, 1296*6467f958SSadaf Ebrahimi const cl_device_id * device_list, 1297*6467f958SSadaf Ebrahimi const char * options, 1298*6467f958SSadaf Ebrahimi cl_uint num_input_headers, 1299*6467f958SSadaf Ebrahimi const cl_program * input_headers, 1300*6467f958SSadaf Ebrahimi const char ** header_include_names, 1301*6467f958SSadaf Ebrahimi void (CL_CALLBACK * pfn_notify)(cl_program program, 1302*6467f958SSadaf Ebrahimi void * user_data), 1303*6467f958SSadaf Ebrahimi void * user_data) CL_API_SUFFIX__VERSION_1_2; 1304*6467f958SSadaf Ebrahimi 1305*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_program CL_API_CALL 1306*6467f958SSadaf Ebrahimi clLinkProgram(cl_context context, 1307*6467f958SSadaf Ebrahimi cl_uint num_devices, 1308*6467f958SSadaf Ebrahimi const cl_device_id * device_list, 1309*6467f958SSadaf Ebrahimi const char * options, 1310*6467f958SSadaf Ebrahimi cl_uint num_input_programs, 1311*6467f958SSadaf Ebrahimi const cl_program * input_programs, 1312*6467f958SSadaf Ebrahimi void (CL_CALLBACK * pfn_notify)(cl_program program, 1313*6467f958SSadaf Ebrahimi void * user_data), 1314*6467f958SSadaf Ebrahimi void * user_data, 1315*6467f958SSadaf Ebrahimi cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_2; 1316*6467f958SSadaf Ebrahimi 1317*6467f958SSadaf Ebrahimi #endif 1318*6467f958SSadaf Ebrahimi 1319*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_2_2 1320*6467f958SSadaf Ebrahimi 1321*6467f958SSadaf Ebrahimi extern CL_API_ENTRY CL_API_PREFIX__VERSION_2_2_DEPRECATED cl_int CL_API_CALL 1322*6467f958SSadaf Ebrahimi clSetProgramReleaseCallback(cl_program program, 1323*6467f958SSadaf Ebrahimi void (CL_CALLBACK * pfn_notify)(cl_program program, 1324*6467f958SSadaf Ebrahimi void * user_data), 1325*6467f958SSadaf Ebrahimi void * user_data) CL_API_SUFFIX__VERSION_2_2_DEPRECATED; 1326*6467f958SSadaf Ebrahimi 1327*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_int CL_API_CALL 1328*6467f958SSadaf Ebrahimi clSetProgramSpecializationConstant(cl_program program, 1329*6467f958SSadaf Ebrahimi cl_uint spec_id, 1330*6467f958SSadaf Ebrahimi size_t spec_size, 1331*6467f958SSadaf Ebrahimi const void* spec_value) CL_API_SUFFIX__VERSION_2_2; 1332*6467f958SSadaf Ebrahimi 1333*6467f958SSadaf Ebrahimi #endif 1334*6467f958SSadaf Ebrahimi 1335*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_1_2 1336*6467f958SSadaf Ebrahimi 1337*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_int CL_API_CALL 1338*6467f958SSadaf Ebrahimi clUnloadPlatformCompiler(cl_platform_id platform) CL_API_SUFFIX__VERSION_1_2; 1339*6467f958SSadaf Ebrahimi 1340*6467f958SSadaf Ebrahimi #endif 1341*6467f958SSadaf Ebrahimi 1342*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_int CL_API_CALL 1343*6467f958SSadaf Ebrahimi clGetProgramInfo(cl_program program, 1344*6467f958SSadaf Ebrahimi cl_program_info param_name, 1345*6467f958SSadaf Ebrahimi size_t param_value_size, 1346*6467f958SSadaf Ebrahimi void * param_value, 1347*6467f958SSadaf Ebrahimi size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; 1348*6467f958SSadaf Ebrahimi 1349*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_int CL_API_CALL 1350*6467f958SSadaf Ebrahimi clGetProgramBuildInfo(cl_program program, 1351*6467f958SSadaf Ebrahimi cl_device_id device, 1352*6467f958SSadaf Ebrahimi cl_program_build_info param_name, 1353*6467f958SSadaf Ebrahimi size_t param_value_size, 1354*6467f958SSadaf Ebrahimi void * param_value, 1355*6467f958SSadaf Ebrahimi size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; 1356*6467f958SSadaf Ebrahimi 1357*6467f958SSadaf Ebrahimi /* Kernel Object APIs */ 1358*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_kernel CL_API_CALL 1359*6467f958SSadaf Ebrahimi clCreateKernel(cl_program program, 1360*6467f958SSadaf Ebrahimi const char * kernel_name, 1361*6467f958SSadaf Ebrahimi cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; 1362*6467f958SSadaf Ebrahimi 1363*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_int CL_API_CALL 1364*6467f958SSadaf Ebrahimi clCreateKernelsInProgram(cl_program program, 1365*6467f958SSadaf Ebrahimi cl_uint num_kernels, 1366*6467f958SSadaf Ebrahimi cl_kernel * kernels, 1367*6467f958SSadaf Ebrahimi cl_uint * num_kernels_ret) CL_API_SUFFIX__VERSION_1_0; 1368*6467f958SSadaf Ebrahimi 1369*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_2_1 1370*6467f958SSadaf Ebrahimi 1371*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_kernel CL_API_CALL 1372*6467f958SSadaf Ebrahimi clCloneKernel(cl_kernel source_kernel, 1373*6467f958SSadaf Ebrahimi cl_int* errcode_ret) CL_API_SUFFIX__VERSION_2_1; 1374*6467f958SSadaf Ebrahimi 1375*6467f958SSadaf Ebrahimi #endif 1376*6467f958SSadaf Ebrahimi 1377*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_int CL_API_CALL 1378*6467f958SSadaf Ebrahimi clRetainKernel(cl_kernel kernel) CL_API_SUFFIX__VERSION_1_0; 1379*6467f958SSadaf Ebrahimi 1380*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_int CL_API_CALL 1381*6467f958SSadaf Ebrahimi clReleaseKernel(cl_kernel kernel) CL_API_SUFFIX__VERSION_1_0; 1382*6467f958SSadaf Ebrahimi 1383*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_int CL_API_CALL 1384*6467f958SSadaf Ebrahimi clSetKernelArg(cl_kernel kernel, 1385*6467f958SSadaf Ebrahimi cl_uint arg_index, 1386*6467f958SSadaf Ebrahimi size_t arg_size, 1387*6467f958SSadaf Ebrahimi const void * arg_value) CL_API_SUFFIX__VERSION_1_0; 1388*6467f958SSadaf Ebrahimi 1389*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_2_0 1390*6467f958SSadaf Ebrahimi 1391*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_int CL_API_CALL 1392*6467f958SSadaf Ebrahimi clSetKernelArgSVMPointer(cl_kernel kernel, 1393*6467f958SSadaf Ebrahimi cl_uint arg_index, 1394*6467f958SSadaf Ebrahimi const void * arg_value) CL_API_SUFFIX__VERSION_2_0; 1395*6467f958SSadaf Ebrahimi 1396*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_int CL_API_CALL 1397*6467f958SSadaf Ebrahimi clSetKernelExecInfo(cl_kernel kernel, 1398*6467f958SSadaf Ebrahimi cl_kernel_exec_info param_name, 1399*6467f958SSadaf Ebrahimi size_t param_value_size, 1400*6467f958SSadaf Ebrahimi const void * param_value) CL_API_SUFFIX__VERSION_2_0; 1401*6467f958SSadaf Ebrahimi 1402*6467f958SSadaf Ebrahimi #endif 1403*6467f958SSadaf Ebrahimi 1404*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_int CL_API_CALL 1405*6467f958SSadaf Ebrahimi clGetKernelInfo(cl_kernel kernel, 1406*6467f958SSadaf Ebrahimi cl_kernel_info param_name, 1407*6467f958SSadaf Ebrahimi size_t param_value_size, 1408*6467f958SSadaf Ebrahimi void * param_value, 1409*6467f958SSadaf Ebrahimi size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; 1410*6467f958SSadaf Ebrahimi 1411*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_1_2 1412*6467f958SSadaf Ebrahimi 1413*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_int CL_API_CALL 1414*6467f958SSadaf Ebrahimi clGetKernelArgInfo(cl_kernel kernel, 1415*6467f958SSadaf Ebrahimi cl_uint arg_indx, 1416*6467f958SSadaf Ebrahimi cl_kernel_arg_info param_name, 1417*6467f958SSadaf Ebrahimi size_t param_value_size, 1418*6467f958SSadaf Ebrahimi void * param_value, 1419*6467f958SSadaf Ebrahimi size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_1_2; 1420*6467f958SSadaf Ebrahimi 1421*6467f958SSadaf Ebrahimi #endif 1422*6467f958SSadaf Ebrahimi 1423*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_int CL_API_CALL 1424*6467f958SSadaf Ebrahimi clGetKernelWorkGroupInfo(cl_kernel kernel, 1425*6467f958SSadaf Ebrahimi cl_device_id device, 1426*6467f958SSadaf Ebrahimi cl_kernel_work_group_info param_name, 1427*6467f958SSadaf Ebrahimi size_t param_value_size, 1428*6467f958SSadaf Ebrahimi void * param_value, 1429*6467f958SSadaf Ebrahimi size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; 1430*6467f958SSadaf Ebrahimi 1431*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_2_1 1432*6467f958SSadaf Ebrahimi 1433*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_int CL_API_CALL 1434*6467f958SSadaf Ebrahimi clGetKernelSubGroupInfo(cl_kernel kernel, 1435*6467f958SSadaf Ebrahimi cl_device_id device, 1436*6467f958SSadaf Ebrahimi cl_kernel_sub_group_info param_name, 1437*6467f958SSadaf Ebrahimi size_t input_value_size, 1438*6467f958SSadaf Ebrahimi const void* input_value, 1439*6467f958SSadaf Ebrahimi size_t param_value_size, 1440*6467f958SSadaf Ebrahimi void* param_value, 1441*6467f958SSadaf Ebrahimi size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_2_1; 1442*6467f958SSadaf Ebrahimi 1443*6467f958SSadaf Ebrahimi #endif 1444*6467f958SSadaf Ebrahimi 1445*6467f958SSadaf Ebrahimi /* Event Object APIs */ 1446*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_int CL_API_CALL 1447*6467f958SSadaf Ebrahimi clWaitForEvents(cl_uint num_events, 1448*6467f958SSadaf Ebrahimi const cl_event * event_list) CL_API_SUFFIX__VERSION_1_0; 1449*6467f958SSadaf Ebrahimi 1450*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_int CL_API_CALL 1451*6467f958SSadaf Ebrahimi clGetEventInfo(cl_event event, 1452*6467f958SSadaf Ebrahimi cl_event_info param_name, 1453*6467f958SSadaf Ebrahimi size_t param_value_size, 1454*6467f958SSadaf Ebrahimi void * param_value, 1455*6467f958SSadaf Ebrahimi size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; 1456*6467f958SSadaf Ebrahimi 1457*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_1_1 1458*6467f958SSadaf Ebrahimi 1459*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_event CL_API_CALL 1460*6467f958SSadaf Ebrahimi clCreateUserEvent(cl_context context, 1461*6467f958SSadaf Ebrahimi cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_1; 1462*6467f958SSadaf Ebrahimi 1463*6467f958SSadaf Ebrahimi #endif 1464*6467f958SSadaf Ebrahimi 1465*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_int CL_API_CALL 1466*6467f958SSadaf Ebrahimi clRetainEvent(cl_event event) CL_API_SUFFIX__VERSION_1_0; 1467*6467f958SSadaf Ebrahimi 1468*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_int CL_API_CALL 1469*6467f958SSadaf Ebrahimi clReleaseEvent(cl_event event) CL_API_SUFFIX__VERSION_1_0; 1470*6467f958SSadaf Ebrahimi 1471*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_1_1 1472*6467f958SSadaf Ebrahimi 1473*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_int CL_API_CALL 1474*6467f958SSadaf Ebrahimi clSetUserEventStatus(cl_event event, 1475*6467f958SSadaf Ebrahimi cl_int execution_status) CL_API_SUFFIX__VERSION_1_1; 1476*6467f958SSadaf Ebrahimi 1477*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_int CL_API_CALL 1478*6467f958SSadaf Ebrahimi clSetEventCallback(cl_event event, 1479*6467f958SSadaf Ebrahimi cl_int command_exec_callback_type, 1480*6467f958SSadaf Ebrahimi void (CL_CALLBACK * pfn_notify)(cl_event event, 1481*6467f958SSadaf Ebrahimi cl_int event_command_status, 1482*6467f958SSadaf Ebrahimi void * user_data), 1483*6467f958SSadaf Ebrahimi void * user_data) CL_API_SUFFIX__VERSION_1_1; 1484*6467f958SSadaf Ebrahimi 1485*6467f958SSadaf Ebrahimi #endif 1486*6467f958SSadaf Ebrahimi 1487*6467f958SSadaf Ebrahimi /* Profiling APIs */ 1488*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_int CL_API_CALL 1489*6467f958SSadaf Ebrahimi clGetEventProfilingInfo(cl_event event, 1490*6467f958SSadaf Ebrahimi cl_profiling_info param_name, 1491*6467f958SSadaf Ebrahimi size_t param_value_size, 1492*6467f958SSadaf Ebrahimi void * param_value, 1493*6467f958SSadaf Ebrahimi size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; 1494*6467f958SSadaf Ebrahimi 1495*6467f958SSadaf Ebrahimi /* Flush and Finish APIs */ 1496*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_int CL_API_CALL 1497*6467f958SSadaf Ebrahimi clFlush(cl_command_queue command_queue) CL_API_SUFFIX__VERSION_1_0; 1498*6467f958SSadaf Ebrahimi 1499*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_int CL_API_CALL 1500*6467f958SSadaf Ebrahimi clFinish(cl_command_queue command_queue) CL_API_SUFFIX__VERSION_1_0; 1501*6467f958SSadaf Ebrahimi 1502*6467f958SSadaf Ebrahimi /* Enqueued Commands APIs */ 1503*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_int CL_API_CALL 1504*6467f958SSadaf Ebrahimi clEnqueueReadBuffer(cl_command_queue command_queue, 1505*6467f958SSadaf Ebrahimi cl_mem buffer, 1506*6467f958SSadaf Ebrahimi cl_bool blocking_read, 1507*6467f958SSadaf Ebrahimi size_t offset, 1508*6467f958SSadaf Ebrahimi size_t size, 1509*6467f958SSadaf Ebrahimi void * ptr, 1510*6467f958SSadaf Ebrahimi cl_uint num_events_in_wait_list, 1511*6467f958SSadaf Ebrahimi const cl_event * event_wait_list, 1512*6467f958SSadaf Ebrahimi cl_event * event) CL_API_SUFFIX__VERSION_1_0; 1513*6467f958SSadaf Ebrahimi 1514*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_1_1 1515*6467f958SSadaf Ebrahimi 1516*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_int CL_API_CALL 1517*6467f958SSadaf Ebrahimi clEnqueueReadBufferRect(cl_command_queue command_queue, 1518*6467f958SSadaf Ebrahimi cl_mem buffer, 1519*6467f958SSadaf Ebrahimi cl_bool blocking_read, 1520*6467f958SSadaf Ebrahimi const size_t * buffer_origin, 1521*6467f958SSadaf Ebrahimi const size_t * host_origin, 1522*6467f958SSadaf Ebrahimi const size_t * region, 1523*6467f958SSadaf Ebrahimi size_t buffer_row_pitch, 1524*6467f958SSadaf Ebrahimi size_t buffer_slice_pitch, 1525*6467f958SSadaf Ebrahimi size_t host_row_pitch, 1526*6467f958SSadaf Ebrahimi size_t host_slice_pitch, 1527*6467f958SSadaf Ebrahimi void * ptr, 1528*6467f958SSadaf Ebrahimi cl_uint num_events_in_wait_list, 1529*6467f958SSadaf Ebrahimi const cl_event * event_wait_list, 1530*6467f958SSadaf Ebrahimi cl_event * event) CL_API_SUFFIX__VERSION_1_1; 1531*6467f958SSadaf Ebrahimi 1532*6467f958SSadaf Ebrahimi #endif 1533*6467f958SSadaf Ebrahimi 1534*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_int CL_API_CALL 1535*6467f958SSadaf Ebrahimi clEnqueueWriteBuffer(cl_command_queue command_queue, 1536*6467f958SSadaf Ebrahimi cl_mem buffer, 1537*6467f958SSadaf Ebrahimi cl_bool blocking_write, 1538*6467f958SSadaf Ebrahimi size_t offset, 1539*6467f958SSadaf Ebrahimi size_t size, 1540*6467f958SSadaf Ebrahimi const void * ptr, 1541*6467f958SSadaf Ebrahimi cl_uint num_events_in_wait_list, 1542*6467f958SSadaf Ebrahimi const cl_event * event_wait_list, 1543*6467f958SSadaf Ebrahimi cl_event * event) CL_API_SUFFIX__VERSION_1_0; 1544*6467f958SSadaf Ebrahimi 1545*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_1_1 1546*6467f958SSadaf Ebrahimi 1547*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_int CL_API_CALL 1548*6467f958SSadaf Ebrahimi clEnqueueWriteBufferRect(cl_command_queue command_queue, 1549*6467f958SSadaf Ebrahimi cl_mem buffer, 1550*6467f958SSadaf Ebrahimi cl_bool blocking_write, 1551*6467f958SSadaf Ebrahimi const size_t * buffer_origin, 1552*6467f958SSadaf Ebrahimi const size_t * host_origin, 1553*6467f958SSadaf Ebrahimi const size_t * region, 1554*6467f958SSadaf Ebrahimi size_t buffer_row_pitch, 1555*6467f958SSadaf Ebrahimi size_t buffer_slice_pitch, 1556*6467f958SSadaf Ebrahimi size_t host_row_pitch, 1557*6467f958SSadaf Ebrahimi size_t host_slice_pitch, 1558*6467f958SSadaf Ebrahimi const void * ptr, 1559*6467f958SSadaf Ebrahimi cl_uint num_events_in_wait_list, 1560*6467f958SSadaf Ebrahimi const cl_event * event_wait_list, 1561*6467f958SSadaf Ebrahimi cl_event * event) CL_API_SUFFIX__VERSION_1_1; 1562*6467f958SSadaf Ebrahimi 1563*6467f958SSadaf Ebrahimi #endif 1564*6467f958SSadaf Ebrahimi 1565*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_1_2 1566*6467f958SSadaf Ebrahimi 1567*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_int CL_API_CALL 1568*6467f958SSadaf Ebrahimi clEnqueueFillBuffer(cl_command_queue command_queue, 1569*6467f958SSadaf Ebrahimi cl_mem buffer, 1570*6467f958SSadaf Ebrahimi const void * pattern, 1571*6467f958SSadaf Ebrahimi size_t pattern_size, 1572*6467f958SSadaf Ebrahimi size_t offset, 1573*6467f958SSadaf Ebrahimi size_t size, 1574*6467f958SSadaf Ebrahimi cl_uint num_events_in_wait_list, 1575*6467f958SSadaf Ebrahimi const cl_event * event_wait_list, 1576*6467f958SSadaf Ebrahimi cl_event * event) CL_API_SUFFIX__VERSION_1_2; 1577*6467f958SSadaf Ebrahimi 1578*6467f958SSadaf Ebrahimi #endif 1579*6467f958SSadaf Ebrahimi 1580*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_int CL_API_CALL 1581*6467f958SSadaf Ebrahimi clEnqueueCopyBuffer(cl_command_queue command_queue, 1582*6467f958SSadaf Ebrahimi cl_mem src_buffer, 1583*6467f958SSadaf Ebrahimi cl_mem dst_buffer, 1584*6467f958SSadaf Ebrahimi size_t src_offset, 1585*6467f958SSadaf Ebrahimi size_t dst_offset, 1586*6467f958SSadaf Ebrahimi size_t size, 1587*6467f958SSadaf Ebrahimi cl_uint num_events_in_wait_list, 1588*6467f958SSadaf Ebrahimi const cl_event * event_wait_list, 1589*6467f958SSadaf Ebrahimi cl_event * event) CL_API_SUFFIX__VERSION_1_0; 1590*6467f958SSadaf Ebrahimi 1591*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_1_1 1592*6467f958SSadaf Ebrahimi 1593*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_int CL_API_CALL 1594*6467f958SSadaf Ebrahimi clEnqueueCopyBufferRect(cl_command_queue command_queue, 1595*6467f958SSadaf Ebrahimi cl_mem src_buffer, 1596*6467f958SSadaf Ebrahimi cl_mem dst_buffer, 1597*6467f958SSadaf Ebrahimi const size_t * src_origin, 1598*6467f958SSadaf Ebrahimi const size_t * dst_origin, 1599*6467f958SSadaf Ebrahimi const size_t * region, 1600*6467f958SSadaf Ebrahimi size_t src_row_pitch, 1601*6467f958SSadaf Ebrahimi size_t src_slice_pitch, 1602*6467f958SSadaf Ebrahimi size_t dst_row_pitch, 1603*6467f958SSadaf Ebrahimi size_t dst_slice_pitch, 1604*6467f958SSadaf Ebrahimi cl_uint num_events_in_wait_list, 1605*6467f958SSadaf Ebrahimi const cl_event * event_wait_list, 1606*6467f958SSadaf Ebrahimi cl_event * event) CL_API_SUFFIX__VERSION_1_1; 1607*6467f958SSadaf Ebrahimi 1608*6467f958SSadaf Ebrahimi #endif 1609*6467f958SSadaf Ebrahimi 1610*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_int CL_API_CALL 1611*6467f958SSadaf Ebrahimi clEnqueueReadImage(cl_command_queue command_queue, 1612*6467f958SSadaf Ebrahimi cl_mem image, 1613*6467f958SSadaf Ebrahimi cl_bool blocking_read, 1614*6467f958SSadaf Ebrahimi const size_t * origin, 1615*6467f958SSadaf Ebrahimi const size_t * region, 1616*6467f958SSadaf Ebrahimi size_t row_pitch, 1617*6467f958SSadaf Ebrahimi size_t slice_pitch, 1618*6467f958SSadaf Ebrahimi void * ptr, 1619*6467f958SSadaf Ebrahimi cl_uint num_events_in_wait_list, 1620*6467f958SSadaf Ebrahimi const cl_event * event_wait_list, 1621*6467f958SSadaf Ebrahimi cl_event * event) CL_API_SUFFIX__VERSION_1_0; 1622*6467f958SSadaf Ebrahimi 1623*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_int CL_API_CALL 1624*6467f958SSadaf Ebrahimi clEnqueueWriteImage(cl_command_queue command_queue, 1625*6467f958SSadaf Ebrahimi cl_mem image, 1626*6467f958SSadaf Ebrahimi cl_bool blocking_write, 1627*6467f958SSadaf Ebrahimi const size_t * origin, 1628*6467f958SSadaf Ebrahimi const size_t * region, 1629*6467f958SSadaf Ebrahimi size_t input_row_pitch, 1630*6467f958SSadaf Ebrahimi size_t input_slice_pitch, 1631*6467f958SSadaf Ebrahimi const void * ptr, 1632*6467f958SSadaf Ebrahimi cl_uint num_events_in_wait_list, 1633*6467f958SSadaf Ebrahimi const cl_event * event_wait_list, 1634*6467f958SSadaf Ebrahimi cl_event * event) CL_API_SUFFIX__VERSION_1_0; 1635*6467f958SSadaf Ebrahimi 1636*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_1_2 1637*6467f958SSadaf Ebrahimi 1638*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_int CL_API_CALL 1639*6467f958SSadaf Ebrahimi clEnqueueFillImage(cl_command_queue command_queue, 1640*6467f958SSadaf Ebrahimi cl_mem image, 1641*6467f958SSadaf Ebrahimi const void * fill_color, 1642*6467f958SSadaf Ebrahimi const size_t * origin, 1643*6467f958SSadaf Ebrahimi const size_t * region, 1644*6467f958SSadaf Ebrahimi cl_uint num_events_in_wait_list, 1645*6467f958SSadaf Ebrahimi const cl_event * event_wait_list, 1646*6467f958SSadaf Ebrahimi cl_event * event) CL_API_SUFFIX__VERSION_1_2; 1647*6467f958SSadaf Ebrahimi 1648*6467f958SSadaf Ebrahimi #endif 1649*6467f958SSadaf Ebrahimi 1650*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_int CL_API_CALL 1651*6467f958SSadaf Ebrahimi clEnqueueCopyImage(cl_command_queue command_queue, 1652*6467f958SSadaf Ebrahimi cl_mem src_image, 1653*6467f958SSadaf Ebrahimi cl_mem dst_image, 1654*6467f958SSadaf Ebrahimi const size_t * src_origin, 1655*6467f958SSadaf Ebrahimi const size_t * dst_origin, 1656*6467f958SSadaf Ebrahimi const size_t * region, 1657*6467f958SSadaf Ebrahimi cl_uint num_events_in_wait_list, 1658*6467f958SSadaf Ebrahimi const cl_event * event_wait_list, 1659*6467f958SSadaf Ebrahimi cl_event * event) CL_API_SUFFIX__VERSION_1_0; 1660*6467f958SSadaf Ebrahimi 1661*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_int CL_API_CALL 1662*6467f958SSadaf Ebrahimi clEnqueueCopyImageToBuffer(cl_command_queue command_queue, 1663*6467f958SSadaf Ebrahimi cl_mem src_image, 1664*6467f958SSadaf Ebrahimi cl_mem dst_buffer, 1665*6467f958SSadaf Ebrahimi const size_t * src_origin, 1666*6467f958SSadaf Ebrahimi const size_t * region, 1667*6467f958SSadaf Ebrahimi size_t dst_offset, 1668*6467f958SSadaf Ebrahimi cl_uint num_events_in_wait_list, 1669*6467f958SSadaf Ebrahimi const cl_event * event_wait_list, 1670*6467f958SSadaf Ebrahimi cl_event * event) CL_API_SUFFIX__VERSION_1_0; 1671*6467f958SSadaf Ebrahimi 1672*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_int CL_API_CALL 1673*6467f958SSadaf Ebrahimi clEnqueueCopyBufferToImage(cl_command_queue command_queue, 1674*6467f958SSadaf Ebrahimi cl_mem src_buffer, 1675*6467f958SSadaf Ebrahimi cl_mem dst_image, 1676*6467f958SSadaf Ebrahimi size_t src_offset, 1677*6467f958SSadaf Ebrahimi const size_t * dst_origin, 1678*6467f958SSadaf Ebrahimi const size_t * region, 1679*6467f958SSadaf Ebrahimi cl_uint num_events_in_wait_list, 1680*6467f958SSadaf Ebrahimi const cl_event * event_wait_list, 1681*6467f958SSadaf Ebrahimi cl_event * event) CL_API_SUFFIX__VERSION_1_0; 1682*6467f958SSadaf Ebrahimi 1683*6467f958SSadaf Ebrahimi extern CL_API_ENTRY void * CL_API_CALL 1684*6467f958SSadaf Ebrahimi clEnqueueMapBuffer(cl_command_queue command_queue, 1685*6467f958SSadaf Ebrahimi cl_mem buffer, 1686*6467f958SSadaf Ebrahimi cl_bool blocking_map, 1687*6467f958SSadaf Ebrahimi cl_map_flags map_flags, 1688*6467f958SSadaf Ebrahimi size_t offset, 1689*6467f958SSadaf Ebrahimi size_t size, 1690*6467f958SSadaf Ebrahimi cl_uint num_events_in_wait_list, 1691*6467f958SSadaf Ebrahimi const cl_event * event_wait_list, 1692*6467f958SSadaf Ebrahimi cl_event * event, 1693*6467f958SSadaf Ebrahimi cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; 1694*6467f958SSadaf Ebrahimi 1695*6467f958SSadaf Ebrahimi extern CL_API_ENTRY void * CL_API_CALL 1696*6467f958SSadaf Ebrahimi clEnqueueMapImage(cl_command_queue command_queue, 1697*6467f958SSadaf Ebrahimi cl_mem image, 1698*6467f958SSadaf Ebrahimi cl_bool blocking_map, 1699*6467f958SSadaf Ebrahimi cl_map_flags map_flags, 1700*6467f958SSadaf Ebrahimi const size_t * origin, 1701*6467f958SSadaf Ebrahimi const size_t * region, 1702*6467f958SSadaf Ebrahimi size_t * image_row_pitch, 1703*6467f958SSadaf Ebrahimi size_t * image_slice_pitch, 1704*6467f958SSadaf Ebrahimi cl_uint num_events_in_wait_list, 1705*6467f958SSadaf Ebrahimi const cl_event * event_wait_list, 1706*6467f958SSadaf Ebrahimi cl_event * event, 1707*6467f958SSadaf Ebrahimi cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; 1708*6467f958SSadaf Ebrahimi 1709*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_int CL_API_CALL 1710*6467f958SSadaf Ebrahimi clEnqueueUnmapMemObject(cl_command_queue command_queue, 1711*6467f958SSadaf Ebrahimi cl_mem memobj, 1712*6467f958SSadaf Ebrahimi void * mapped_ptr, 1713*6467f958SSadaf Ebrahimi cl_uint num_events_in_wait_list, 1714*6467f958SSadaf Ebrahimi const cl_event * event_wait_list, 1715*6467f958SSadaf Ebrahimi cl_event * event) CL_API_SUFFIX__VERSION_1_0; 1716*6467f958SSadaf Ebrahimi 1717*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_1_2 1718*6467f958SSadaf Ebrahimi 1719*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_int CL_API_CALL 1720*6467f958SSadaf Ebrahimi clEnqueueMigrateMemObjects(cl_command_queue command_queue, 1721*6467f958SSadaf Ebrahimi cl_uint num_mem_objects, 1722*6467f958SSadaf Ebrahimi const cl_mem * mem_objects, 1723*6467f958SSadaf Ebrahimi cl_mem_migration_flags flags, 1724*6467f958SSadaf Ebrahimi cl_uint num_events_in_wait_list, 1725*6467f958SSadaf Ebrahimi const cl_event * event_wait_list, 1726*6467f958SSadaf Ebrahimi cl_event * event) CL_API_SUFFIX__VERSION_1_2; 1727*6467f958SSadaf Ebrahimi 1728*6467f958SSadaf Ebrahimi #endif 1729*6467f958SSadaf Ebrahimi 1730*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_int CL_API_CALL 1731*6467f958SSadaf Ebrahimi clEnqueueNDRangeKernel(cl_command_queue command_queue, 1732*6467f958SSadaf Ebrahimi cl_kernel kernel, 1733*6467f958SSadaf Ebrahimi cl_uint work_dim, 1734*6467f958SSadaf Ebrahimi const size_t * global_work_offset, 1735*6467f958SSadaf Ebrahimi const size_t * global_work_size, 1736*6467f958SSadaf Ebrahimi const size_t * local_work_size, 1737*6467f958SSadaf Ebrahimi cl_uint num_events_in_wait_list, 1738*6467f958SSadaf Ebrahimi const cl_event * event_wait_list, 1739*6467f958SSadaf Ebrahimi cl_event * event) CL_API_SUFFIX__VERSION_1_0; 1740*6467f958SSadaf Ebrahimi 1741*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_int CL_API_CALL 1742*6467f958SSadaf Ebrahimi clEnqueueNativeKernel(cl_command_queue command_queue, 1743*6467f958SSadaf Ebrahimi void (CL_CALLBACK * user_func)(void *), 1744*6467f958SSadaf Ebrahimi void * args, 1745*6467f958SSadaf Ebrahimi size_t cb_args, 1746*6467f958SSadaf Ebrahimi cl_uint num_mem_objects, 1747*6467f958SSadaf Ebrahimi const cl_mem * mem_list, 1748*6467f958SSadaf Ebrahimi const void ** args_mem_loc, 1749*6467f958SSadaf Ebrahimi cl_uint num_events_in_wait_list, 1750*6467f958SSadaf Ebrahimi const cl_event * event_wait_list, 1751*6467f958SSadaf Ebrahimi cl_event * event) CL_API_SUFFIX__VERSION_1_0; 1752*6467f958SSadaf Ebrahimi 1753*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_1_2 1754*6467f958SSadaf Ebrahimi 1755*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_int CL_API_CALL 1756*6467f958SSadaf Ebrahimi clEnqueueMarkerWithWaitList(cl_command_queue command_queue, 1757*6467f958SSadaf Ebrahimi cl_uint num_events_in_wait_list, 1758*6467f958SSadaf Ebrahimi const cl_event * event_wait_list, 1759*6467f958SSadaf Ebrahimi cl_event * event) CL_API_SUFFIX__VERSION_1_2; 1760*6467f958SSadaf Ebrahimi 1761*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_int CL_API_CALL 1762*6467f958SSadaf Ebrahimi clEnqueueBarrierWithWaitList(cl_command_queue command_queue, 1763*6467f958SSadaf Ebrahimi cl_uint num_events_in_wait_list, 1764*6467f958SSadaf Ebrahimi const cl_event * event_wait_list, 1765*6467f958SSadaf Ebrahimi cl_event * event) CL_API_SUFFIX__VERSION_1_2; 1766*6467f958SSadaf Ebrahimi 1767*6467f958SSadaf Ebrahimi #endif 1768*6467f958SSadaf Ebrahimi 1769*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_2_0 1770*6467f958SSadaf Ebrahimi 1771*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_int CL_API_CALL 1772*6467f958SSadaf Ebrahimi clEnqueueSVMFree(cl_command_queue command_queue, 1773*6467f958SSadaf Ebrahimi cl_uint num_svm_pointers, 1774*6467f958SSadaf Ebrahimi void * svm_pointers[], 1775*6467f958SSadaf Ebrahimi void (CL_CALLBACK * pfn_free_func)(cl_command_queue queue, 1776*6467f958SSadaf Ebrahimi cl_uint num_svm_pointers, 1777*6467f958SSadaf Ebrahimi void * svm_pointers[], 1778*6467f958SSadaf Ebrahimi void * user_data), 1779*6467f958SSadaf Ebrahimi void * user_data, 1780*6467f958SSadaf Ebrahimi cl_uint num_events_in_wait_list, 1781*6467f958SSadaf Ebrahimi const cl_event * event_wait_list, 1782*6467f958SSadaf Ebrahimi cl_event * event) CL_API_SUFFIX__VERSION_2_0; 1783*6467f958SSadaf Ebrahimi 1784*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_int CL_API_CALL 1785*6467f958SSadaf Ebrahimi clEnqueueSVMMemcpy(cl_command_queue command_queue, 1786*6467f958SSadaf Ebrahimi cl_bool blocking_copy, 1787*6467f958SSadaf Ebrahimi void * dst_ptr, 1788*6467f958SSadaf Ebrahimi const void * src_ptr, 1789*6467f958SSadaf Ebrahimi size_t size, 1790*6467f958SSadaf Ebrahimi cl_uint num_events_in_wait_list, 1791*6467f958SSadaf Ebrahimi const cl_event * event_wait_list, 1792*6467f958SSadaf Ebrahimi cl_event * event) CL_API_SUFFIX__VERSION_2_0; 1793*6467f958SSadaf Ebrahimi 1794*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_int CL_API_CALL 1795*6467f958SSadaf Ebrahimi clEnqueueSVMMemFill(cl_command_queue command_queue, 1796*6467f958SSadaf Ebrahimi void * svm_ptr, 1797*6467f958SSadaf Ebrahimi const void * pattern, 1798*6467f958SSadaf Ebrahimi size_t pattern_size, 1799*6467f958SSadaf Ebrahimi size_t size, 1800*6467f958SSadaf Ebrahimi cl_uint num_events_in_wait_list, 1801*6467f958SSadaf Ebrahimi const cl_event * event_wait_list, 1802*6467f958SSadaf Ebrahimi cl_event * event) CL_API_SUFFIX__VERSION_2_0; 1803*6467f958SSadaf Ebrahimi 1804*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_int CL_API_CALL 1805*6467f958SSadaf Ebrahimi clEnqueueSVMMap(cl_command_queue command_queue, 1806*6467f958SSadaf Ebrahimi cl_bool blocking_map, 1807*6467f958SSadaf Ebrahimi cl_map_flags flags, 1808*6467f958SSadaf Ebrahimi void * svm_ptr, 1809*6467f958SSadaf Ebrahimi size_t size, 1810*6467f958SSadaf Ebrahimi cl_uint num_events_in_wait_list, 1811*6467f958SSadaf Ebrahimi const cl_event * event_wait_list, 1812*6467f958SSadaf Ebrahimi cl_event * event) CL_API_SUFFIX__VERSION_2_0; 1813*6467f958SSadaf Ebrahimi 1814*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_int CL_API_CALL 1815*6467f958SSadaf Ebrahimi clEnqueueSVMUnmap(cl_command_queue command_queue, 1816*6467f958SSadaf Ebrahimi void * svm_ptr, 1817*6467f958SSadaf Ebrahimi cl_uint num_events_in_wait_list, 1818*6467f958SSadaf Ebrahimi const cl_event * event_wait_list, 1819*6467f958SSadaf Ebrahimi cl_event * event) CL_API_SUFFIX__VERSION_2_0; 1820*6467f958SSadaf Ebrahimi 1821*6467f958SSadaf Ebrahimi #endif 1822*6467f958SSadaf Ebrahimi 1823*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_2_1 1824*6467f958SSadaf Ebrahimi 1825*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_int CL_API_CALL 1826*6467f958SSadaf Ebrahimi clEnqueueSVMMigrateMem(cl_command_queue command_queue, 1827*6467f958SSadaf Ebrahimi cl_uint num_svm_pointers, 1828*6467f958SSadaf Ebrahimi const void ** svm_pointers, 1829*6467f958SSadaf Ebrahimi const size_t * sizes, 1830*6467f958SSadaf Ebrahimi cl_mem_migration_flags flags, 1831*6467f958SSadaf Ebrahimi cl_uint num_events_in_wait_list, 1832*6467f958SSadaf Ebrahimi const cl_event * event_wait_list, 1833*6467f958SSadaf Ebrahimi cl_event * event) CL_API_SUFFIX__VERSION_2_1; 1834*6467f958SSadaf Ebrahimi 1835*6467f958SSadaf Ebrahimi #endif 1836*6467f958SSadaf Ebrahimi 1837*6467f958SSadaf Ebrahimi #ifdef CL_VERSION_1_2 1838*6467f958SSadaf Ebrahimi 1839*6467f958SSadaf Ebrahimi /* Extension function access 1840*6467f958SSadaf Ebrahimi * 1841*6467f958SSadaf Ebrahimi * Returns the extension function address for the given function name, 1842*6467f958SSadaf Ebrahimi * or NULL if a valid function can not be found. The client must 1843*6467f958SSadaf Ebrahimi * check to make sure the address is not NULL, before using or 1844*6467f958SSadaf Ebrahimi * calling the returned function address. 1845*6467f958SSadaf Ebrahimi */ 1846*6467f958SSadaf Ebrahimi extern CL_API_ENTRY void * CL_API_CALL 1847*6467f958SSadaf Ebrahimi clGetExtensionFunctionAddressForPlatform(cl_platform_id platform, 1848*6467f958SSadaf Ebrahimi const char * func_name) CL_API_SUFFIX__VERSION_1_2; 1849*6467f958SSadaf Ebrahimi 1850*6467f958SSadaf Ebrahimi #endif 1851*6467f958SSadaf Ebrahimi 1852*6467f958SSadaf Ebrahimi #ifdef CL_USE_DEPRECATED_OPENCL_1_0_APIS 1853*6467f958SSadaf Ebrahimi /* 1854*6467f958SSadaf Ebrahimi * WARNING: 1855*6467f958SSadaf Ebrahimi * This API introduces mutable state into the OpenCL implementation. It has been REMOVED 1856*6467f958SSadaf Ebrahimi * to better facilitate thread safety. The 1.0 API is not thread safe. It is not tested by the 1857*6467f958SSadaf Ebrahimi * OpenCL 1.1 conformance test, and consequently may not work or may not work dependably. 1858*6467f958SSadaf Ebrahimi * It is likely to be non-performant. Use of this API is not advised. Use at your own risk. 1859*6467f958SSadaf Ebrahimi * 1860*6467f958SSadaf Ebrahimi * Software developers previously relying on this API are instructed to set the command queue 1861*6467f958SSadaf Ebrahimi * properties when creating the queue, instead. 1862*6467f958SSadaf Ebrahimi */ 1863*6467f958SSadaf Ebrahimi extern CL_API_ENTRY cl_int CL_API_CALL 1864*6467f958SSadaf Ebrahimi clSetCommandQueueProperty(cl_command_queue command_queue, 1865*6467f958SSadaf Ebrahimi cl_command_queue_properties properties, 1866*6467f958SSadaf Ebrahimi cl_bool enable, 1867*6467f958SSadaf Ebrahimi cl_command_queue_properties * old_properties) CL_API_SUFFIX__VERSION_1_0_DEPRECATED; 1868*6467f958SSadaf Ebrahimi #endif /* CL_USE_DEPRECATED_OPENCL_1_0_APIS */ 1869*6467f958SSadaf Ebrahimi 1870*6467f958SSadaf Ebrahimi /* Deprecated OpenCL 1.1 APIs */ 1871*6467f958SSadaf Ebrahimi extern CL_API_ENTRY CL_API_PREFIX__VERSION_1_1_DEPRECATED cl_mem CL_API_CALL 1872*6467f958SSadaf Ebrahimi clCreateImage2D(cl_context context, 1873*6467f958SSadaf Ebrahimi cl_mem_flags flags, 1874*6467f958SSadaf Ebrahimi const cl_image_format * image_format, 1875*6467f958SSadaf Ebrahimi size_t image_width, 1876*6467f958SSadaf Ebrahimi size_t image_height, 1877*6467f958SSadaf Ebrahimi size_t image_row_pitch, 1878*6467f958SSadaf Ebrahimi void * host_ptr, 1879*6467f958SSadaf Ebrahimi cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_1_DEPRECATED; 1880*6467f958SSadaf Ebrahimi 1881*6467f958SSadaf Ebrahimi extern CL_API_ENTRY CL_API_PREFIX__VERSION_1_1_DEPRECATED cl_mem CL_API_CALL 1882*6467f958SSadaf Ebrahimi clCreateImage3D(cl_context context, 1883*6467f958SSadaf Ebrahimi cl_mem_flags flags, 1884*6467f958SSadaf Ebrahimi const cl_image_format * image_format, 1885*6467f958SSadaf Ebrahimi size_t image_width, 1886*6467f958SSadaf Ebrahimi size_t image_height, 1887*6467f958SSadaf Ebrahimi size_t image_depth, 1888*6467f958SSadaf Ebrahimi size_t image_row_pitch, 1889*6467f958SSadaf Ebrahimi size_t image_slice_pitch, 1890*6467f958SSadaf Ebrahimi void * host_ptr, 1891*6467f958SSadaf Ebrahimi cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_1_DEPRECATED; 1892*6467f958SSadaf Ebrahimi 1893*6467f958SSadaf Ebrahimi extern CL_API_ENTRY CL_API_PREFIX__VERSION_1_1_DEPRECATED cl_int CL_API_CALL 1894*6467f958SSadaf Ebrahimi clEnqueueMarker(cl_command_queue command_queue, 1895*6467f958SSadaf Ebrahimi cl_event * event) CL_API_SUFFIX__VERSION_1_1_DEPRECATED; 1896*6467f958SSadaf Ebrahimi 1897*6467f958SSadaf Ebrahimi extern CL_API_ENTRY CL_API_PREFIX__VERSION_1_1_DEPRECATED cl_int CL_API_CALL 1898*6467f958SSadaf Ebrahimi clEnqueueWaitForEvents(cl_command_queue command_queue, 1899*6467f958SSadaf Ebrahimi cl_uint num_events, 1900*6467f958SSadaf Ebrahimi const cl_event * event_list) CL_API_SUFFIX__VERSION_1_1_DEPRECATED; 1901*6467f958SSadaf Ebrahimi 1902*6467f958SSadaf Ebrahimi extern CL_API_ENTRY CL_API_PREFIX__VERSION_1_1_DEPRECATED cl_int CL_API_CALL 1903*6467f958SSadaf Ebrahimi clEnqueueBarrier(cl_command_queue command_queue) CL_API_SUFFIX__VERSION_1_1_DEPRECATED; 1904*6467f958SSadaf Ebrahimi 1905*6467f958SSadaf Ebrahimi extern CL_API_ENTRY CL_API_PREFIX__VERSION_1_1_DEPRECATED cl_int CL_API_CALL 1906*6467f958SSadaf Ebrahimi clUnloadCompiler(void) CL_API_SUFFIX__VERSION_1_1_DEPRECATED; 1907*6467f958SSadaf Ebrahimi 1908*6467f958SSadaf Ebrahimi extern CL_API_ENTRY CL_API_PREFIX__VERSION_1_1_DEPRECATED void * CL_API_CALL 1909*6467f958SSadaf Ebrahimi clGetExtensionFunctionAddress(const char * func_name) CL_API_SUFFIX__VERSION_1_1_DEPRECATED; 1910*6467f958SSadaf Ebrahimi 1911*6467f958SSadaf Ebrahimi /* Deprecated OpenCL 2.0 APIs */ 1912*6467f958SSadaf Ebrahimi extern CL_API_ENTRY CL_API_PREFIX__VERSION_1_2_DEPRECATED cl_command_queue CL_API_CALL 1913*6467f958SSadaf Ebrahimi clCreateCommandQueue(cl_context context, 1914*6467f958SSadaf Ebrahimi cl_device_id device, 1915*6467f958SSadaf Ebrahimi cl_command_queue_properties properties, 1916*6467f958SSadaf Ebrahimi cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_2_DEPRECATED; 1917*6467f958SSadaf Ebrahimi 1918*6467f958SSadaf Ebrahimi extern CL_API_ENTRY CL_API_PREFIX__VERSION_1_2_DEPRECATED cl_sampler CL_API_CALL 1919*6467f958SSadaf Ebrahimi clCreateSampler(cl_context context, 1920*6467f958SSadaf Ebrahimi cl_bool normalized_coords, 1921*6467f958SSadaf Ebrahimi cl_addressing_mode addressing_mode, 1922*6467f958SSadaf Ebrahimi cl_filter_mode filter_mode, 1923*6467f958SSadaf Ebrahimi cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_2_DEPRECATED; 1924*6467f958SSadaf Ebrahimi 1925*6467f958SSadaf Ebrahimi extern CL_API_ENTRY CL_API_PREFIX__VERSION_1_2_DEPRECATED cl_int CL_API_CALL 1926*6467f958SSadaf Ebrahimi clEnqueueTask(cl_command_queue command_queue, 1927*6467f958SSadaf Ebrahimi cl_kernel kernel, 1928*6467f958SSadaf Ebrahimi cl_uint num_events_in_wait_list, 1929*6467f958SSadaf Ebrahimi const cl_event * event_wait_list, 1930*6467f958SSadaf Ebrahimi cl_event * event) CL_API_SUFFIX__VERSION_1_2_DEPRECATED; 1931*6467f958SSadaf Ebrahimi 1932*6467f958SSadaf Ebrahimi #ifdef __cplusplus 1933*6467f958SSadaf Ebrahimi } 1934*6467f958SSadaf Ebrahimi #endif 1935*6467f958SSadaf Ebrahimi 1936*6467f958SSadaf Ebrahimi #endif /* __OPENCL_CL_H */ 1937