Newton Dynamics  4.00
cl_icd.h
1 /*******************************************************************************
2  * Copyright (c) 2019-2020 The Khronos Group Inc.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  ******************************************************************************/
16 
17 #ifndef OPENCL_CL_ICD_H
18 #define OPENCL_CL_ICD_H
19 
20 #include <CL/cl.h>
21 #include <CL/cl_egl.h>
22 #include <CL/cl_ext.h>
23 #include <CL/cl_gl.h>
24 
25 #if defined(_WIN32)
26 #include <CL/cl_d3d11.h>
27 #include <CL/cl_d3d10.h>
28 #include <CL/cl_dx9_media_sharing.h>
29 #endif
30 
31 #ifdef __cplusplus
32 extern "C" {
33 #endif
34 
35 /*
36  * This file contains pointer type definitions for each of the CL API calls as
37  * well as a type definition for the dispatch table used by the Khronos ICD
38  * loader (see cl_khr_icd extension specification for background).
39  */
40 
41 /* API function pointer definitions */
42 
43 // Platform APIs
44 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clGetPlatformIDs)(
45  cl_uint num_entries, cl_platform_id *platforms,
46  cl_uint *num_platforms) CL_API_SUFFIX__VERSION_1_0;
47 
48 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clGetPlatformInfo)(
49  cl_platform_id platform, cl_platform_info param_name,
50  size_t param_value_size, void *param_value,
51  size_t *param_value_size_ret) CL_API_SUFFIX__VERSION_1_0;
52 
53 // Device APIs
54 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clGetDeviceIDs)(
55  cl_platform_id platform, cl_device_type device_type, cl_uint num_entries,
56  cl_device_id *devices, cl_uint *num_devices) CL_API_SUFFIX__VERSION_1_0;
57 
58 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clGetDeviceInfo)(
59  cl_device_id device, cl_device_info param_name, size_t param_value_size,
60  void *param_value, size_t *param_value_size_ret) CL_API_SUFFIX__VERSION_1_0;
61 
62 #ifdef CL_VERSION_1_2
63 
64 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clCreateSubDevices)(
65  cl_device_id in_device,
66  const cl_device_partition_property *partition_properties,
67  cl_uint num_entries, cl_device_id *out_devices, cl_uint *num_devices);
68 
69 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clRetainDevice)(
70  cl_device_id device) CL_API_SUFFIX__VERSION_1_2;
71 
72 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clReleaseDevice)(
73  cl_device_id device) CL_API_SUFFIX__VERSION_1_2;
74 
75 #else
76 
77 typedef void *cl_api_clCreateSubDevices;
78 typedef void *cl_api_clRetainDevice;
79 typedef void *cl_api_clReleaseDevice;
80 
81 #endif
82 
83 // Context APIs
84 typedef CL_API_ENTRY cl_context(CL_API_CALL *cl_api_clCreateContext)(
85  const cl_context_properties *properties, cl_uint num_devices,
86  const cl_device_id *devices,
87  void(CL_CALLBACK *pfn_notify)(const char *, const void *, size_t, void *),
88  void *user_data, cl_int *errcode_ret) CL_API_SUFFIX__VERSION_1_0;
89 
90 typedef CL_API_ENTRY cl_context(CL_API_CALL *cl_api_clCreateContextFromType)(
91  const cl_context_properties *properties, cl_device_type device_type,
92  void(CL_CALLBACK *pfn_notify)(const char *, const void *, size_t, void *),
93  void *user_data, cl_int *errcode_ret) CL_API_SUFFIX__VERSION_1_0;
94 
95 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clRetainContext)(
96  cl_context context) CL_API_SUFFIX__VERSION_1_0;
97 
98 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clReleaseContext)(
99  cl_context context) CL_API_SUFFIX__VERSION_1_0;
100 
101 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clGetContextInfo)(
102  cl_context context, cl_context_info param_name, size_t param_value_size,
103  void *param_value, size_t *param_value_size_ret) CL_API_SUFFIX__VERSION_1_0;
104 
105 // Command Queue APIs
106 typedef CL_API_ENTRY cl_command_queue(CL_API_CALL *cl_api_clCreateCommandQueue)(
107  cl_context context, cl_device_id device,
108  cl_command_queue_properties properties,
109  cl_int *errcode_ret) CL_API_SUFFIX__VERSION_1_0;
110 
111 #ifdef CL_VERSION_2_0
112 
113 typedef CL_API_ENTRY
114 cl_command_queue(CL_API_CALL *cl_api_clCreateCommandQueueWithProperties)(
115  cl_context /* context */, cl_device_id /* device */,
116  const cl_queue_properties * /* properties */,
117  cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_2_0;
118 
119 #else
120 
121 typedef void *cl_api_clCreateCommandQueueWithProperties;
122 
123 #endif
124 
125 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clRetainCommandQueue)(
126  cl_command_queue command_queue) CL_API_SUFFIX__VERSION_1_0;
127 
128 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clReleaseCommandQueue)(
129  cl_command_queue command_queue) CL_API_SUFFIX__VERSION_1_0;
130 
131 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clGetCommandQueueInfo)(
132  cl_command_queue command_queue, cl_command_queue_info param_name,
133  size_t param_value_size, void *param_value,
134  size_t *param_value_size_ret) CL_API_SUFFIX__VERSION_1_0;
135 
136 // Memory Object APIs
137 typedef CL_API_ENTRY cl_mem(CL_API_CALL *cl_api_clCreateBuffer)(
138  cl_context context, cl_mem_flags flags, size_t size, void *host_ptr,
139  cl_int *errcode_ret) CL_API_SUFFIX__VERSION_1_0;
140 
141 #ifdef CL_VERSION_1_2
142 
143 typedef CL_API_ENTRY cl_mem(CL_API_CALL *cl_api_clCreateImage)(
144  cl_context context, cl_mem_flags flags, const cl_image_format *image_format,
145  const cl_image_desc *image_desc, void *host_ptr,
146  cl_int *errcode_ret) CL_API_SUFFIX__VERSION_1_2;
147 
148 #else
149 
150 typedef void *cl_api_clCreateImage;
151 
152 #endif
153 
154 #ifdef CL_VERSION_3_0
155 
156 typedef CL_API_ENTRY cl_mem(CL_API_CALL *cl_api_clCreateBufferWithProperties)(
157  cl_context context, const cl_mem_properties *properties, cl_mem_flags flags,
158  size_t size, void *host_ptr,
159  cl_int *errcode_ret) CL_API_SUFFIX__VERSION_3_0;
160 
161 typedef CL_API_ENTRY cl_mem(CL_API_CALL *cl_api_clCreateImageWithProperties)(
162  cl_context context, const cl_mem_properties *properties, cl_mem_flags flags,
163  const cl_image_format *image_format, const cl_image_desc *image_desc,
164  void *host_ptr, cl_int *errcode_ret) CL_API_SUFFIX__VERSION_3_0;
165 
166 typedef CL_API_ENTRY cl_int(CL_API_CALL* cl_api_clSetContextDestructorCallback)(
167  cl_context context,
168  void(CL_CALLBACK* pfn_notify)(cl_context context, void* user_data),
169  void* user_data) CL_API_SUFFIX__VERSION_3_0;
170 
171 #else
172 
173 typedef void *cl_api_clCreateBufferWithProperties;
174 typedef void *cl_api_clCreateImageWithProperties;
175 typedef void *cl_api_clSetContextDestructorCallback;
176 
177 #endif
178 
179 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clRetainMemObject)(
180  cl_mem memobj) CL_API_SUFFIX__VERSION_1_0;
181 
182 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clReleaseMemObject)(
183  cl_mem memobj) CL_API_SUFFIX__VERSION_1_0;
184 
185 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clGetSupportedImageFormats)(
186  cl_context context, cl_mem_flags flags, cl_mem_object_type image_type,
187  cl_uint num_entries, cl_image_format *image_formats,
188  cl_uint *num_image_formats) CL_API_SUFFIX__VERSION_1_0;
189 
190 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clGetMemObjectInfo)(
191  cl_mem memobj, cl_mem_info param_name, size_t param_value_size,
192  void *param_value, size_t *param_value_size_ret) CL_API_SUFFIX__VERSION_1_0;
193 
194 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clGetImageInfo)(
195  cl_mem image, cl_image_info param_name, size_t param_value_size,
196  void *param_value, size_t *param_value_size_ret) CL_API_SUFFIX__VERSION_1_0;
197 
198 #ifdef CL_VERSION_2_0
199 
200 typedef CL_API_ENTRY cl_mem(CL_API_CALL *cl_api_clCreatePipe)(
201  cl_context /* context */, cl_mem_flags /* flags */,
202  cl_uint /* pipe_packet_size */, cl_uint /* pipe_max_packets */,
203  const cl_pipe_properties * /* properties */,
204  cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_2_0;
205 
206 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clGetPipeInfo)(
207  cl_mem /* pipe */, cl_pipe_info /* param_name */,
208  size_t /* param_value_size */, void * /* param_value */,
209  size_t * /* param_value_size_ret */) CL_API_SUFFIX__VERSION_2_0;
210 
211 typedef CL_API_ENTRY void *(CL_API_CALL *cl_api_clSVMAlloc)(
212  cl_context /* context */, cl_svm_mem_flags /* flags */, size_t /* size */,
213  unsigned int /* alignment */)CL_API_SUFFIX__VERSION_2_0;
214 
215 typedef CL_API_ENTRY void(CL_API_CALL *cl_api_clSVMFree)(
216  cl_context /* context */,
217  void * /* svm_pointer */) CL_API_SUFFIX__VERSION_2_0;
218 
219 #else
220 
221 typedef void *cl_api_clCreatePipe;
222 typedef void *cl_api_clGetPipeInfo;
223 typedef void *cl_api_clSVMAlloc;
224 typedef void *cl_api_clSVMFree;
225 
226 #endif
227 
228 // Sampler APIs
229 typedef CL_API_ENTRY cl_sampler(CL_API_CALL *cl_api_clCreateSampler)(
230  cl_context context, cl_bool normalized_coords,
231  cl_addressing_mode addressing_mode, cl_filter_mode filter_mode,
232  cl_int *errcode_ret) CL_API_SUFFIX__VERSION_1_0;
233 
234 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clRetainSampler)(
235  cl_sampler sampler) CL_API_SUFFIX__VERSION_1_0;
236 
237 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clReleaseSampler)(
238  cl_sampler sampler) CL_API_SUFFIX__VERSION_1_0;
239 
240 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clGetSamplerInfo)(
241  cl_sampler sampler, cl_sampler_info param_name, size_t param_value_size,
242  void *param_value, size_t *param_value_size_ret) CL_API_SUFFIX__VERSION_1_0;
243 
244 #ifdef CL_VERSION_2_0
245 
246 typedef CL_API_ENTRY
247 cl_sampler(CL_API_CALL *cl_api_clCreateSamplerWithProperties)(
248  cl_context /* context */,
249  const cl_sampler_properties * /* sampler_properties */,
250  cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_2_0;
251 
252 #else
253 
254 typedef void *cl_api_clCreateSamplerWithProperties;
255 
256 #endif
257 
258 // Program Object APIs
259 typedef CL_API_ENTRY cl_program(CL_API_CALL *cl_api_clCreateProgramWithSource)(
260  cl_context context, cl_uint count, const char **strings,
261  const size_t *lengths, cl_int *errcode_ret) CL_API_SUFFIX__VERSION_1_0;
262 
263 typedef CL_API_ENTRY cl_program(CL_API_CALL *cl_api_clCreateProgramWithBinary)(
264  cl_context context, cl_uint num_devices, const cl_device_id *device_list,
265  const size_t *lengths, const unsigned char **binaries,
266  cl_int *binary_status, cl_int *errcode_ret) CL_API_SUFFIX__VERSION_1_0;
267 
268 #ifdef CL_VERSION_1_2
269 
270 typedef CL_API_ENTRY
271 cl_program(CL_API_CALL *cl_api_clCreateProgramWithBuiltInKernels)(
272  cl_context context, cl_uint num_devices, const cl_device_id *device_list,
273  const char *kernel_names, cl_int *errcode_ret) CL_API_SUFFIX__VERSION_1_2;
274 
275 #else
276 
277 typedef void *cl_api_clCreateProgramWithBuiltInKernels;
278 
279 #endif
280 
281 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clRetainProgram)(
282  cl_program program) CL_API_SUFFIX__VERSION_1_0;
283 
284 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clReleaseProgram)(
285  cl_program program) CL_API_SUFFIX__VERSION_1_0;
286 
287 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clBuildProgram)(
288  cl_program program, cl_uint num_devices, const cl_device_id *device_list,
289  const char *options,
290  void(CL_CALLBACK *pfn_notify)(cl_program program, void *user_data),
291  void *user_data) CL_API_SUFFIX__VERSION_1_0;
292 
293 #ifdef CL_VERSION_1_2
294 
295 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clCompileProgram)(
296  cl_program program, cl_uint num_devices, const cl_device_id *device_list,
297  const char *options, cl_uint num_input_headers,
298  const cl_program *input_headers, const char **header_include_names,
299  void(CL_CALLBACK *pfn_notify)(cl_program program, void *user_data),
300  void *user_data) CL_API_SUFFIX__VERSION_1_2;
301 
302 typedef CL_API_ENTRY cl_program(CL_API_CALL *cl_api_clLinkProgram)(
303  cl_context context, cl_uint num_devices, const cl_device_id *device_list,
304  const char *options, cl_uint num_input_programs,
305  const cl_program *input_programs,
306  void(CL_CALLBACK *pfn_notify)(cl_program program, void *user_data),
307  void *user_data, cl_int *errcode_ret) CL_API_SUFFIX__VERSION_1_2;
308 
309 #else
310 
311 typedef void *cl_api_clCompileProgram;
312 typedef void *cl_api_clLinkProgram;
313 
314 #endif
315 
316 #ifdef CL_VERSION_2_2
317 
318 typedef CL_API_ENTRY
319 cl_int(CL_API_CALL *cl_api_clSetProgramSpecializationConstant)(
320  cl_program program, cl_uint spec_id, size_t spec_size,
321  const void *spec_value) CL_API_SUFFIX__VERSION_2_2;
322 
323 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clSetProgramReleaseCallback)(
324  cl_program program,
325  void(CL_CALLBACK *pfn_notify)(cl_program program, void *user_data),
326  void *user_data) CL_API_SUFFIX__VERSION_2_2;
327 
328 #else
329 
330 typedef void *cl_api_clSetProgramSpecializationConstant;
331 typedef void *cl_api_clSetProgramReleaseCallback;
332 
333 #endif
334 
335 #ifdef CL_VERSION_1_2
336 
337 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clUnloadPlatformCompiler)(
338  cl_platform_id platform) CL_API_SUFFIX__VERSION_1_2;
339 
340 #else
341 
342 typedef void *cl_api_clUnloadPlatformCompiler;
343 
344 #endif
345 
346 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clGetProgramInfo)(
347  cl_program program, cl_program_info param_name, size_t param_value_size,
348  void *param_value, size_t *param_value_size_ret) CL_API_SUFFIX__VERSION_1_0;
349 
350 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clGetProgramBuildInfo)(
351  cl_program program, cl_device_id device, cl_program_build_info param_name,
352  size_t param_value_size, void *param_value,
353  size_t *param_value_size_ret) CL_API_SUFFIX__VERSION_1_0;
354 
355 // Kernel Object APIs
356 typedef CL_API_ENTRY cl_kernel(CL_API_CALL *cl_api_clCreateKernel)(
357  cl_program program, const char *kernel_name,
358  cl_int *errcode_ret) CL_API_SUFFIX__VERSION_1_0;
359 
360 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clCreateKernelsInProgram)(
361  cl_program program, cl_uint num_kernels, cl_kernel *kernels,
362  cl_uint *num_kernels_ret) CL_API_SUFFIX__VERSION_1_0;
363 
364 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clRetainKernel)(
365  cl_kernel kernel) CL_API_SUFFIX__VERSION_1_0;
366 
367 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clReleaseKernel)(
368  cl_kernel kernel) CL_API_SUFFIX__VERSION_1_0;
369 
370 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clSetKernelArg)(
371  cl_kernel kernel, cl_uint arg_index, size_t arg_size,
372  const void *arg_value) CL_API_SUFFIX__VERSION_1_0;
373 
374 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clGetKernelInfo)(
375  cl_kernel kernel, cl_kernel_info param_name, size_t param_value_size,
376  void *param_value, size_t *param_value_size_ret) CL_API_SUFFIX__VERSION_1_0;
377 
378 #ifdef CL_VERSION_1_2
379 
380 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clGetKernelArgInfo)(
381  cl_kernel kernel, cl_uint arg_indx, cl_kernel_arg_info param_name,
382  size_t param_value_size, void *param_value,
383  size_t *param_value_size_ret) CL_API_SUFFIX__VERSION_1_2;
384 
385 #else
386 
387 typedef void *cl_api_clGetKernelArgInfo;
388 
389 #endif
390 
391 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clGetKernelWorkGroupInfo)(
392  cl_kernel kernel, cl_device_id device, cl_kernel_work_group_info param_name,
393  size_t param_value_size, void *param_value,
394  size_t *param_value_size_ret) CL_API_SUFFIX__VERSION_1_0;
395 
396 #ifdef CL_VERSION_2_0
397 
398 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clSetKernelArgSVMPointer)(
399  cl_kernel /* kernel */, cl_uint /* arg_index */,
400  const void * /* arg_value */) CL_API_SUFFIX__VERSION_2_0;
401 
402 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clSetKernelExecInfo)(
403  cl_kernel /* kernel */, cl_kernel_exec_info /* param_name */,
404  size_t /* param_value_size */,
405  const void * /* param_value */) CL_API_SUFFIX__VERSION_2_0;
406 
407 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clGetKernelSubGroupInfoKHR)(
408  cl_kernel /* in_kernel */, cl_device_id /*in_device*/,
409  cl_kernel_sub_group_info /* param_name */, size_t /*input_value_size*/,
410  const void * /*input_value*/, size_t /*param_value_size*/,
411  void * /*param_value*/,
412  size_t * /*param_value_size_ret*/) CL_API_SUFFIX__VERSION_2_0;
413 
414 #else
415 
416 typedef void *cl_api_clSetKernelArgSVMPointer;
417 typedef void *cl_api_clSetKernelExecInfo;
418 typedef void *cl_api_clGetKernelSubGroupInfoKHR;
419 
420 #endif
421 
422 // Event Object APIs
423 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clWaitForEvents)(
424  cl_uint num_events, const cl_event *event_list) CL_API_SUFFIX__VERSION_1_0;
425 
426 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clGetEventInfo)(
427  cl_event event, cl_event_info param_name, size_t param_value_size,
428  void *param_value, size_t *param_value_size_ret) CL_API_SUFFIX__VERSION_1_0;
429 
430 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clRetainEvent)(cl_event event)
431  CL_API_SUFFIX__VERSION_1_0;
432 
433 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clReleaseEvent)(cl_event event)
434  CL_API_SUFFIX__VERSION_1_0;
435 
436 // Profiling APIs
437 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clGetEventProfilingInfo)(
438  cl_event event, cl_profiling_info param_name, size_t param_value_size,
439  void *param_value, size_t *param_value_size_ret) CL_API_SUFFIX__VERSION_1_0;
440 
441 // Flush and Finish APIs
442 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clFlush)(
443  cl_command_queue command_queue) CL_API_SUFFIX__VERSION_1_0;
444 
445 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clFinish)(
446  cl_command_queue command_queue) CL_API_SUFFIX__VERSION_1_0;
447 
448 // Enqueued Commands APIs
449 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clEnqueueReadBuffer)(
450  cl_command_queue command_queue, cl_mem buffer, cl_bool blocking_read,
451  size_t offset, size_t cb, void *ptr, cl_uint num_events_in_wait_list,
452  const cl_event *event_wait_list,
453  cl_event *event) CL_API_SUFFIX__VERSION_1_0;
454 
455 #ifdef CL_VERSION_1_1
456 
457 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clEnqueueReadBufferRect)(
458  cl_command_queue command_queue, cl_mem buffer, cl_bool blocking_read,
459  const size_t *buffer_origin, const size_t *host_origin,
460  const size_t *region, size_t buffer_row_pitch, size_t buffer_slice_pitch,
461  size_t host_row_pitch, size_t host_slice_pitch, void *ptr,
462  cl_uint num_events_in_wait_list, const cl_event *event_wait_list,
463  cl_event *event) CL_API_SUFFIX__VERSION_1_1;
464 
465 #else
466 
467 typedef void *cl_api_clEnqueueReadBufferRect;
468 
469 #endif
470 
471 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clEnqueueWriteBuffer)(
472  cl_command_queue command_queue, cl_mem buffer, cl_bool blocking_write,
473  size_t offset, size_t cb, const void *ptr, cl_uint num_events_in_wait_list,
474  const cl_event *event_wait_list,
475  cl_event *event) CL_API_SUFFIX__VERSION_1_0;
476 
477 #ifdef CL_VERSION_1_1
478 
479 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clEnqueueWriteBufferRect)(
480  cl_command_queue command_queue, cl_mem buffer, cl_bool blocking_read,
481  const size_t *buffer_origin, const size_t *host_origin,
482  const size_t *region, size_t buffer_row_pitch, size_t buffer_slice_pitch,
483  size_t host_row_pitch, size_t host_slice_pitch, const void *ptr,
484  cl_uint num_events_in_wait_list, const cl_event *event_wait_list,
485  cl_event *event) CL_API_SUFFIX__VERSION_1_1;
486 
487 #else
488 
489 typedef void *cl_api_clEnqueueWriteBufferRect;
490 
491 #endif
492 
493 #ifdef CL_VERSION_1_2
494 
495 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clEnqueueFillBuffer)(
496  cl_command_queue command_queue, cl_mem buffer, const void *pattern,
497  size_t pattern_size, size_t offset, size_t cb,
498  cl_uint num_events_in_wait_list, const cl_event *event_wait_list,
499  cl_event *event) CL_API_SUFFIX__VERSION_1_2;
500 
501 #else
502 
503 typedef void *cl_api_clEnqueueFillBuffer;
504 
505 #endif
506 
507 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clEnqueueCopyBuffer)(
508  cl_command_queue command_queue, cl_mem src_buffer, cl_mem dst_buffer,
509  size_t src_offset, size_t dst_offset, size_t cb,
510  cl_uint num_events_in_wait_list, const cl_event *event_wait_list,
511  cl_event *event) CL_API_SUFFIX__VERSION_1_0;
512 
513 #ifdef CL_VERSION_1_1
514 
515 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clEnqueueCopyBufferRect)(
516  cl_command_queue command_queue, cl_mem src_buffer, cl_mem dst_buffer,
517  const size_t *src_origin, const size_t *dst_origin, const size_t *region,
518  size_t src_row_pitch, size_t src_slice_pitch, size_t dst_row_pitch,
519  size_t dst_slice_pitch, cl_uint num_events_in_wait_list,
520  const cl_event *event_wait_list,
521  cl_event *event) CL_API_SUFFIX__VERSION_1_1;
522 
523 #else
524 
525 typedef void *cl_api_clEnqueueCopyBufferRect;
526 
527 #endif
528 
529 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clEnqueueReadImage)(
530  cl_command_queue command_queue, cl_mem image, cl_bool blocking_read,
531  const size_t *origin, const size_t *region, size_t row_pitch,
532  size_t slice_pitch, void *ptr, cl_uint num_events_in_wait_list,
533  const cl_event *event_wait_list,
534  cl_event *event) CL_API_SUFFIX__VERSION_1_0;
535 
536 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clEnqueueWriteImage)(
537  cl_command_queue command_queue, cl_mem image, cl_bool blocking_write,
538  const size_t *origin, const size_t *region, size_t input_row_pitch,
539  size_t input_slice_pitch, const void *ptr, cl_uint num_events_in_wait_list,
540  const cl_event *event_wait_list,
541  cl_event *event) CL_API_SUFFIX__VERSION_1_0;
542 
543 #ifdef CL_VERSION_1_2
544 
545 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clEnqueueFillImage)(
546  cl_command_queue command_queue, cl_mem image, const void *fill_color,
547  const size_t origin[3], const size_t region[3],
548  cl_uint num_events_in_wait_list, const cl_event *event_wait_list,
549  cl_event *event) CL_API_SUFFIX__VERSION_1_2;
550 
551 #else
552 
553 typedef void *cl_api_clEnqueueFillImage;
554 
555 #endif
556 
557 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clEnqueueCopyImage)(
558  cl_command_queue command_queue, cl_mem src_image, cl_mem dst_image,
559  const size_t *src_origin, const size_t *dst_origin, const size_t *region,
560  cl_uint num_events_in_wait_list, const cl_event *event_wait_list,
561  cl_event *event) CL_API_SUFFIX__VERSION_1_0;
562 
563 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clEnqueueCopyImageToBuffer)(
564  cl_command_queue command_queue, cl_mem src_image, cl_mem dst_buffer,
565  const size_t *src_origin, const size_t *region, size_t dst_offset,
566  cl_uint num_events_in_wait_list, const cl_event *event_wait_list,
567  cl_event *event) CL_API_SUFFIX__VERSION_1_0;
568 
569 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clEnqueueCopyBufferToImage)(
570  cl_command_queue command_queue, cl_mem src_buffer, cl_mem dst_image,
571  size_t src_offset, const size_t *dst_origin, const size_t *region,
572  cl_uint num_events_in_wait_list, const cl_event *event_wait_list,
573  cl_event *event) CL_API_SUFFIX__VERSION_1_0;
574 
575 typedef CL_API_ENTRY void *(CL_API_CALL *cl_api_clEnqueueMapBuffer)(
576  cl_command_queue command_queue, cl_mem buffer, cl_bool blocking_map,
577  cl_map_flags map_flags, size_t offset, size_t cb,
578  cl_uint num_events_in_wait_list, const cl_event *event_wait_list,
579  cl_event *event, cl_int *errcode_ret)CL_API_SUFFIX__VERSION_1_0;
580 
581 typedef CL_API_ENTRY void *(CL_API_CALL *cl_api_clEnqueueMapImage)(
582  cl_command_queue command_queue, cl_mem image, cl_bool blocking_map,
583  cl_map_flags map_flags, const size_t *origin, const size_t *region,
584  size_t *image_row_pitch, size_t *image_slice_pitch,
585  cl_uint num_events_in_wait_list, const cl_event *event_wait_list,
586  cl_event *event, cl_int *errcode_ret)CL_API_SUFFIX__VERSION_1_0;
587 
588 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clEnqueueUnmapMemObject)(
589  cl_command_queue command_queue, cl_mem memobj, void *mapped_ptr,
590  cl_uint num_events_in_wait_list, const cl_event *event_wait_list,
591  cl_event *event) CL_API_SUFFIX__VERSION_1_0;
592 
593 #ifdef CL_VERSION_1_2
594 
595 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clEnqueueMigrateMemObjects)(
596  cl_command_queue command_queue, cl_uint num_mem_objects,
597  const cl_mem *mem_objects, cl_mem_migration_flags flags,
598  cl_uint num_events_in_wait_list, const cl_event *event_wait_list,
599  cl_event *event) CL_API_SUFFIX__VERSION_1_2;
600 
601 #else
602 
603 typedef void *cl_api_clEnqueueMigrateMemObjects;
604 
605 #endif
606 
607 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clEnqueueNDRangeKernel)(
608  cl_command_queue command_queue, cl_kernel kernel, cl_uint work_dim,
609  const size_t *global_work_offset, const size_t *global_work_size,
610  const size_t *local_work_size, cl_uint num_events_in_wait_list,
611  const cl_event *event_wait_list,
612  cl_event *event) CL_API_SUFFIX__VERSION_1_0;
613 
614 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clEnqueueTask)(
615  cl_command_queue command_queue, cl_kernel kernel,
616  cl_uint num_events_in_wait_list, const cl_event *event_wait_list,
617  cl_event *event) CL_API_SUFFIX__VERSION_1_0;
618 
619 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clEnqueueNativeKernel)(
620  cl_command_queue command_queue, void(CL_CALLBACK *user_func)(void *),
621  void *args, size_t cb_args, cl_uint num_mem_objects, const cl_mem *mem_list,
622  const void **args_mem_loc, cl_uint num_events_in_wait_list,
623  const cl_event *event_wait_list,
624  cl_event *event) CL_API_SUFFIX__VERSION_1_0;
625 
626 #ifdef CL_VERSION_1_2
627 
628 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clEnqueueMarkerWithWaitList)(
629  cl_command_queue command_queue, cl_uint num_events_in_wait_list,
630  const cl_event *event_wait_list,
631  cl_event *event) CL_API_SUFFIX__VERSION_1_2;
632 
633 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clEnqueueBarrierWithWaitList)(
634  cl_command_queue command_queue, cl_uint num_events_in_wait_list,
635  const cl_event *event_wait_list,
636  cl_event *event) CL_API_SUFFIX__VERSION_1_2;
637 
638 typedef CL_API_ENTRY void *(
639  CL_API_CALL *cl_api_clGetExtensionFunctionAddressForPlatform)(
640  cl_platform_id platform,
641  const char *function_name)CL_API_SUFFIX__VERSION_1_2;
642 
643 #else
644 
645 typedef void *cl_api_clEnqueueMarkerWithWaitList;
646 typedef void *cl_api_clEnqueueBarrierWithWaitList;
647 typedef void *cl_api_clGetExtensionFunctionAddressForPlatform;
648 
649 #endif
650 
651 // Shared Virtual Memory APIs
652 
653 #ifdef CL_VERSION_2_0
654 
655 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clEnqueueSVMFree)(
656  cl_command_queue /* command_queue */, cl_uint /* num_svm_pointers */,
657  void ** /* svm_pointers */,
658  void(CL_CALLBACK *pfn_free_func)(cl_command_queue /* queue */,
659  cl_uint /* num_svm_pointers */,
660  void ** /* svm_pointers[] */,
661  void * /* user_data */),
662  void * /* user_data */, cl_uint /* num_events_in_wait_list */,
663  const cl_event * /* event_wait_list */,
664  cl_event * /* event */) CL_API_SUFFIX__VERSION_2_0;
665 
666 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clEnqueueSVMMemcpy)(
667  cl_command_queue /* command_queue */, cl_bool /* blocking_copy */,
668  void * /* dst_ptr */, const void * /* src_ptr */, size_t /* size */,
669  cl_uint /* num_events_in_wait_list */,
670  const cl_event * /* event_wait_list */,
671  cl_event * /* event */) CL_API_SUFFIX__VERSION_2_0;
672 
673 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clEnqueueSVMMemFill)(
674  cl_command_queue /* command_queue */, void * /* svm_ptr */,
675  const void * /* pattern */, size_t /* pattern_size */, size_t /* size */,
676  cl_uint /* num_events_in_wait_list */,
677  const cl_event * /* event_wait_list */,
678  cl_event * /* event */) CL_API_SUFFIX__VERSION_2_0;
679 
680 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clEnqueueSVMMap)(
681  cl_command_queue /* command_queue */, cl_bool /* blocking_map */,
682  cl_map_flags /* map_flags */, void * /* svm_ptr */, size_t /* size */,
683  cl_uint /* num_events_in_wait_list */,
684  const cl_event * /* event_wait_list */,
685  cl_event * /* event */) CL_API_SUFFIX__VERSION_2_0;
686 
687 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clEnqueueSVMUnmap)(
688  cl_command_queue /* command_queue */, void * /* svm_ptr */,
689  cl_uint /* num_events_in_wait_list */,
690  const cl_event * /* event_wait_list */,
691  cl_event * /* event */) CL_API_SUFFIX__VERSION_2_0;
692 
693 #else
694 
695 typedef void *cl_api_clEnqueueSVMFree;
696 typedef void *cl_api_clEnqueueSVMMemcpy;
697 typedef void *cl_api_clEnqueueSVMMemFill;
698 typedef void *cl_api_clEnqueueSVMMap;
699 typedef void *cl_api_clEnqueueSVMUnmap;
700 
701 #endif
702 
703 // Deprecated APIs
704 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clSetCommandQueueProperty)(
705  cl_command_queue command_queue, cl_command_queue_properties properties,
706  cl_bool enable, cl_command_queue_properties *old_properties)
707  CL_API_SUFFIX__VERSION_1_0_DEPRECATED;
708 
709 typedef CL_API_ENTRY cl_mem(CL_API_CALL *cl_api_clCreateImage2D)(
710  cl_context context, cl_mem_flags flags, const cl_image_format *image_format,
711  size_t image_width, size_t image_height, size_t image_row_pitch,
712  void *host_ptr, cl_int *errcode_ret) CL_API_SUFFIX__VERSION_1_1_DEPRECATED;
713 
714 typedef CL_API_ENTRY cl_mem(CL_API_CALL *cl_api_clCreateImage3D)(
715  cl_context context, cl_mem_flags flags, const cl_image_format *image_format,
716  size_t image_width, size_t image_height, size_t image_depth,
717  size_t image_row_pitch, size_t image_slice_pitch, void *host_ptr,
718  cl_int *errcode_ret) CL_API_SUFFIX__VERSION_1_1_DEPRECATED;
719 
720 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clUnloadCompiler)(void)
721  CL_API_SUFFIX__VERSION_1_1_DEPRECATED;
722 
723 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clEnqueueMarker)(
724  cl_command_queue command_queue,
725  cl_event *event) CL_API_SUFFIX__VERSION_1_1_DEPRECATED;
726 
727 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clEnqueueWaitForEvents)(
728  cl_command_queue command_queue, cl_uint num_events,
729  const cl_event *event_list) CL_API_SUFFIX__VERSION_1_1_DEPRECATED;
730 
731 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clEnqueueBarrier)(
732  cl_command_queue command_queue) CL_API_SUFFIX__VERSION_1_1_DEPRECATED;
733 
734 typedef CL_API_ENTRY void *(CL_API_CALL *cl_api_clGetExtensionFunctionAddress)(
735  const char *function_name)CL_API_SUFFIX__VERSION_1_1_DEPRECATED;
736 
737 // GL and other APIs
738 typedef CL_API_ENTRY cl_mem(CL_API_CALL *cl_api_clCreateFromGLBuffer)(
739  cl_context context, cl_mem_flags flags, cl_GLuint bufobj,
740  int *errcode_ret) CL_API_SUFFIX__VERSION_1_0;
741 
742 typedef CL_API_ENTRY cl_mem(CL_API_CALL *cl_api_clCreateFromGLTexture)(
743  cl_context context, cl_mem_flags flags, cl_GLenum target, cl_GLint miplevel,
744  cl_GLuint texture, cl_int *errcode_ret) CL_API_SUFFIX__VERSION_1_2;
745 
746 typedef CL_API_ENTRY cl_mem(CL_API_CALL *cl_api_clCreateFromGLTexture2D)(
747  cl_context context, cl_mem_flags flags, cl_GLenum target, cl_GLint miplevel,
748  cl_GLuint texture, cl_int *errcode_ret) CL_API_SUFFIX__VERSION_1_0;
749 
750 typedef CL_API_ENTRY cl_mem(CL_API_CALL *cl_api_clCreateFromGLTexture3D)(
751  cl_context context, cl_mem_flags flags, cl_GLenum target, cl_GLint miplevel,
752  cl_GLuint texture, cl_int *errcode_ret) CL_API_SUFFIX__VERSION_1_0;
753 
754 typedef CL_API_ENTRY cl_mem(CL_API_CALL *cl_api_clCreateFromGLRenderbuffer)(
755  cl_context context, cl_mem_flags flags, cl_GLuint renderbuffer,
756  cl_int *errcode_ret) CL_API_SUFFIX__VERSION_1_0;
757 
758 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clGetGLObjectInfo)(
759  cl_mem memobj, cl_gl_object_type *gl_object_type,
760  cl_GLuint *gl_object_name) CL_API_SUFFIX__VERSION_1_0;
761 
762 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clGetGLTextureInfo)(
763  cl_mem memobj, cl_gl_texture_info param_name, size_t param_value_size,
764  void *param_value, size_t *param_value_size_ret) CL_API_SUFFIX__VERSION_1_0;
765 
766 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clEnqueueAcquireGLObjects)(
767  cl_command_queue command_queue, cl_uint num_objects,
768  const cl_mem *mem_objects, cl_uint num_events_in_wait_list,
769  const cl_event *event_wait_list,
770  cl_event *event) CL_API_SUFFIX__VERSION_1_0;
771 
772 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clEnqueueReleaseGLObjects)(
773  cl_command_queue command_queue, cl_uint num_objects,
774  const cl_mem *mem_objects, cl_uint num_events_in_wait_list,
775  const cl_event *event_wait_list,
776  cl_event *event) CL_API_SUFFIX__VERSION_1_0;
777 
778 /* cl_khr_gl_sharing */
779 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clGetGLContextInfoKHR)(
780  const cl_context_properties *properties, cl_gl_context_info param_name,
781  size_t param_value_size, void *param_value, size_t *param_value_size_ret);
782 
783 /* cl_khr_gl_event */
784 typedef CL_API_ENTRY cl_event(CL_API_CALL *cl_api_clCreateEventFromGLsyncKHR)(
785  cl_context context, cl_GLsync sync, cl_int *errcode_ret);
786 
787 #if defined(_WIN32)
788 
789 /* cl_khr_d3d10_sharing */
790 
791 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clGetDeviceIDsFromD3D10KHR)(
792  cl_platform_id platform, cl_d3d10_device_source_khr d3d_device_source,
793  void *d3d_object, cl_d3d10_device_set_khr d3d_device_set,
794  cl_uint num_entries, cl_device_id *devices,
795  cl_uint *num_devices) CL_API_SUFFIX__VERSION_1_0;
796 
797 typedef CL_API_ENTRY cl_mem(CL_API_CALL *cl_api_clCreateFromD3D10BufferKHR)(
798  cl_context context, cl_mem_flags flags, ID3D10Buffer *resource,
799  cl_int *errcode_ret) CL_API_SUFFIX__VERSION_1_0;
800 
801 typedef CL_API_ENTRY cl_mem(CL_API_CALL *cl_api_clCreateFromD3D10Texture2DKHR)(
802  cl_context context, cl_mem_flags flags, ID3D10Texture2D *resource,
803  UINT subresource, cl_int *errcode_ret) CL_API_SUFFIX__VERSION_1_0;
804 
805 typedef CL_API_ENTRY cl_mem(CL_API_CALL *cl_api_clCreateFromD3D10Texture3DKHR)(
806  cl_context context, cl_mem_flags flags, ID3D10Texture3D *resource,
807  UINT subresource, cl_int *errcode_ret) CL_API_SUFFIX__VERSION_1_0;
808 
809 typedef CL_API_ENTRY
810 cl_int(CL_API_CALL *cl_api_clEnqueueAcquireD3D10ObjectsKHR)(
811  cl_command_queue command_queue, cl_uint num_objects,
812  const cl_mem *mem_objects, cl_uint num_events_in_wait_list,
813  const cl_event *event_wait_list,
814  cl_event *event) CL_API_SUFFIX__VERSION_1_0;
815 
816 typedef CL_API_ENTRY
817 cl_int(CL_API_CALL *cl_api_clEnqueueReleaseD3D10ObjectsKHR)(
818  cl_command_queue command_queue, cl_uint num_objects,
819  const cl_mem *mem_objects, cl_uint num_events_in_wait_list,
820  const cl_event *event_wait_list,
821  cl_event *event) CL_API_SUFFIX__VERSION_1_0;
822 
823 extern CL_API_ENTRY cl_int CL_API_CALL clGetDeviceIDsFromD3D10KHR(
824  cl_platform_id platform, cl_d3d10_device_source_khr d3d_device_source,
825  void *d3d_object, cl_d3d10_device_set_khr d3d_device_set,
826  cl_uint num_entries, cl_device_id *devices, cl_uint *num_devices);
827 
828 extern CL_API_ENTRY cl_mem CL_API_CALL
829 clCreateFromD3D10BufferKHR(cl_context context, cl_mem_flags flags,
830  ID3D10Buffer *resource, cl_int *errcode_ret);
831 
832 extern CL_API_ENTRY cl_mem CL_API_CALL clCreateFromD3D10Texture2DKHR(
833  cl_context context, cl_mem_flags flags, ID3D10Texture2D *resource,
834  UINT subresource, cl_int *errcode_ret);
835 
836 extern CL_API_ENTRY cl_mem CL_API_CALL clCreateFromD3D10Texture3DKHR(
837  cl_context context, cl_mem_flags flags, ID3D10Texture3D *resource,
838  UINT subresource, cl_int *errcode_ret);
839 
840 extern CL_API_ENTRY cl_int CL_API_CALL clEnqueueAcquireD3D10ObjectsKHR(
841  cl_command_queue command_queue, cl_uint num_objects,
842  const cl_mem *mem_objects, cl_uint num_events_in_wait_list,
843  const cl_event *event_wait_list, cl_event *event);
844 
845 extern CL_API_ENTRY cl_int CL_API_CALL clEnqueueReleaseD3D10ObjectsKHR(
846  cl_command_queue command_queue, cl_uint num_objects,
847  const cl_mem *mem_objects, cl_uint num_events_in_wait_list,
848  const cl_event *event_wait_list, cl_event *event);
849 
850 /* cl_khr_d3d11_sharing */
851 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clGetDeviceIDsFromD3D11KHR)(
852  cl_platform_id platform, cl_d3d11_device_source_khr d3d_device_source,
853  void *d3d_object, cl_d3d11_device_set_khr d3d_device_set,
854  cl_uint num_entries, cl_device_id *devices,
855  cl_uint *num_devices) CL_API_SUFFIX__VERSION_1_2;
856 
857 typedef CL_API_ENTRY cl_mem(CL_API_CALL *cl_api_clCreateFromD3D11BufferKHR)(
858  cl_context context, cl_mem_flags flags, ID3D11Buffer *resource,
859  cl_int *errcode_ret) CL_API_SUFFIX__VERSION_1_2;
860 
861 typedef CL_API_ENTRY cl_mem(CL_API_CALL *cl_api_clCreateFromD3D11Texture2DKHR)(
862  cl_context context, cl_mem_flags flags, ID3D11Texture2D *resource,
863  UINT subresource, cl_int *errcode_ret) CL_API_SUFFIX__VERSION_1_2;
864 
865 typedef CL_API_ENTRY cl_mem(CL_API_CALL *cl_api_clCreateFromD3D11Texture3DKHR)(
866  cl_context context, cl_mem_flags flags, ID3D11Texture3D *resource,
867  UINT subresource, cl_int *errcode_ret) CL_API_SUFFIX__VERSION_1_2;
868 
869 typedef CL_API_ENTRY
870 cl_int(CL_API_CALL *cl_api_clEnqueueAcquireD3D11ObjectsKHR)(
871  cl_command_queue command_queue, cl_uint num_objects,
872  const cl_mem *mem_objects, cl_uint num_events_in_wait_list,
873  const cl_event *event_wait_list,
874  cl_event *event) CL_API_SUFFIX__VERSION_1_2;
875 
876 typedef CL_API_ENTRY
877 cl_int(CL_API_CALL *cl_api_clEnqueueReleaseD3D11ObjectsKHR)(
878  cl_command_queue command_queue, cl_uint num_objects,
879  const cl_mem *mem_objects, cl_uint num_events_in_wait_list,
880  const cl_event *event_wait_list,
881  cl_event *event) CL_API_SUFFIX__VERSION_1_2;
882 
883 /* cl_khr_dx9_media_sharing */
884 typedef CL_API_ENTRY
885 cl_int(CL_API_CALL *cl_api_clGetDeviceIDsFromDX9MediaAdapterKHR)(
886  cl_platform_id platform, cl_uint num_media_adapters,
887  cl_dx9_media_adapter_type_khr *media_adapters_type, void *media_adapters,
888  cl_dx9_media_adapter_set_khr media_adapter_set, cl_uint num_entries,
889  cl_device_id *devices, cl_uint *num_devices) CL_API_SUFFIX__VERSION_1_2;
890 
891 typedef CL_API_ENTRY cl_mem(CL_API_CALL *cl_api_clCreateFromDX9MediaSurfaceKHR)(
892  cl_context context, cl_mem_flags flags,
893  cl_dx9_media_adapter_type_khr adapter_type, void *surface_info,
894  cl_uint plane, cl_int *errcode_ret) CL_API_SUFFIX__VERSION_1_2;
895 
896 typedef CL_API_ENTRY
897 cl_int(CL_API_CALL *cl_api_clEnqueueAcquireDX9MediaSurfacesKHR)(
898  cl_command_queue command_queue, cl_uint num_objects,
899  const cl_mem *mem_objects, cl_uint num_events_in_wait_list,
900  const cl_event *event_wait_list,
901  cl_event *event) CL_API_SUFFIX__VERSION_1_2;
902 
903 typedef CL_API_ENTRY
904 cl_int(CL_API_CALL *cl_api_clEnqueueReleaseDX9MediaSurfacesKHR)(
905  cl_command_queue command_queue, cl_uint num_objects,
906  const cl_mem *mem_objects, cl_uint num_events_in_wait_list,
907  const cl_event *event_wait_list,
908  cl_event *event) CL_API_SUFFIX__VERSION_1_2;
909 
910 /* cl_khr_d3d11_sharing */
911 extern CL_API_ENTRY cl_int CL_API_CALL clGetDeviceIDsFromD3D11KHR(
912  cl_platform_id platform, cl_d3d11_device_source_khr d3d_device_source,
913  void *d3d_object, cl_d3d11_device_set_khr d3d_device_set,
914  cl_uint num_entries, cl_device_id *devices, cl_uint *num_devices);
915 
916 extern CL_API_ENTRY cl_mem CL_API_CALL
917 clCreateFromD3D11BufferKHR(cl_context context, cl_mem_flags flags,
918  ID3D11Buffer *resource, cl_int *errcode_ret);
919 
920 extern CL_API_ENTRY cl_mem CL_API_CALL clCreateFromD3D11Texture2DKHR(
921  cl_context context, cl_mem_flags flags, ID3D11Texture2D *resource,
922  UINT subresource, cl_int *errcode_ret);
923 
924 extern CL_API_ENTRY cl_mem CL_API_CALL clCreateFromD3D11Texture3DKHR(
925  cl_context context, cl_mem_flags flags, ID3D11Texture3D *resource,
926  UINT subresource, cl_int *errcode_ret);
927 
928 extern CL_API_ENTRY cl_int CL_API_CALL clEnqueueAcquireD3D11ObjectsKHR(
929  cl_command_queue command_queue, cl_uint num_objects,
930  const cl_mem *mem_objects, cl_uint num_events_in_wait_list,
931  const cl_event *event_wait_list, cl_event *event);
932 
933 extern CL_API_ENTRY cl_int CL_API_CALL clEnqueueReleaseD3D11ObjectsKHR(
934  cl_command_queue command_queue, cl_uint num_objects,
935  const cl_mem *mem_objects, cl_uint num_events_in_wait_list,
936  const cl_event *event_wait_list, cl_event *event);
937 
938 /* cl_khr_dx9_media_sharing */
939 extern CL_API_ENTRY cl_int CL_API_CALL clGetDeviceIDsFromDX9MediaAdapterKHR(
940  cl_platform_id platform, cl_uint num_media_adapters,
941  cl_dx9_media_adapter_type_khr *media_adapter_type, void *media_adapters,
942  cl_dx9_media_adapter_set_khr media_adapter_set, cl_uint num_entries,
943  cl_device_id *devices, cl_uint *num_devices);
944 
945 extern CL_API_ENTRY cl_mem CL_API_CALL clCreateFromDX9MediaSurfaceKHR(
946  cl_context context, cl_mem_flags flags,
947  cl_dx9_media_adapter_type_khr adapter_type, void *surface_info,
948  cl_uint plane, cl_int *errcode_ret);
949 
950 extern CL_API_ENTRY cl_int CL_API_CALL clEnqueueAcquireDX9MediaSurfacesKHR(
951  cl_command_queue command_queue, cl_uint num_objects,
952  const cl_mem *mem_objects, cl_uint num_events_in_wait_list,
953  const cl_event *event_wait_list, cl_event *event);
954 
955 extern CL_API_ENTRY cl_int CL_API_CALL clEnqueueReleaseDX9MediaSurfacesKHR(
956  cl_command_queue command_queue, cl_uint num_objects,
957  const cl_mem *mem_objects, cl_uint num_events_in_wait_list,
958  const cl_event *event_wait_list, cl_event *event);
959 
960 #else
961 
962 /* cl_khr_d3d10_sharing */
963 typedef void *cl_api_clGetDeviceIDsFromD3D10KHR;
964 typedef void *cl_api_clCreateFromD3D10BufferKHR;
965 typedef void *cl_api_clCreateFromD3D10Texture2DKHR;
966 typedef void *cl_api_clCreateFromD3D10Texture3DKHR;
967 typedef void *cl_api_clEnqueueAcquireD3D10ObjectsKHR;
968 typedef void *cl_api_clEnqueueReleaseD3D10ObjectsKHR;
969 
970 /* cl_khr_d3d11_sharing */
971 typedef void *cl_api_clGetDeviceIDsFromD3D11KHR;
972 typedef void *cl_api_clCreateFromD3D11BufferKHR;
973 typedef void *cl_api_clCreateFromD3D11Texture2DKHR;
974 typedef void *cl_api_clCreateFromD3D11Texture3DKHR;
975 typedef void *cl_api_clEnqueueAcquireD3D11ObjectsKHR;
976 typedef void *cl_api_clEnqueueReleaseD3D11ObjectsKHR;
977 
978 /* cl_khr_dx9_media_sharing */
979 typedef void *cl_api_clCreateFromDX9MediaSurfaceKHR;
980 typedef void *cl_api_clEnqueueAcquireDX9MediaSurfacesKHR;
981 typedef void *cl_api_clEnqueueReleaseDX9MediaSurfacesKHR;
982 typedef void *cl_api_clGetDeviceIDsFromDX9MediaAdapterKHR;
983 
984 #endif
985 
986 /* OpenCL 1.1 */
987 
988 #ifdef CL_VERSION_1_1
989 
990 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clSetEventCallback)(
991  cl_event /* event */, cl_int /* command_exec_callback_type */,
992  void(CL_CALLBACK * /* pfn_notify */)(cl_event, cl_int, void *),
993  void * /* user_data */) CL_API_SUFFIX__VERSION_1_1;
994 
995 typedef CL_API_ENTRY cl_mem(CL_API_CALL *cl_api_clCreateSubBuffer)(
996  cl_mem /* buffer */, cl_mem_flags /* flags */,
997  cl_buffer_create_type /* buffer_create_type */,
998  const void * /* buffer_create_info */,
999  cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_1;
1000 
1001 typedef CL_API_ENTRY
1002 cl_int(CL_API_CALL *cl_api_clSetMemObjectDestructorCallback)(
1003  cl_mem /* memobj */,
1004  void(CL_CALLBACK * /*pfn_notify*/)(cl_mem /* memobj */,
1005  void * /*user_data*/),
1006  void * /*user_data */) CL_API_SUFFIX__VERSION_1_1;
1007 
1008 typedef CL_API_ENTRY cl_event(CL_API_CALL *cl_api_clCreateUserEvent)(
1009  cl_context /* context */,
1010  cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_1;
1011 
1012 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clSetUserEventStatus)(
1013  cl_event /* event */,
1014  cl_int /* execution_status */) CL_API_SUFFIX__VERSION_1_1;
1015 
1016 #else
1017 
1018 typedef void *cl_api_clSetEventCallback;
1019 typedef void *cl_api_clCreateSubBuffer;
1020 typedef void *cl_api_clSetMemObjectDestructorCallback;
1021 typedef void *cl_api_clCreateUserEvent;
1022 typedef void *cl_api_clSetUserEventStatus;
1023 
1024 #endif
1025 
1026 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clCreateSubDevicesEXT)(
1027  cl_device_id in_device,
1028  const cl_device_partition_property_ext *partition_properties,
1029  cl_uint num_entries, cl_device_id *out_devices, cl_uint *num_devices);
1030 
1031 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clRetainDeviceEXT)(
1032  cl_device_id device) CL_API_SUFFIX__VERSION_1_0;
1033 
1034 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clReleaseDeviceEXT)(
1035  cl_device_id device) CL_API_SUFFIX__VERSION_1_0;
1036 
1037 /* cl_khr_egl_image */
1038 typedef CL_API_ENTRY cl_mem(CL_API_CALL *cl_api_clCreateFromEGLImageKHR)(
1039  cl_context context, CLeglDisplayKHR display, CLeglImageKHR image,
1040  cl_mem_flags flags, const cl_egl_image_properties_khr *properties,
1041  cl_int *errcode_ret);
1042 
1043 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clEnqueueAcquireEGLObjectsKHR)(
1044  cl_command_queue command_queue, cl_uint num_objects,
1045  const cl_mem *mem_objects, cl_uint num_events_in_wait_list,
1046  const cl_event *event_wait_list, cl_event *event);
1047 
1048 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clEnqueueReleaseEGLObjectsKHR)(
1049  cl_command_queue command_queue, cl_uint num_objects,
1050  const cl_mem *mem_objects, cl_uint num_events_in_wait_list,
1051  const cl_event *event_wait_list, cl_event *event);
1052 
1053 /* cl_khr_egl_event */
1054 typedef CL_API_ENTRY cl_event(CL_API_CALL *cl_api_clCreateEventFromEGLSyncKHR)(
1055  cl_context context, CLeglSyncKHR sync, CLeglDisplayKHR display,
1056  cl_int *errcode_ret);
1057 
1058 #ifdef CL_VERSION_2_1
1059 
1060 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clSetDefaultDeviceCommandQueue)(
1061  cl_context context, cl_device_id device,
1062  cl_command_queue command_queue) CL_API_SUFFIX__VERSION_2_1;
1063 
1064 typedef CL_API_ENTRY cl_program(CL_API_CALL *cl_api_clCreateProgramWithIL)(
1065  cl_context context, const void *il, size_t length,
1066  cl_int *errcode_ret) CL_API_SUFFIX__VERSION_2_1;
1067 
1068 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clGetKernelSubGroupInfo)(
1069  cl_kernel kernel, cl_device_id device, cl_kernel_sub_group_info param_name,
1070  size_t input_value_size, const void *input_value, size_t param_value_size,
1071  void *param_value, size_t *param_value_size_ret) CL_API_SUFFIX__VERSION_2_1;
1072 
1073 typedef CL_API_ENTRY cl_kernel(CL_API_CALL *cl_api_clCloneKernel)(
1074  cl_kernel source_kernel, cl_int *errcode_ret) CL_API_SUFFIX__VERSION_2_1;
1075 
1076 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clEnqueueSVMMigrateMem)(
1077  cl_command_queue command_queue, cl_uint num_svm_pointers,
1078  const void **svm_pointers, const size_t *sizes,
1079  cl_mem_migration_flags flags, cl_uint num_events_in_wait_list,
1080  const cl_event *event_wait_list,
1081  cl_event *event) CL_API_SUFFIX__VERSION_2_1;
1082 
1083 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clGetDeviceAndHostTimer)(
1084  cl_device_id device, cl_ulong *device_timestamp,
1085  cl_ulong *host_timestamp) CL_API_SUFFIX__VERSION_2_1;
1086 
1087 typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clGetHostTimer)(
1088  cl_device_id device, cl_ulong *host_timestamp) CL_API_SUFFIX__VERSION_2_1;
1089 
1090 #else
1091 
1092 typedef void *cl_api_clSetDefaultDeviceCommandQueue;
1093 typedef void *cl_api_clCreateProgramWithIL;
1094 typedef void *cl_api_clGetKernelSubGroupInfo;
1095 typedef void *cl_api_clCloneKernel;
1096 typedef void *cl_api_clEnqueueSVMMigrateMem;
1097 typedef void *cl_api_clGetDeviceAndHostTimer;
1098 typedef void *cl_api_clGetHostTimer;
1099 
1100 #endif
1101 
1102 /* Vendor dispatch table struture */
1103 
1104 typedef struct _cl_icd_dispatch {
1105  /* OpenCL 1.0 */
1106  cl_api_clGetPlatformIDs clGetPlatformIDs;
1107  cl_api_clGetPlatformInfo clGetPlatformInfo;
1108  cl_api_clGetDeviceIDs clGetDeviceIDs;
1109  cl_api_clGetDeviceInfo clGetDeviceInfo;
1110  cl_api_clCreateContext clCreateContext;
1111  cl_api_clCreateContextFromType clCreateContextFromType;
1112  cl_api_clRetainContext clRetainContext;
1113  cl_api_clReleaseContext clReleaseContext;
1114  cl_api_clGetContextInfo clGetContextInfo;
1115  cl_api_clCreateCommandQueue clCreateCommandQueue;
1116  cl_api_clRetainCommandQueue clRetainCommandQueue;
1117  cl_api_clReleaseCommandQueue clReleaseCommandQueue;
1118  cl_api_clGetCommandQueueInfo clGetCommandQueueInfo;
1119  cl_api_clSetCommandQueueProperty clSetCommandQueueProperty;
1120  cl_api_clCreateBuffer clCreateBuffer;
1121  cl_api_clCreateImage2D clCreateImage2D;
1122  cl_api_clCreateImage3D clCreateImage3D;
1123  cl_api_clRetainMemObject clRetainMemObject;
1124  cl_api_clReleaseMemObject clReleaseMemObject;
1125  cl_api_clGetSupportedImageFormats clGetSupportedImageFormats;
1126  cl_api_clGetMemObjectInfo clGetMemObjectInfo;
1127  cl_api_clGetImageInfo clGetImageInfo;
1128  cl_api_clCreateSampler clCreateSampler;
1129  cl_api_clRetainSampler clRetainSampler;
1130  cl_api_clReleaseSampler clReleaseSampler;
1131  cl_api_clGetSamplerInfo clGetSamplerInfo;
1132  cl_api_clCreateProgramWithSource clCreateProgramWithSource;
1133  cl_api_clCreateProgramWithBinary clCreateProgramWithBinary;
1134  cl_api_clRetainProgram clRetainProgram;
1135  cl_api_clReleaseProgram clReleaseProgram;
1136  cl_api_clBuildProgram clBuildProgram;
1137  cl_api_clUnloadCompiler clUnloadCompiler;
1138  cl_api_clGetProgramInfo clGetProgramInfo;
1139  cl_api_clGetProgramBuildInfo clGetProgramBuildInfo;
1140  cl_api_clCreateKernel clCreateKernel;
1141  cl_api_clCreateKernelsInProgram clCreateKernelsInProgram;
1142  cl_api_clRetainKernel clRetainKernel;
1143  cl_api_clReleaseKernel clReleaseKernel;
1144  cl_api_clSetKernelArg clSetKernelArg;
1145  cl_api_clGetKernelInfo clGetKernelInfo;
1146  cl_api_clGetKernelWorkGroupInfo clGetKernelWorkGroupInfo;
1147  cl_api_clWaitForEvents clWaitForEvents;
1148  cl_api_clGetEventInfo clGetEventInfo;
1149  cl_api_clRetainEvent clRetainEvent;
1150  cl_api_clReleaseEvent clReleaseEvent;
1151  cl_api_clGetEventProfilingInfo clGetEventProfilingInfo;
1152  cl_api_clFlush clFlush;
1153  cl_api_clFinish clFinish;
1154  cl_api_clEnqueueReadBuffer clEnqueueReadBuffer;
1155  cl_api_clEnqueueWriteBuffer clEnqueueWriteBuffer;
1156  cl_api_clEnqueueCopyBuffer clEnqueueCopyBuffer;
1157  cl_api_clEnqueueReadImage clEnqueueReadImage;
1158  cl_api_clEnqueueWriteImage clEnqueueWriteImage;
1159  cl_api_clEnqueueCopyImage clEnqueueCopyImage;
1160  cl_api_clEnqueueCopyImageToBuffer clEnqueueCopyImageToBuffer;
1161  cl_api_clEnqueueCopyBufferToImage clEnqueueCopyBufferToImage;
1162  cl_api_clEnqueueMapBuffer clEnqueueMapBuffer;
1163  cl_api_clEnqueueMapImage clEnqueueMapImage;
1164  cl_api_clEnqueueUnmapMemObject clEnqueueUnmapMemObject;
1165  cl_api_clEnqueueNDRangeKernel clEnqueueNDRangeKernel;
1166  cl_api_clEnqueueTask clEnqueueTask;
1167  cl_api_clEnqueueNativeKernel clEnqueueNativeKernel;
1168  cl_api_clEnqueueMarker clEnqueueMarker;
1169  cl_api_clEnqueueWaitForEvents clEnqueueWaitForEvents;
1170  cl_api_clEnqueueBarrier clEnqueueBarrier;
1171  cl_api_clGetExtensionFunctionAddress clGetExtensionFunctionAddress;
1172  cl_api_clCreateFromGLBuffer clCreateFromGLBuffer;
1173  cl_api_clCreateFromGLTexture2D clCreateFromGLTexture2D;
1174  cl_api_clCreateFromGLTexture3D clCreateFromGLTexture3D;
1175  cl_api_clCreateFromGLRenderbuffer clCreateFromGLRenderbuffer;
1176  cl_api_clGetGLObjectInfo clGetGLObjectInfo;
1177  cl_api_clGetGLTextureInfo clGetGLTextureInfo;
1178  cl_api_clEnqueueAcquireGLObjects clEnqueueAcquireGLObjects;
1179  cl_api_clEnqueueReleaseGLObjects clEnqueueReleaseGLObjects;
1180  cl_api_clGetGLContextInfoKHR clGetGLContextInfoKHR;
1181 
1182  /* cl_khr_d3d10_sharing */
1183  cl_api_clGetDeviceIDsFromD3D10KHR clGetDeviceIDsFromD3D10KHR;
1184  cl_api_clCreateFromD3D10BufferKHR clCreateFromD3D10BufferKHR;
1185  cl_api_clCreateFromD3D10Texture2DKHR clCreateFromD3D10Texture2DKHR;
1186  cl_api_clCreateFromD3D10Texture3DKHR clCreateFromD3D10Texture3DKHR;
1187  cl_api_clEnqueueAcquireD3D10ObjectsKHR clEnqueueAcquireD3D10ObjectsKHR;
1188  cl_api_clEnqueueReleaseD3D10ObjectsKHR clEnqueueReleaseD3D10ObjectsKHR;
1189 
1190  /* OpenCL 1.1 */
1191  cl_api_clSetEventCallback clSetEventCallback;
1192  cl_api_clCreateSubBuffer clCreateSubBuffer;
1193  cl_api_clSetMemObjectDestructorCallback clSetMemObjectDestructorCallback;
1194  cl_api_clCreateUserEvent clCreateUserEvent;
1195  cl_api_clSetUserEventStatus clSetUserEventStatus;
1196  cl_api_clEnqueueReadBufferRect clEnqueueReadBufferRect;
1197  cl_api_clEnqueueWriteBufferRect clEnqueueWriteBufferRect;
1198  cl_api_clEnqueueCopyBufferRect clEnqueueCopyBufferRect;
1199 
1200  /* cl_ext_device_fission */
1201  cl_api_clCreateSubDevicesEXT clCreateSubDevicesEXT;
1202  cl_api_clRetainDeviceEXT clRetainDeviceEXT;
1203  cl_api_clReleaseDeviceEXT clReleaseDeviceEXT;
1204 
1205  /* cl_khr_gl_event */
1206  cl_api_clCreateEventFromGLsyncKHR clCreateEventFromGLsyncKHR;
1207 
1208  /* OpenCL 1.2 */
1209  cl_api_clCreateSubDevices clCreateSubDevices;
1210  cl_api_clRetainDevice clRetainDevice;
1211  cl_api_clReleaseDevice clReleaseDevice;
1212  cl_api_clCreateImage clCreateImage;
1213  cl_api_clCreateProgramWithBuiltInKernels clCreateProgramWithBuiltInKernels;
1214  cl_api_clCompileProgram clCompileProgram;
1215  cl_api_clLinkProgram clLinkProgram;
1216  cl_api_clUnloadPlatformCompiler clUnloadPlatformCompiler;
1217  cl_api_clGetKernelArgInfo clGetKernelArgInfo;
1218  cl_api_clEnqueueFillBuffer clEnqueueFillBuffer;
1219  cl_api_clEnqueueFillImage clEnqueueFillImage;
1220  cl_api_clEnqueueMigrateMemObjects clEnqueueMigrateMemObjects;
1221  cl_api_clEnqueueMarkerWithWaitList clEnqueueMarkerWithWaitList;
1222  cl_api_clEnqueueBarrierWithWaitList clEnqueueBarrierWithWaitList;
1223  cl_api_clGetExtensionFunctionAddressForPlatform
1224  clGetExtensionFunctionAddressForPlatform;
1225  cl_api_clCreateFromGLTexture clCreateFromGLTexture;
1226 
1227  /* cl_khr_d3d11_sharing */
1228  cl_api_clGetDeviceIDsFromD3D11KHR clGetDeviceIDsFromD3D11KHR;
1229  cl_api_clCreateFromD3D11BufferKHR clCreateFromD3D11BufferKHR;
1230  cl_api_clCreateFromD3D11Texture2DKHR clCreateFromD3D11Texture2DKHR;
1231  cl_api_clCreateFromD3D11Texture3DKHR clCreateFromD3D11Texture3DKHR;
1232  cl_api_clCreateFromDX9MediaSurfaceKHR clCreateFromDX9MediaSurfaceKHR;
1233  cl_api_clEnqueueAcquireD3D11ObjectsKHR clEnqueueAcquireD3D11ObjectsKHR;
1234  cl_api_clEnqueueReleaseD3D11ObjectsKHR clEnqueueReleaseD3D11ObjectsKHR;
1235 
1236  /* cl_khr_dx9_media_sharing */
1237  cl_api_clGetDeviceIDsFromDX9MediaAdapterKHR
1238  clGetDeviceIDsFromDX9MediaAdapterKHR;
1239  cl_api_clEnqueueAcquireDX9MediaSurfacesKHR
1240  clEnqueueAcquireDX9MediaSurfacesKHR;
1241  cl_api_clEnqueueReleaseDX9MediaSurfacesKHR
1242  clEnqueueReleaseDX9MediaSurfacesKHR;
1243 
1244  /* cl_khr_egl_image */
1245  cl_api_clCreateFromEGLImageKHR clCreateFromEGLImageKHR;
1246  cl_api_clEnqueueAcquireEGLObjectsKHR clEnqueueAcquireEGLObjectsKHR;
1247  cl_api_clEnqueueReleaseEGLObjectsKHR clEnqueueReleaseEGLObjectsKHR;
1248 
1249  /* cl_khr_egl_event */
1250  cl_api_clCreateEventFromEGLSyncKHR clCreateEventFromEGLSyncKHR;
1251 
1252  /* OpenCL 2.0 */
1253  cl_api_clCreateCommandQueueWithProperties clCreateCommandQueueWithProperties;
1254  cl_api_clCreatePipe clCreatePipe;
1255  cl_api_clGetPipeInfo clGetPipeInfo;
1256  cl_api_clSVMAlloc clSVMAlloc;
1257  cl_api_clSVMFree clSVMFree;
1258  cl_api_clEnqueueSVMFree clEnqueueSVMFree;
1259  cl_api_clEnqueueSVMMemcpy clEnqueueSVMMemcpy;
1260  cl_api_clEnqueueSVMMemFill clEnqueueSVMMemFill;
1261  cl_api_clEnqueueSVMMap clEnqueueSVMMap;
1262  cl_api_clEnqueueSVMUnmap clEnqueueSVMUnmap;
1263  cl_api_clCreateSamplerWithProperties clCreateSamplerWithProperties;
1264  cl_api_clSetKernelArgSVMPointer clSetKernelArgSVMPointer;
1265  cl_api_clSetKernelExecInfo clSetKernelExecInfo;
1266 
1267  /* cl_khr_sub_groups */
1268  cl_api_clGetKernelSubGroupInfoKHR clGetKernelSubGroupInfoKHR;
1269 
1270  /* OpenCL 2.1 */
1271  cl_api_clCloneKernel clCloneKernel;
1272  cl_api_clCreateProgramWithIL clCreateProgramWithIL;
1273  cl_api_clEnqueueSVMMigrateMem clEnqueueSVMMigrateMem;
1274  cl_api_clGetDeviceAndHostTimer clGetDeviceAndHostTimer;
1275  cl_api_clGetHostTimer clGetHostTimer;
1276  cl_api_clGetKernelSubGroupInfo clGetKernelSubGroupInfo;
1277  cl_api_clSetDefaultDeviceCommandQueue clSetDefaultDeviceCommandQueue;
1278 
1279  /* OpenCL 2.2 */
1280  cl_api_clSetProgramReleaseCallback clSetProgramReleaseCallback;
1281  cl_api_clSetProgramSpecializationConstant clSetProgramSpecializationConstant;
1282 
1283  /* OpenCL 3.0 */
1284  cl_api_clCreateBufferWithProperties clCreateBufferWithProperties;
1285  cl_api_clCreateImageWithProperties clCreateImageWithProperties;
1286  cl_api_clSetContextDestructorCallback clSetContextDestructorCallback;
1287 
1288 } cl_icd_dispatch;
1289 
1290 #ifdef __cplusplus
1291 }
1292 #endif
1293 
1294 #endif /* #ifndef OPENCL_CL_ICD_H */
_cl_icd_dispatch
Definition: cl_icd.h:1104
_cl_image_format
Definition: cl.h:119