Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/angle
Path: blob/main_old/include/CL/cl_icd.h
1693 views
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_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_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_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_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_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_int(CL_API_CALL *cl_api_clRetainDevice)(
70
cl_device_id device) CL_API_SUFFIX__VERSION_1_2;
71
72
typedef 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_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_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_int(CL_API_CALL *cl_api_clRetainContext)(
96
cl_context context) CL_API_SUFFIX__VERSION_1_0;
97
98
typedef cl_int(CL_API_CALL *cl_api_clReleaseContext)(
99
cl_context context) CL_API_SUFFIX__VERSION_1_0;
100
101
typedef 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_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
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_int(CL_API_CALL *cl_api_clRetainCommandQueue)(
126
cl_command_queue command_queue) CL_API_SUFFIX__VERSION_1_0;
127
128
typedef cl_int(CL_API_CALL *cl_api_clReleaseCommandQueue)(
129
cl_command_queue command_queue) CL_API_SUFFIX__VERSION_1_0;
130
131
typedef 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_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_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_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_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_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_int(CL_API_CALL *cl_api_clRetainMemObject)(
180
cl_mem memobj) CL_API_SUFFIX__VERSION_1_0;
181
182
typedef cl_int(CL_API_CALL *cl_api_clReleaseMemObject)(
183
cl_mem memobj) CL_API_SUFFIX__VERSION_1_0;
184
185
typedef 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_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_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_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_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 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 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_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_int(CL_API_CALL *cl_api_clRetainSampler)(
235
cl_sampler sampler) CL_API_SUFFIX__VERSION_1_0;
236
237
typedef cl_int(CL_API_CALL *cl_api_clReleaseSampler)(
238
cl_sampler sampler) CL_API_SUFFIX__VERSION_1_0;
239
240
typedef 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
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_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_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
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_int(CL_API_CALL *cl_api_clRetainProgram)(
282
cl_program program) CL_API_SUFFIX__VERSION_1_0;
283
284
typedef cl_int(CL_API_CALL *cl_api_clReleaseProgram)(
285
cl_program program) CL_API_SUFFIX__VERSION_1_0;
286
287
typedef 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_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_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
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_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_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_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_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_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_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_int(CL_API_CALL *cl_api_clRetainKernel)(
365
cl_kernel kernel) CL_API_SUFFIX__VERSION_1_0;
366
367
typedef cl_int(CL_API_CALL *cl_api_clReleaseKernel)(
368
cl_kernel kernel) CL_API_SUFFIX__VERSION_1_0;
369
370
typedef 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_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_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_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_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_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_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_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_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_int(CL_API_CALL *cl_api_clRetainEvent)(cl_event event)
431
CL_API_SUFFIX__VERSION_1_0;
432
433
typedef 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_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_int(CL_API_CALL *cl_api_clFlush)(
443
cl_command_queue command_queue) CL_API_SUFFIX__VERSION_1_0;
444
445
typedef 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_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_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_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_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_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_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_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_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_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_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_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_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_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 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 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_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_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_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_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_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_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_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 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_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_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_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_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_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_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_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_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_int(CL_API_CALL *cl_api_clUnloadCompiler)(void)
721
CL_API_SUFFIX__VERSION_1_1_DEPRECATED;
722
723
typedef 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_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_int(CL_API_CALL *cl_api_clEnqueueBarrier)(
732
cl_command_queue command_queue) CL_API_SUFFIX__VERSION_1_1_DEPRECATED;
733
734
typedef 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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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
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
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_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_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_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_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
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
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
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_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
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
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_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_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
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_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_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_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_int(CL_API_CALL *cl_api_clRetainDeviceEXT)(
1032
cl_device_id device) CL_API_SUFFIX__VERSION_1_0;
1033
1034
typedef 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_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_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_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_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_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_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_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_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_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_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_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 */
1295
1296