blob: d5ce82349c48735db616b0bc3768a06c263a05da [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2008-2010 The Khronos Group Inc.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and/or associated documentation files (the
* "Materials"), to deal in the Materials without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Materials, and to
* permit persons to whom the Materials are furnished to do so, subject to
* the following conditions:
*
* The above copyright notice and this permission notice shall be included
* in all copies or substantial portions of the Materials.
*
* THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
* MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
******************************************************************************/
#ifndef __OPENCL_CL_ICD_H
#define __OPENCL_CL_ICD_H
#include <CL/cl.h>
#include <CL/cl_gl.h>
#define cl_khr_icd 1
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
typedef cl_int(CL_API_CALL* clGetPlatformIDs_fn)(
cl_uint /* num_entries */, cl_platform_id* /* platforms */,
cl_uint* /* num_platforms */) CL_API_SUFFIX__VERSION_1_0;
typedef cl_int(CL_API_CALL* clGetPlatformInfo_fn)(
cl_platform_id /* platform */, cl_platform_info /* param_name */, size_t /* param_value_size */,
void* /* param_value */, size_t* /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0;
typedef cl_int(CL_API_CALL* clGetDeviceIDs_fn)(
cl_platform_id /* platform */, cl_device_type /* device_type */, cl_uint /* num_entries */,
cl_device_id* /* devices */, cl_uint* /* num_devices */) CL_API_SUFFIX__VERSION_1_0;
typedef cl_int(CL_API_CALL* clGetDeviceInfo_fn)(
cl_device_id /* device */, cl_device_info /* param_name */, size_t /* param_value_size */,
void* /* param_value */, size_t* /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0;
typedef cl_context(CL_API_CALL* clCreateContext_fn)(
const cl_context_properties* /* properties */, cl_uint /* num_devices */,
const cl_device_id* /* devices */,
void(CL_CALLBACK* /* pfn_notify */)(const char*, const void*, size_t, void*),
void* /* user_data */, cl_int* /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;
typedef cl_context(CL_API_CALL* clCreateContextFromType_fn)(
const cl_context_properties* /* properties */, cl_device_type /* device_type */,
void(CL_CALLBACK* /* pfn_notify*/)(const char*, const void*, size_t, void*),
void* /* user_data */, cl_int* /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;
typedef cl_int(CL_API_CALL* clRetainContext_fn)(cl_context /* context */)
CL_API_SUFFIX__VERSION_1_0;
typedef cl_int(CL_API_CALL* clReleaseContext_fn)(cl_context /* context */)
CL_API_SUFFIX__VERSION_1_0;
typedef cl_int(CL_API_CALL* clGetContextInfo_fn)(
cl_context /* context */, cl_context_info /* param_name */, size_t /* param_value_size */,
void* /* param_value */, size_t* /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0;
typedef cl_command_queue(CL_API_CALL* clCreateCommandQueue_fn)(
cl_context /* context */, cl_device_id /* device */,
cl_command_queue_properties /* properties */,
cl_int* /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;
typedef cl_int(CL_API_CALL* clRetainCommandQueue_fn)(cl_command_queue /* command_queue */)
CL_API_SUFFIX__VERSION_1_0;
typedef cl_int(CL_API_CALL* clReleaseCommandQueue_fn)(cl_command_queue /* command_queue */)
CL_API_SUFFIX__VERSION_1_0;
typedef cl_int(CL_API_CALL* clGetCommandQueueInfo_fn)(
cl_command_queue /* command_queue */, cl_command_queue_info /* param_name */,
size_t /* param_value_size */, void* /* param_value */,
size_t* /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0;
typedef cl_int(CL_API_CALL* clSetCommandQueueProperty_fn)(
cl_command_queue /* command_queue */, cl_command_queue_properties /* properties */,
cl_bool /* enable */,
cl_command_queue_properties* /* old_properties */) /*CL_EXT_SUFFIX__VERSION_1_0_DEPRECATED*/;
typedef cl_mem(CL_API_CALL* clCreateBuffer_fn)(
cl_context /* context */, cl_mem_flags /* flags */, size_t /* size */, void* /* host_ptr */,
cl_int* /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;
typedef cl_mem(CL_API_CALL* clCreateSubBuffer_fn)(
cl_mem /* buffer */, cl_mem_flags /* flags */, cl_buffer_create_type /* buffer_create_type */,
const void* /* buffer_create_info */, cl_int* /* errcode_ret */) CL_API_SUFFIX__VERSION_1_1;
typedef cl_mem(CL_API_CALL* clCreateImage2D_fn)(
cl_context /* context */, cl_mem_flags /* flags */, const cl_image_format* /* image_format */,
size_t /* image_width */, size_t /* image_height */, size_t /* image_row_pitch */,
void* /* host_ptr */, cl_int* /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;
typedef cl_mem(CL_API_CALL* clCreateImage3D_fn)(
cl_context /* context */, cl_mem_flags /* flags */, const cl_image_format* /* image_format */,
size_t /* image_width */, size_t /* image_height */, size_t /* image_depth */,
size_t /* image_row_pitch */, size_t /* image_slice_pitch */, void* /* host_ptr */,
cl_int* /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;
typedef cl_int(CL_API_CALL* clRetainMemObject_fn)(cl_mem /* memobj */) CL_API_SUFFIX__VERSION_1_0;
typedef cl_int(CL_API_CALL* clReleaseMemObject_fn)(cl_mem /* memobj */) CL_API_SUFFIX__VERSION_1_0;
typedef cl_int(CL_API_CALL* clGetSupportedImageFormats_fn)(
cl_context /* context */, cl_mem_flags /* flags */, cl_mem_object_type /* image_type */,
cl_uint /* num_entries */, cl_image_format* /* image_formats */,
cl_uint* /* num_image_formats */) CL_API_SUFFIX__VERSION_1_0;
typedef cl_int(CL_API_CALL* clGetMemObjectInfo_fn)(
cl_mem /* memobj */, cl_mem_info /* param_name */, size_t /* param_value_size */,
void* /* param_value */, size_t* /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0;
typedef cl_int(CL_API_CALL* clGetImageInfo_fn)(
cl_mem /* image */, cl_image_info /* param_name */, size_t /* param_value_size */,
void* /* param_value */, size_t* /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0;
typedef cl_int(CL_API_CALL* clSetMemObjectDestructorCallback_fn)(
cl_mem /* memobj */,
void(CL_CALLBACK* /*pfn_notify*/)(cl_mem /* memobj */, void* /*user_data*/),
void* /*user_data */) CL_API_SUFFIX__VERSION_1_1;
/* Sampler APIs */
typedef cl_sampler(CL_API_CALL* clCreateSampler_fn)(
cl_context /* context */, cl_bool /* normalized_coords */,
cl_addressing_mode /* addressing_mode */, cl_filter_mode /* filter_mode */,
cl_int* /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;
typedef cl_int(CL_API_CALL* clRetainSampler_fn)(cl_sampler /* sampler */)
CL_API_SUFFIX__VERSION_1_0;
typedef cl_int(CL_API_CALL* clReleaseSampler_fn)(cl_sampler /* sampler */)
CL_API_SUFFIX__VERSION_1_0;
typedef cl_int(CL_API_CALL* clGetSamplerInfo_fn)(
cl_sampler /* sampler */, cl_sampler_info /* param_name */, size_t /* param_value_size */,
void* /* param_value */, size_t* /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0;
/* Program Object APIs */
typedef cl_program(CL_API_CALL* clCreateProgramWithSource_fn)(
cl_context /* context */, cl_uint /* count */, const char** /* strings */,
const size_t* /* lengths */, cl_int* /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;
extern CL_API_ENTRY cl_program CL_API_CALL
clCreateProgramWithIL(cl_context /* context */,
const void * /* strings */, size_t /* lengths */,
cl_int * /* errcode_ret */) CL_EXT_SUFFIX__VERSION_2_0;
typedef cl_program(CL_API_CALL* clCreateProgramWithILKHR_fn)(
cl_context /* context */, const void* /* il */, size_t /* length */,
cl_int* /* errcode_ret */) CL_API_SUFFIX__VERSION_1_2;
typedef cl_program(CL_API_CALL* clCreateProgramWithBinary_fn)(
cl_context /* context */, cl_uint /* num_devices */, const cl_device_id* /* device_list */,
const size_t* /* lengths */, const unsigned char** /* binaries */, cl_int* /* binary_status */,
cl_int* /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;
typedef cl_int(CL_API_CALL* clRetainProgram_fn)(cl_program /* program */)
CL_API_SUFFIX__VERSION_1_0;
typedef cl_int(CL_API_CALL* clReleaseProgram_fn)(cl_program /* program */)
CL_API_SUFFIX__VERSION_1_0;
typedef cl_int(CL_API_CALL* clBuildProgram_fn)(
cl_program /* program */, cl_uint /* num_devices */, const cl_device_id* /* device_list */,
const char* /* options */,
void(CL_CALLBACK* /* pfn_notify */)(cl_program /* program */, void* /* user_data */),
void* /* user_data */) CL_API_SUFFIX__VERSION_1_0;
typedef cl_int(CL_API_CALL* clUnloadCompiler_fn)(void) CL_API_SUFFIX__VERSION_1_0;
typedef cl_int(CL_API_CALL* clGetProgramInfo_fn)(
cl_program /* program */, cl_program_info /* param_name */, size_t /* param_value_size */,
void* /* param_value */, size_t* /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0;
typedef cl_int(CL_API_CALL* clGetProgramBuildInfo_fn)(
cl_program /* program */, cl_device_id /* device */, cl_program_build_info /* param_name */,
size_t /* param_value_size */, void* /* param_value */,
size_t* /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0;
/* Kernel Object APIs */
typedef cl_kernel(CL_API_CALL* clCreateKernel_fn)(
cl_program /* program */, const char* /* kernel_name */,
cl_int* /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;
typedef cl_int(CL_API_CALL* clCreateKernelsInProgram_fn)(
cl_program /* program */, cl_uint /* num_kernels */, cl_kernel* /* kernels */,
cl_uint* /* num_kernels_ret */) CL_API_SUFFIX__VERSION_1_0;
typedef cl_int(CL_API_CALL* clRetainKernel_fn)(cl_kernel /* kernel */) CL_API_SUFFIX__VERSION_1_0;
typedef cl_int(CL_API_CALL* clReleaseKernel_fn)(cl_kernel /* kernel */) CL_API_SUFFIX__VERSION_1_0;
typedef cl_int(CL_API_CALL* clSetKernelArg_fn)(cl_kernel /* kernel */, cl_uint /* arg_index */,
size_t /* arg_size */, const void* /* arg_value */)
CL_API_SUFFIX__VERSION_1_0;
typedef cl_int(CL_API_CALL* clGetKernelInfo_fn)(
cl_kernel /* kernel */, cl_kernel_info /* param_name */, size_t /* param_value_size */,
void* /* param_value */, size_t* /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0;
typedef cl_int(CL_API_CALL* clGetKernelWorkGroupInfo_fn)(
cl_kernel /* kernel */, cl_device_id /* device */, cl_kernel_work_group_info /* param_name */,
size_t /* param_value_size */, void* /* param_value */,
size_t* /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0;
/* Event Object APIs */
typedef cl_int(CL_API_CALL* clWaitForEvents_fn)(
cl_uint /* num_events */, const cl_event* /* event_list */) CL_API_SUFFIX__VERSION_1_0;
typedef cl_int(CL_API_CALL* clGetEventInfo_fn)(
cl_event /* event */, cl_event_info /* param_name */, size_t /* param_value_size */,
void* /* param_value */, size_t* /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0;
typedef cl_event(CL_API_CALL* clCreateUserEvent_fn)(
cl_context /* context */, cl_int* /* errcode_ret */) CL_API_SUFFIX__VERSION_1_1;
typedef cl_int(CL_API_CALL* clRetainEvent_fn)(cl_event /* event */) CL_API_SUFFIX__VERSION_1_0;
typedef cl_int(CL_API_CALL* clReleaseEvent_fn)(cl_event /* event */) CL_API_SUFFIX__VERSION_1_0;
typedef cl_int(CL_API_CALL* clSetUserEventStatus_fn)(
cl_event /* event */, cl_int /* execution_status */) CL_API_SUFFIX__VERSION_1_1;
typedef cl_int(CL_API_CALL* clSetEventCallback_fn)(
cl_event /* event */, cl_int /* command_exec_callback_type */,
void(CL_CALLBACK* /* pfn_notify */)(cl_event, cl_int, void*),
void* /* user_data */) CL_API_SUFFIX__VERSION_1_1;
/* Profiling APIs */
typedef cl_int(CL_API_CALL* clGetEventProfilingInfo_fn)(
cl_event /* event */, cl_profiling_info /* param_name */, size_t /* param_value_size */,
void* /* param_value */, size_t* /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0;
/* Flush and Finish APIs */
typedef cl_int(CL_API_CALL* clFlush_fn)(cl_command_queue /* command_queue */)
CL_API_SUFFIX__VERSION_1_0;
typedef cl_int(CL_API_CALL* clFinish_fn)(cl_command_queue /* command_queue */)
CL_API_SUFFIX__VERSION_1_0;
/* Enqueued Commands APIs */
typedef cl_int(CL_API_CALL* clEnqueueReadBuffer_fn)(
cl_command_queue /* command_queue */, cl_mem /* buffer */, cl_bool /* blocking_read */,
size_t /* offset */, size_t /* cb */, void* /* ptr */, cl_uint /* num_events_in_wait_list */,
const cl_event* /* event_wait_list */, cl_event* /* event */) CL_API_SUFFIX__VERSION_1_0;
typedef cl_int(CL_API_CALL* clEnqueueReadBufferRect_fn)(
cl_command_queue /* command_queue */, cl_mem /* buffer */, cl_bool /* blocking_read */,
const size_t* /* buffer_offset */, const size_t* /* host_offset */, const size_t* /* region */,
size_t /* buffer_row_pitch */, size_t /* buffer_slice_pitch */, size_t /* host_row_pitch */,
size_t /* host_slice_pitch */, void* /* ptr */, cl_uint /* num_events_in_wait_list */,
const cl_event* /* event_wait_list */, cl_event* /* event */) CL_API_SUFFIX__VERSION_1_1;
typedef cl_int(CL_API_CALL* clEnqueueWriteBuffer_fn)(
cl_command_queue /* command_queue */, cl_mem /* buffer */, cl_bool /* blocking_write */,
size_t /* offset */, size_t /* cb */, const void* /* ptr */,
cl_uint /* num_events_in_wait_list */, const cl_event* /* event_wait_list */,
cl_event* /* event */) CL_API_SUFFIX__VERSION_1_0;
typedef cl_int(CL_API_CALL* clEnqueueWriteBufferRect_fn)(
cl_command_queue /* command_queue */, cl_mem /* buffer */, cl_bool /* blocking_read */,
const size_t* /* buffer_offset */, const size_t* /* host_offset */, const size_t* /* region */,
size_t /* buffer_row_pitch */, size_t /* buffer_slice_pitch */, size_t /* host_row_pitch */,
size_t /* host_slice_pitch */, const void* /* ptr */, cl_uint /* num_events_in_wait_list */,
const cl_event* /* event_wait_list */, cl_event* /* event */) CL_API_SUFFIX__VERSION_1_1;
typedef cl_int(CL_API_CALL* clEnqueueCopyBuffer_fn)(
cl_command_queue /* command_queue */, cl_mem /* src_buffer */, cl_mem /* dst_buffer */,
size_t /* src_offset */, size_t /* dst_offset */, size_t /* cb */,
cl_uint /* num_events_in_wait_list */, const cl_event* /* event_wait_list */,
cl_event* /* event */) CL_API_SUFFIX__VERSION_1_0;
typedef cl_int(CL_API_CALL* clEnqueueCopyBufferRect_fn)(
cl_command_queue /* command_queue */, cl_mem /* src_buffer */, cl_mem /* dst_buffer */,
const size_t* /* src_origin */, const size_t* /* dst_origin */, const size_t* /* region */,
size_t /* src_row_pitch */, size_t /* src_slice_pitch */, size_t /* dst_row_pitch */,
size_t /* dst_slice_pitch */, cl_uint /* num_events_in_wait_list */,
const cl_event* /* event_wait_list */, cl_event* /* event */) CL_API_SUFFIX__VERSION_1_1;
typedef cl_int(CL_API_CALL* clEnqueueReadImage_fn)(
cl_command_queue /* command_queue */, cl_mem /* image */, cl_bool /* blocking_read */,
const size_t* /* origin[3] */, const size_t* /* region[3] */, size_t /* row_pitch */,
size_t /* slice_pitch */, void* /* ptr */, cl_uint /* num_events_in_wait_list */,
const cl_event* /* event_wait_list */, cl_event* /* event */) CL_API_SUFFIX__VERSION_1_0;
typedef cl_int(CL_API_CALL* clEnqueueWriteImage_fn)(
cl_command_queue /* command_queue */, cl_mem /* image */, cl_bool /* blocking_write */,
const size_t* /* origin[3] */, const size_t* /* region[3] */, size_t /* input_row_pitch */,
size_t /* input_slice_pitch */, const void* /* ptr */, cl_uint /* num_events_in_wait_list */,
const cl_event* /* event_wait_list */, cl_event* /* event */) CL_API_SUFFIX__VERSION_1_0;
typedef cl_int(CL_API_CALL* clEnqueueCopyImage_fn)(
cl_command_queue /* command_queue */, cl_mem /* src_image */, cl_mem /* dst_image */,
const size_t* /* src_origin[3] */, const size_t* /* dst_origin[3] */,
const size_t* /* region[3] */, cl_uint /* num_events_in_wait_list */,
const cl_event* /* event_wait_list */, cl_event* /* event */) CL_API_SUFFIX__VERSION_1_0;
typedef cl_int(CL_API_CALL* clEnqueueCopyImageToBuffer_fn)(
cl_command_queue /* command_queue */, cl_mem /* src_image */, cl_mem /* dst_buffer */,
const size_t* /* src_origin[3] */, const size_t* /* region[3] */, size_t /* dst_offset */,
cl_uint /* num_events_in_wait_list */, const cl_event* /* event_wait_list */,
cl_event* /* event */) CL_API_SUFFIX__VERSION_1_0;
typedef cl_int(CL_API_CALL* clEnqueueCopyBufferToImage_fn)(
cl_command_queue /* command_queue */, cl_mem /* src_buffer */, cl_mem /* dst_image */,
size_t /* src_offset */, const size_t* /* dst_origin[3] */, const size_t* /* region[3] */,
cl_uint /* num_events_in_wait_list */, const cl_event* /* event_wait_list */,
cl_event* /* event */) CL_API_SUFFIX__VERSION_1_0;
typedef void*(CL_API_CALL* clEnqueueMapBuffer_fn)(
cl_command_queue /* command_queue */, cl_mem /* buffer */, cl_bool /* blocking_map */,
cl_map_flags /* map_flags */, size_t /* offset */, size_t /* cb */,
cl_uint /* num_events_in_wait_list */, const cl_event* /* event_wait_list */,
cl_event* /* event */, cl_int* /* errcode_ret */)CL_API_SUFFIX__VERSION_1_0;
typedef void*(CL_API_CALL* clEnqueueMapImage_fn)(
cl_command_queue /* command_queue */, cl_mem /* image */, cl_bool /* blocking_map */,
cl_map_flags /* map_flags */, const size_t* /* origin[3] */, const size_t* /* region[3] */,
size_t* /* image_row_pitch */, size_t* /* image_slice_pitch */,
cl_uint /* num_events_in_wait_list */, const cl_event* /* event_wait_list */,
cl_event* /* event */, cl_int* /* errcode_ret */)CL_API_SUFFIX__VERSION_1_0;
typedef cl_int(CL_API_CALL* clEnqueueUnmapMemObject_fn)(
cl_command_queue /* command_queue */, cl_mem /* memobj */, void* /* mapped_ptr */,
cl_uint /* num_events_in_wait_list */, const cl_event* /* event_wait_list */,
cl_event* /* event */) CL_API_SUFFIX__VERSION_1_0;
typedef cl_int(CL_API_CALL* clEnqueueNDRangeKernel_fn)(
cl_command_queue /* command_queue */, cl_kernel /* kernel */, cl_uint /* work_dim */,
const size_t* /* global_work_offset */, const size_t* /* global_work_size */,
const size_t* /* local_work_size */, cl_uint /* num_events_in_wait_list */,
const cl_event* /* event_wait_list */, cl_event* /* event */) CL_API_SUFFIX__VERSION_1_0;
typedef cl_int(CL_API_CALL* clEnqueueTask_fn)(cl_command_queue /* command_queue */,
cl_kernel /* kernel */,
cl_uint /* num_events_in_wait_list */,
const cl_event* /* event_wait_list */,
cl_event* /* event */) CL_API_SUFFIX__VERSION_1_0;
typedef cl_int(CL_API_CALL* clEnqueueNativeKernel_fn)(
cl_command_queue /* command_queue */, void(CL_CALLBACK* user_func)(void*), void* /* args */,
size_t /* cb_args */, cl_uint /* num_mem_objects */, const cl_mem* /* mem_list */,
const void** /* args_mem_loc */, cl_uint /* num_events_in_wait_list */,
const cl_event* /* event_wait_list */, cl_event* /* event */) CL_API_SUFFIX__VERSION_1_0;
typedef cl_int(CL_API_CALL* clEnqueueMarker_fn)(cl_command_queue /* command_queue */,
cl_event* /* event */) CL_API_SUFFIX__VERSION_1_0;
typedef cl_int(CL_API_CALL* clEnqueueWaitForEvents_fn)(
cl_command_queue /* command_queue */, cl_uint /* num_events */,
const cl_event* /* event_list */) CL_API_SUFFIX__VERSION_1_0;
typedef cl_int(CL_API_CALL* clEnqueueBarrier_fn)(cl_command_queue /* command_queue */)
CL_API_SUFFIX__VERSION_1_0;
typedef void*(CL_API_CALL* clGetExtensionFunctionAddress_fn)(const char* /* func_name */)
CL_API_SUFFIX__VERSION_1_0;
typedef cl_mem(CL_API_CALL* clCreateFromGLBuffer_fn)(
cl_context /* context */, cl_mem_flags /* flags */, cl_GLuint /* bufobj */,
int* /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;
typedef cl_mem(CL_API_CALL* clCreateFromGLTexture2D_fn)(
cl_context /* context */, cl_mem_flags /* flags */, cl_GLenum /* target */,
cl_GLint /* miplevel */, cl_GLuint /* texture */,
cl_int* /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;
typedef cl_mem(CL_API_CALL* clCreateFromGLTexture3D_fn)(
cl_context /* context */, cl_mem_flags /* flags */, cl_GLenum /* target */,
cl_GLint /* miplevel */, cl_GLuint /* texture */,
cl_int* /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;
typedef cl_mem(CL_API_CALL* clCreateFromGLRenderbuffer_fn)(
cl_context /* context */, cl_mem_flags /* flags */, cl_GLuint /* renderbuffer */,
cl_int* /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;
typedef cl_int(CL_API_CALL* clGetGLObjectInfo_fn)(
cl_mem /* memobj */, cl_gl_object_type* /* gl_object_type */,
cl_GLuint* /* gl_object_name */) CL_API_SUFFIX__VERSION_1_0;
typedef cl_int(CL_API_CALL* clGetGLTextureInfo_fn)(
cl_mem /* memobj */, cl_gl_texture_info /* param_name */, size_t /* param_value_size */,
void* /* param_value */, size_t* /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0;
typedef cl_event(CL_API_CALL* clCreateEventFromGLsyncKHR_fn)(
cl_context /* context */, cl_GLsync /* cl_GLsync */,
cl_int* /* errcode_ret */) CL_API_SUFFIX__VERSION_1_1;
typedef cl_int(CL_API_CALL* clEnqueueAcquireGLObjects_fn)(
cl_command_queue /* command_queue */, cl_uint /* num_objects */,
const cl_mem* /* mem_objects */, cl_uint /* num_events_in_wait_list */,
const cl_event* /* event_wait_list */, cl_event* /* event */) CL_API_SUFFIX__VERSION_1_0;
typedef cl_int(CL_API_CALL* clEnqueueReleaseGLObjects_fn)(
cl_command_queue /* command_queue */, cl_uint /* num_objects */,
const cl_mem* /* mem_objects */, cl_uint /* num_events_in_wait_list */,
const cl_event* /* event_wait_list */, cl_event* /* event */) CL_API_SUFFIX__VERSION_1_0;
typedef cl_int(CL_API_CALL* clCreateSubDevices_fn)(
cl_device_id /* in_device */, const cl_device_partition_property* /* properties */,
cl_uint /* num_entries */, cl_device_id* /* out_devices */,
cl_uint* /* num_devices */) CL_API_SUFFIX__VERSION_1_2;
typedef cl_int(CL_API_CALL* clRetainDevice_fn)(cl_device_id /* device */)
CL_API_SUFFIX__VERSION_1_2;
typedef cl_int(CL_API_CALL* clReleaseDevice_fn)(cl_device_id /* device */)
CL_API_SUFFIX__VERSION_1_2;
typedef cl_mem(CL_API_CALL* clCreateImage_fn)(cl_context /* context */, cl_mem_flags /* flags */,
const cl_image_format* /* image_format*/,
const cl_image_desc* /* image_desc*/,
void* /* host_ptr */,
cl_int* /* errcode_ret */) CL_API_SUFFIX__VERSION_1_2;
typedef cl_program(CL_API_CALL* clCreateProgramWithBuiltInKernels_fn)(
cl_context /* context */, cl_uint /* num_devices */, const cl_device_id* /* device_list */,
const char* /* kernel_names */, cl_int* /* errcode_ret */) CL_API_SUFFIX__VERSION_1_2;
typedef cl_int(CL_API_CALL* clCompileProgram_fn)(
cl_program /* program */, cl_uint /* num_devices */, const cl_device_id* /* device_list */,
const char* /* options */, cl_uint /* num_input_headers */,
const cl_program* /* input_headers */, const char** /* header_include_names */,
void(CL_CALLBACK* pfn_notify)(cl_program program, void* user_data),
void* /* user_data */) CL_API_SUFFIX__VERSION_1_2;
typedef cl_program(CL_API_CALL* clLinkProgram_fn)(
cl_context /* context */, cl_uint /* num_devices */, const cl_device_id* /* device_list */,
const char* /* options */, cl_uint /* num_input_programs */,
const cl_program* /* input_programs */,
void(CL_CALLBACK* pfn_notify)(cl_program program, void* user_data), void* /* user_data */,
cl_int* /* errcode_ret */) CL_API_SUFFIX__VERSION_1_2;
typedef cl_int(CL_API_CALL* clUnloadPlatformCompiler_fn)(cl_platform_id /* platform */)
CL_API_SUFFIX__VERSION_1_2;
typedef cl_int(CL_API_CALL* clGetKernelArgInfo_fn)(
cl_kernel /* kernel */, cl_uint /* arg_indx */, cl_kernel_arg_info /* param_name */,
size_t /* param_value_size */, void* /* param_value */,
size_t* /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_2;
typedef cl_int(CL_API_CALL* clEnqueueFillBuffer_fn)(
cl_command_queue /* command_queue */, cl_mem /* buffer */, const void* /* pattern */,
size_t /* pattern_size */, size_t /* offset */, size_t /* size */,
cl_uint /* num_events_in_wait_list */, const cl_event* /* event_wait_list */,
cl_event* /* event */) CL_API_SUFFIX__VERSION_1_2;
typedef cl_int(CL_API_CALL* clEnqueueFillImage_fn)(
cl_command_queue /* command_queue */, cl_mem /* image */, const void* /* fill_color */,
const size_t* /* origin */, const size_t* /* region */, cl_uint /* num_events_in_wait_list */,
const cl_event* /* event_wait_list */, cl_event* /* event */) CL_API_SUFFIX__VERSION_1_2;
typedef cl_int(CL_API_CALL* clEnqueueMigrateMemObjects_fn)(
cl_command_queue /* command_queue */, cl_uint /* num_mem_objects */,
const cl_mem* /* mem_objects */, cl_mem_migration_flags /* flags */,
cl_uint /* num_events_in_wait_list */, const cl_event* /* event_wait_list */,
cl_event* /* event */) CL_API_SUFFIX__VERSION_1_2;
typedef cl_int(CL_API_CALL* clEnqueueMarkerWithWaitList_fn)(
cl_command_queue /* command_queue */, cl_uint /* num_events_in_wait_list */,
const cl_event* /* event_wait_list */, cl_event* /* event */) CL_API_SUFFIX__VERSION_1_2;
typedef cl_int(CL_API_CALL* clEnqueueBarrierWithWaitList_fn)(
cl_command_queue /* command_queue */, cl_uint /* num_events_in_wait_list */,
const cl_event* /* event_wait_list */, cl_event* /* event */) CL_API_SUFFIX__VERSION_1_2;
typedef void*(CL_API_CALL* clGetExtensionFunctionAddressForPlatform_fn)(
cl_platform_id /* platform */, const char* /* funcname */)CL_API_SUFFIX__VERSION_1_2;
typedef cl_mem(CL_API_CALL* clCreateFromGLTexture_fn)(
cl_context /* context */, cl_mem_flags /* flags */, cl_GLenum /* texture_target */,
cl_GLint /* miplevel */, cl_GLuint /* texture */,
cl_int* /* errcode_ret */) CL_API_SUFFIX__VERSION_1_2;
typedef cl_command_queue(CL_API_CALL* clCreateCommandQueueWithProperties_fn)(
cl_context /* context */, cl_device_id /* device */,
const cl_queue_properties* /* properties */,
cl_int* /* errcode_ret */) CL_API_SUFFIX__VERSION_2_0;
typedef cl_sampler(CL_API_CALL* clCreateSamplerWithProperties_fn)(
cl_context /* context */, const cl_sampler_properties* /* properties */,
cl_int* /* errcode_ret */) CL_API_SUFFIX__VERSION_2_0;
typedef void*(CL_API_CALL* clSVMAlloc_fn)(cl_context /* context */, cl_svm_mem_flags /* flags */,
size_t /* size */,
cl_uint /* alignment */)CL_API_SUFFIX__VERSION_2_0;
typedef void(CL_API_CALL* clSVMFree_fn)(cl_context /* context */,
void* /* svm_pointer */) CL_API_SUFFIX__VERSION_2_0;
typedef cl_int(CL_API_CALL* clSetKernelArgSVMPointer_fn)(
cl_kernel /* kernel */, cl_uint /* arg_index */,
const void* /* arg_value */) CL_API_SUFFIX__VERSION_2_0;
typedef cl_int(CL_API_CALL* clSetKernelExecInfo_fn)(
cl_kernel /* kernel */, cl_kernel_exec_info /* param_name */, size_t /* param_value_size */,
const void* /* param_value */) CL_API_SUFFIX__VERSION_2_0;
typedef cl_int(CL_API_CALL* clEnqueueSVMFree_fn)(
cl_command_queue /* command_queue */, cl_uint /* num_svm_pointers */,
void* [] /* svm_pointers */,
void(CL_CALLBACK* /* pfn_free_func */)(cl_command_queue /* queue */,
cl_uint /* num_svm_pointers */,
void* [] /* svm_pointers */, void* /* user_data */),
void* /* user_data */, cl_uint /* num_events_in_wait_list */,
const cl_event* /* event_wait_list */, cl_event* /* event */) CL_API_SUFFIX__VERSION_2_0;
typedef cl_int(CL_API_CALL* clEnqueueSVMMemcpy_fn)(
cl_command_queue /* command_queue */, cl_bool /* blocking_copy */, void* /* dst_ptr */,
const void* /* src_ptr */, size_t /* size */, cl_uint /* num_events_in_wait_list */,
const cl_event* /* event_wait_list */, cl_event* /* event */) CL_API_SUFFIX__VERSION_2_0;
typedef cl_int(CL_API_CALL* clEnqueueSVMMemFill_fn)(
cl_command_queue /* command_queue */, void* /* svm_ptr */, const void* /* pattern */,
size_t /* pattern_size */, size_t /* size */, cl_uint /* num_events_in_wait_list */,
const cl_event* /* event_wait_list */, cl_event* /* event */) CL_API_SUFFIX__VERSION_2_0;
typedef cl_int(CL_API_CALL* clEnqueueSVMMap_fn)(
cl_command_queue /* command_queue */, cl_bool /* blocking_map */, cl_map_flags /* flags */,
void* /* svm_ptr */, size_t /* size */, cl_uint /* num_events_in_wait_list */,
const cl_event* /* event_wait_list */, cl_event* /* event */) CL_API_SUFFIX__VERSION_2_0;
typedef cl_int(CL_API_CALL* clEnqueueSVMUnmap_fn)(cl_command_queue /* command_queue */,
void* /* svm_ptr */,
cl_uint /* num_events_in_wait_list */,
const cl_event* /* event_wait_list */,
cl_event* /* event */) CL_API_SUFFIX__VERSION_2_0;
typedef cl_mem(CL_API_CALL* clCreatePipe_fn)(cl_context /* context */, cl_mem_flags /* flags */,
cl_uint /* pipe_packet_size */,
cl_uint /* pipe_max_packets */,
const cl_pipe_properties* /* properties */,
cl_int* /* errcode_ret */) CL_API_SUFFIX__VERSION_2_0;
typedef cl_int(CL_API_CALL* clGetPipeInfo_fn)(
cl_mem /* pipe */, cl_pipe_info /* param_name */, size_t /* param_value_size */,
void* /* param_value */, size_t* /* param_value_size_ret */) CL_API_SUFFIX__VERSION_2_0;
typedef cl_int(CL_API_CALL* clGetKernelSubGroupInfoKHR_fn)(
cl_kernel /* kernel */, cl_device_id /* device */, cl_kernel_sub_group_info /* param_name */,
size_t /* input_value_size */, const void* /* input_value */, size_t /* param_value_size */,
void* /* param_value */, size_t* /* param_value_size_ret */) CL_API_SUFFIX__VERSION_2_0;
typedef cl_int(CL_API_CALL* clSetDefaultDeviceCommandQueue_fn)(
cl_context /* context */, cl_device_id /* device */,
cl_command_queue /* command_queue */) CL_API_SUFFIX__VERSION_2_1;
typedef cl_kernel(CL_API_CALL* clCloneKernel_fn)(
cl_kernel /* source_kernel */, cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_2_1;
typedef cl_int (CL_API_CALL* clEnqueueSVMMigrateMem_fn)(
cl_command_queue /* command_queue */, cl_uint /* num_svm_pointers */,
const void ** /* svm_pointers */, const size_t * /* sizes */,
cl_mem_migration_flags /* flags */, cl_uint /* num_events_in_wait_list */,
const cl_event * /* event_wait_list */, cl_event * /* event */) CL_API_SUFFIX__VERSION_2_1;
typedef cl_int (CL_API_CALL* clGetDeviceAndHostTimer_fn)(
cl_device_id /* device */, cl_ulong * /* device_timestamp */,
cl_ulong * /* host_timestamp */) CL_API_SUFFIX__VERSION_2_1;
typedef cl_int (CL_API_CALL* clGetHostTimer_fn)(
cl_device_id /* device */, cl_ulong * /* host_timestamp */) CL_API_SUFFIX__VERSION_2_1;
typedef cl_int (CL_API_CALL* clSetProgramSpecializationConstant_fn)(
cl_program /* program */, cl_uint /* spec_id */, size_t /* spec_size */,
const void* /* spec_value */) CL_API_SUFFIX__VERSION_2_2;
typedef cl_int (CL_API_CALL* clSetProgramReleaseCallback_fn)(
cl_program /* program */,
void (CL_CALLBACK * /* pfn_notify */)(cl_program program, void * user_data),
void * /* user_data */) CL_API_SUFFIX__VERSION_2_2;
typedef struct _cl_icd_dispatch_table {
/* OpenCL 1.0 */
clGetPlatformIDs_fn GetPlatformIDs;
clGetPlatformInfo_fn GetPlatformInfo;
clGetDeviceIDs_fn GetDeviceIDs;
clGetDeviceInfo_fn GetDeviceInfo;
clCreateContext_fn CreateContext;
clCreateContextFromType_fn CreateContextFromType;
clRetainContext_fn RetainContext;
clReleaseContext_fn ReleaseContext;
clGetContextInfo_fn GetContextInfo;
clCreateCommandQueue_fn CreateCommandQueue;
clRetainCommandQueue_fn RetainCommandQueue;
clReleaseCommandQueue_fn ReleaseCommandQueue;
clGetCommandQueueInfo_fn GetCommandQueueInfo;
clSetCommandQueueProperty_fn SetCommandQueueProperty;
clCreateBuffer_fn CreateBuffer;
clCreateImage2D_fn CreateImage2D;
clCreateImage3D_fn CreateImage3D;
clRetainMemObject_fn RetainMemObject;
clReleaseMemObject_fn ReleaseMemObject;
clGetSupportedImageFormats_fn GetSupportedImageFormats;
clGetMemObjectInfo_fn GetMemObjectInfo;
clGetImageInfo_fn GetImageInfo;
clCreateSampler_fn CreateSampler;
clRetainSampler_fn RetainSampler;
clReleaseSampler_fn ReleaseSampler;
clGetSamplerInfo_fn GetSamplerInfo;
clCreateProgramWithSource_fn CreateProgramWithSource;
clCreateProgramWithBinary_fn CreateProgramWithBinary;
clRetainProgram_fn RetainProgram;
clReleaseProgram_fn ReleaseProgram;
clBuildProgram_fn BuildProgram;
clUnloadCompiler_fn UnloadCompiler;
clGetProgramInfo_fn GetProgramInfo;
clGetProgramBuildInfo_fn GetProgramBuildInfo;
clCreateKernel_fn CreateKernel;
clCreateKernelsInProgram_fn CreateKernelsInProgram;
clRetainKernel_fn RetainKernel;
clReleaseKernel_fn ReleaseKernel;
clSetKernelArg_fn SetKernelArg;
clGetKernelInfo_fn GetKernelInfo;
clGetKernelWorkGroupInfo_fn GetKernelWorkGroupInfo;
clWaitForEvents_fn WaitForEvents;
clGetEventInfo_fn GetEventInfo;
clRetainEvent_fn RetainEvent;
clReleaseEvent_fn ReleaseEvent;
clGetEventProfilingInfo_fn GetEventProfilingInfo;
clFlush_fn Flush;
clFinish_fn Finish;
clEnqueueReadBuffer_fn EnqueueReadBuffer;
clEnqueueWriteBuffer_fn EnqueueWriteBuffer;
clEnqueueCopyBuffer_fn EnqueueCopyBuffer;
clEnqueueReadImage_fn EnqueueReadImage;
clEnqueueWriteImage_fn EnqueueWriteImage;
clEnqueueCopyImage_fn EnqueueCopyImage;
clEnqueueCopyImageToBuffer_fn EnqueueCopyImageToBuffer;
clEnqueueCopyBufferToImage_fn EnqueueCopyBufferToImage;
clEnqueueMapBuffer_fn EnqueueMapBuffer;
clEnqueueMapImage_fn EnqueueMapImage;
clEnqueueUnmapMemObject_fn EnqueueUnmapMemObject;
clEnqueueNDRangeKernel_fn EnqueueNDRangeKernel;
clEnqueueTask_fn EnqueueTask;
clEnqueueNativeKernel_fn EnqueueNativeKernel;
clEnqueueMarker_fn EnqueueMarker;
clEnqueueWaitForEvents_fn EnqueueWaitForEvents;
clEnqueueBarrier_fn EnqueueBarrier;
clGetExtensionFunctionAddress_fn GetExtensionFunctionAddress;
clCreateFromGLBuffer_fn CreateFromGLBuffer;
clCreateFromGLTexture2D_fn CreateFromGLTexture2D;
clCreateFromGLTexture3D_fn CreateFromGLTexture3D;
clCreateFromGLRenderbuffer_fn CreateFromGLRenderbuffer;
clGetGLObjectInfo_fn GetGLObjectInfo;
clGetGLTextureInfo_fn GetGLTextureInfo;
clEnqueueAcquireGLObjects_fn EnqueueAcquireGLObjects;
clEnqueueReleaseGLObjects_fn EnqueueReleaseGLObjects;
clGetGLContextInfoKHR_fn GetGLContextInfoKHR;
void* _reservedForD3D10KHR[6];
/* OpenCL 1.1 */
clSetEventCallback_fn SetEventCallback;
clCreateSubBuffer_fn CreateSubBuffer;
clSetMemObjectDestructorCallback_fn SetMemObjectDestructorCallback;
clCreateUserEvent_fn CreateUserEvent;
clSetUserEventStatus_fn SetUserEventStatus;
clEnqueueReadBufferRect_fn EnqueueReadBufferRect;
clEnqueueWriteBufferRect_fn EnqueueWriteBufferRect;
clEnqueueCopyBufferRect_fn EnqueueCopyBufferRect;
void* _reservedForDeviceFissionEXT[3];
clCreateEventFromGLsyncKHR_fn CreateEventFromGLsyncKHR;
/* OpenCL 1.2 */
clCreateSubDevices_fn CreateSubDevices;
clRetainDevice_fn RetainDevice;
clReleaseDevice_fn ReleaseDevice;
clCreateImage_fn CreateImage;
clCreateProgramWithBuiltInKernels_fn CreateProgramWithBuiltInKernels;
clCompileProgram_fn CompileProgram;
clLinkProgram_fn LinkProgram;
clUnloadPlatformCompiler_fn UnloadPlatformCompiler;
clGetKernelArgInfo_fn GetKernelArgInfo;
clEnqueueFillBuffer_fn EnqueueFillBuffer;
clEnqueueFillImage_fn EnqueueFillImage;
clEnqueueMigrateMemObjects_fn EnqueueMigrateMemObjects;
clEnqueueMarkerWithWaitList_fn EnqueueMarkerWithWaitList;
clEnqueueBarrierWithWaitList_fn EnqueueBarrierWithWaitList;
clGetExtensionFunctionAddressForPlatform_fn GetExtensionFunctionAddressForPlatform;
clCreateFromGLTexture_fn CreateFromGLTexture;
/* cl_khr_d3d11_sharing, cl_khr_dx9_media_sharing */
void* _reservedD3DExtensions[10];
/* cl_khr_egl_image, cl_khr_egl_event */
void* _reservedEGLExtensions[4];
/* OpenCL 2.0 */
clCreateCommandQueueWithProperties_fn CreateCommandQueueWithProperties;
clCreatePipe_fn CreatePipe;
clGetPipeInfo_fn GetPipeInfo;
clSVMAlloc_fn SVMAlloc;
clSVMFree_fn SVMFree;
clEnqueueSVMFree_fn EnqueueSVMFree;
clEnqueueSVMMemcpy_fn EnqueueSVMMemcpy;
clEnqueueSVMMemFill_fn EnqueueSVMMemFill;
clEnqueueSVMMap_fn EnqueueSVMMap;
clEnqueueSVMUnmap_fn EnqueueSVMUnmap;
clCreateSamplerWithProperties_fn CreateSamplerWithProperties;
clSetKernelArgSVMPointer_fn SetKernelArgSVMPointer;
clSetKernelExecInfo_fn SetKernelExecInfo;
/* cl_khr_sub_groups */
clGetKernelSubGroupInfoKHR_fn clGetKernelSubGroupInfoKHR;
/* OpenCL 2.1 */
clCloneKernel_fn clCloneKernel;
clCreateProgramWithILKHR_fn clCreateProgramWithIL;
clEnqueueSVMMigrateMem_fn clEnqueueSVMMigrateMem;
clGetDeviceAndHostTimer_fn clGetDeviceAndHostTimer;
clGetHostTimer_fn clGetHostTimer;
clGetKernelSubGroupInfoKHR_fn clGetKernelSubGroupInfo;
clSetDefaultDeviceCommandQueue_fn clSetDefaultDeviceCommandQueue;
/* OpenCL 2.2 */
clSetProgramReleaseCallback_fn clSetProgramReleaseCallback;
clSetProgramSpecializationConstant_fn clSetProgramSpecializationConstant;
} cl_icd_dispatch_table;
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* __OPENCL_CL_ICD_H */