codekingpro/portable-devtools
114k
1/*******************************************************************************
2 * Copyright (c) 2008-2023 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_EXT_H_
18#define OPENCL_CL_EXT_H_
19
20/*
21** This header is generated from the Khronos OpenCL XML API Registry.
22*/
23
24#include <CL/cl.h>
25
26/* CL_NO_PROTOTYPES implies CL_NO_EXTENSION_PROTOTYPES: */
27#if defined(CL_NO_PROTOTYPES) && !defined(CL_NO_EXTENSION_PROTOTYPES)
28#define CL_NO_EXTENSION_PROTOTYPES
29#endif
30
31/* CL_NO_EXTENSION_PROTOTYPES implies
32 CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES and
33 CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES: */
34#if defined(CL_NO_EXTENSION_PROTOTYPES) && \
35 !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES)
36#define CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES
37#endif
38#if defined(CL_NO_EXTENSION_PROTOTYPES) && \
39 !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES)
40#define CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES
41#endif
42
43#ifdef __cplusplus
44extern "C" {
45#endif
46
47/***************************************************************
48* cl_khr_command_buffer
49***************************************************************/
50#define cl_khr_command_buffer 1
51#define CL_KHR_COMMAND_BUFFER_EXTENSION_NAME \
52 "cl_khr_command_buffer"
53
54typedef cl_bitfield cl_device_command_buffer_capabilities_khr;
55typedef struct _cl_command_buffer_khr* cl_command_buffer_khr;
56typedef cl_uint cl_sync_point_khr;
57typedef cl_uint cl_command_buffer_info_khr;
58typedef cl_uint cl_command_buffer_state_khr;
59typedef cl_properties cl_command_buffer_properties_khr;
60typedef cl_bitfield cl_command_buffer_flags_khr;
61typedef cl_properties cl_ndrange_kernel_command_properties_khr;
62typedef struct _cl_mutable_command_khr* cl_mutable_command_khr;
63
64/* cl_device_info */
65#define CL_DEVICE_COMMAND_BUFFER_CAPABILITIES_KHR 0x12A9
66#define CL_DEVICE_COMMAND_BUFFER_REQUIRED_QUEUE_PROPERTIES_KHR 0x12AA
67
68/* cl_device_command_buffer_capabilities_khr - bitfield */
69#define CL_COMMAND_BUFFER_CAPABILITY_KERNEL_PRINTF_KHR (1 << 0)
70#define CL_COMMAND_BUFFER_CAPABILITY_DEVICE_SIDE_ENQUEUE_KHR (1 << 1)
71#define CL_COMMAND_BUFFER_CAPABILITY_SIMULTANEOUS_USE_KHR (1 << 2)
72#define CL_COMMAND_BUFFER_CAPABILITY_OUT_OF_ORDER_KHR (1 << 3)
73
74/* cl_command_buffer_properties_khr */
75#define CL_COMMAND_BUFFER_FLAGS_KHR 0x1293
76
77/* cl_command_buffer_flags_khr - bitfield */
78#define CL_COMMAND_BUFFER_SIMULTANEOUS_USE_KHR (1 << 0)
79
80/* Error codes */
81#define CL_INVALID_COMMAND_BUFFER_KHR -1138
82#define CL_INVALID_SYNC_POINT_WAIT_LIST_KHR -1139
83#define CL_INCOMPATIBLE_COMMAND_QUEUE_KHR -1140
84
85/* cl_command_buffer_info_khr */
86#define CL_COMMAND_BUFFER_QUEUES_KHR 0x1294
87#define CL_COMMAND_BUFFER_NUM_QUEUES_KHR 0x1295
88#define CL_COMMAND_BUFFER_REFERENCE_COUNT_KHR 0x1296
89#define CL_COMMAND_BUFFER_STATE_KHR 0x1297
90#define CL_COMMAND_BUFFER_PROPERTIES_ARRAY_KHR 0x1298
91#define CL_COMMAND_BUFFER_CONTEXT_KHR 0x1299
92
93/* cl_command_buffer_state_khr */
94#define CL_COMMAND_BUFFER_STATE_RECORDING_KHR 0
95#define CL_COMMAND_BUFFER_STATE_EXECUTABLE_KHR 1
96#define CL_COMMAND_BUFFER_STATE_PENDING_KHR 2
97#define CL_COMMAND_BUFFER_STATE_INVALID_KHR 3
98
99/* cl_command_type */
100#define CL_COMMAND_COMMAND_BUFFER_KHR 0x12A8
101
102
103typedef cl_command_buffer_khr (CL_API_CALL *
104clCreateCommandBufferKHR_fn)(
105 cl_uint num_queues,
106 const cl_command_queue* queues,
107 const cl_command_buffer_properties_khr* properties,
108 cl_int* errcode_ret) ;
109
110typedef cl_int (CL_API_CALL *
111clFinalizeCommandBufferKHR_fn)(
112 cl_command_buffer_khr command_buffer) ;
113
114typedef cl_int (CL_API_CALL *
115clRetainCommandBufferKHR_fn)(
116 cl_command_buffer_khr command_buffer) ;
117
118typedef cl_int (CL_API_CALL *
119clReleaseCommandBufferKHR_fn)(
120 cl_command_buffer_khr command_buffer) ;
121
122typedef cl_int (CL_API_CALL *
123clEnqueueCommandBufferKHR_fn)(
124 cl_uint num_queues,
125 cl_command_queue* queues,
126 cl_command_buffer_khr command_buffer,
127 cl_uint num_events_in_wait_list,
128 const cl_event* event_wait_list,
129 cl_event* event) ;
130
131typedef cl_int (CL_API_CALL *
132clCommandBarrierWithWaitListKHR_fn)(
133 cl_command_buffer_khr command_buffer,
134 cl_command_queue command_queue,
135 cl_uint num_sync_points_in_wait_list,
136 const cl_sync_point_khr* sync_point_wait_list,
137 cl_sync_point_khr* sync_point,
138 cl_mutable_command_khr* mutable_handle) ;
139
140typedef cl_int (CL_API_CALL *
141clCommandCopyBufferKHR_fn)(
142 cl_command_buffer_khr command_buffer,
143 cl_command_queue command_queue,
144 cl_mem src_buffer,
145 cl_mem dst_buffer,
146 size_t src_offset,
147 size_t dst_offset,
148 size_t size,
149 cl_uint num_sync_points_in_wait_list,
150 const cl_sync_point_khr* sync_point_wait_list,
151 cl_sync_point_khr* sync_point,
152 cl_mutable_command_khr* mutable_handle) ;
153
154typedef cl_int (CL_API_CALL *
155clCommandCopyBufferRectKHR_fn)(
156 cl_command_buffer_khr command_buffer,
157 cl_command_queue command_queue,
158 cl_mem src_buffer,
159 cl_mem dst_buffer,
160 const size_t* src_origin,
161 const size_t* dst_origin,
162 const size_t* region,
163 size_t src_row_pitch,
164 size_t src_slice_pitch,
165 size_t dst_row_pitch,
166 size_t dst_slice_pitch,
167 cl_uint num_sync_points_in_wait_list,
168 const cl_sync_point_khr* sync_point_wait_list,
169 cl_sync_point_khr* sync_point,
170 cl_mutable_command_khr* mutable_handle) ;
171
172typedef cl_int (CL_API_CALL *
173clCommandCopyBufferToImageKHR_fn)(
174 cl_command_buffer_khr command_buffer,
175 cl_command_queue command_queue,
176 cl_mem src_buffer,
177 cl_mem dst_image,
178 size_t src_offset,
179 const size_t* dst_origin,
180 const size_t* region,
181 cl_uint num_sync_points_in_wait_list,
182 const cl_sync_point_khr* sync_point_wait_list,
183 cl_sync_point_khr* sync_point,
184 cl_mutable_command_khr* mutable_handle) ;
185
186typedef cl_int (CL_API_CALL *
187clCommandCopyImageKHR_fn)(
188 cl_command_buffer_khr command_buffer,
189 cl_command_queue command_queue,
190 cl_mem src_image,
191 cl_mem dst_image,
192 const size_t* src_origin,
193 const size_t* dst_origin,
194 const size_t* region,
195 cl_uint num_sync_points_in_wait_list,
196 const cl_sync_point_khr* sync_point_wait_list,
197 cl_sync_point_khr* sync_point,
198 cl_mutable_command_khr* mutable_handle) ;
199
200typedef cl_int (CL_API_CALL *
201clCommandCopyImageToBufferKHR_fn)(
202 cl_command_buffer_khr command_buffer,
203 cl_command_queue command_queue,
204 cl_mem src_image,
205 cl_mem dst_buffer,
206 const size_t* src_origin,
207 const size_t* region,
208 size_t dst_offset,
209 cl_uint num_sync_points_in_wait_list,
210 const cl_sync_point_khr* sync_point_wait_list,
211 cl_sync_point_khr* sync_point,
212 cl_mutable_command_khr* mutable_handle) ;
213
214typedef cl_int (CL_API_CALL *
215clCommandFillBufferKHR_fn)(
216 cl_command_buffer_khr command_buffer,
217 cl_command_queue command_queue,
218 cl_mem buffer,
219 const void* pattern,
220 size_t pattern_size,
221 size_t offset,
222 size_t size,
223 cl_uint num_sync_points_in_wait_list,
224 const cl_sync_point_khr* sync_point_wait_list,
225 cl_sync_point_khr* sync_point,
226 cl_mutable_command_khr* mutable_handle) ;
227
228typedef cl_int (CL_API_CALL *
229clCommandFillImageKHR_fn)(
230 cl_command_buffer_khr command_buffer,
231 cl_command_queue command_queue,
232 cl_mem image,
233 const void* fill_color,
234 const size_t* origin,
235 const size_t* region,
236 cl_uint num_sync_points_in_wait_list,
237 const cl_sync_point_khr* sync_point_wait_list,
238 cl_sync_point_khr* sync_point,
239 cl_mutable_command_khr* mutable_handle) ;
240
241typedef cl_int (CL_API_CALL *
242clCommandNDRangeKernelKHR_fn)(
243 cl_command_buffer_khr command_buffer,
244 cl_command_queue command_queue,
245 const cl_ndrange_kernel_command_properties_khr* properties,
246 cl_kernel kernel,
247 cl_uint work_dim,
248 const size_t* global_work_offset,
249 const size_t* global_work_size,
250 const size_t* local_work_size,
251 cl_uint num_sync_points_in_wait_list,
252 const cl_sync_point_khr* sync_point_wait_list,
253 cl_sync_point_khr* sync_point,
254 cl_mutable_command_khr* mutable_handle) ;
255
256typedef cl_int (CL_API_CALL *
257clGetCommandBufferInfoKHR_fn)(
258 cl_command_buffer_khr command_buffer,
259 cl_command_buffer_info_khr param_name,
260 size_t param_value_size,
261 void* param_value,
262 size_t* param_value_size_ret) ;
263
264#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES)
265
266extern CL_API_ENTRY cl_command_buffer_khr CL_API_CALL
267clCreateCommandBufferKHR(
268 cl_uint num_queues,
269 const cl_command_queue* queues,
270 const cl_command_buffer_properties_khr* properties,
271 cl_int* errcode_ret) ;
272
273extern CL_API_ENTRY cl_int CL_API_CALL
274clFinalizeCommandBufferKHR(
275 cl_command_buffer_khr command_buffer) ;
276
277extern CL_API_ENTRY cl_int CL_API_CALL
278clRetainCommandBufferKHR(
279 cl_command_buffer_khr command_buffer) ;
280
281extern CL_API_ENTRY cl_int CL_API_CALL
282clReleaseCommandBufferKHR(
283 cl_command_buffer_khr command_buffer) ;
284
285extern CL_API_ENTRY cl_int CL_API_CALL
286clEnqueueCommandBufferKHR(
287 cl_uint num_queues,
288 cl_command_queue* queues,
289 cl_command_buffer_khr command_buffer,
290 cl_uint num_events_in_wait_list,
291 const cl_event* event_wait_list,
292 cl_event* event) ;
293
294extern CL_API_ENTRY cl_int CL_API_CALL
295clCommandBarrierWithWaitListKHR(
296 cl_command_buffer_khr command_buffer,
297 cl_command_queue command_queue,
298 cl_uint num_sync_points_in_wait_list,
299 const cl_sync_point_khr* sync_point_wait_list,
300 cl_sync_point_khr* sync_point,
301 cl_mutable_command_khr* mutable_handle) ;
302
303extern CL_API_ENTRY cl_int CL_API_CALL
304clCommandCopyBufferKHR(
305 cl_command_buffer_khr command_buffer,
306 cl_command_queue command_queue,
307 cl_mem src_buffer,
308 cl_mem dst_buffer,
309 size_t src_offset,
310 size_t dst_offset,
311 size_t size,
312 cl_uint num_sync_points_in_wait_list,
313 const cl_sync_point_khr* sync_point_wait_list,
314 cl_sync_point_khr* sync_point,
315 cl_mutable_command_khr* mutable_handle) ;
316
317extern CL_API_ENTRY cl_int CL_API_CALL
318clCommandCopyBufferRectKHR(
319 cl_command_buffer_khr command_buffer,
320 cl_command_queue command_queue,
321 cl_mem src_buffer,
322 cl_mem dst_buffer,
323 const size_t* src_origin,
324 const size_t* dst_origin,
325 const size_t* region,
326 size_t src_row_pitch,
327 size_t src_slice_pitch,
328 size_t dst_row_pitch,
329 size_t dst_slice_pitch,
330 cl_uint num_sync_points_in_wait_list,
331 const cl_sync_point_khr* sync_point_wait_list,
332 cl_sync_point_khr* sync_point,
333 cl_mutable_command_khr* mutable_handle) ;
334
335extern CL_API_ENTRY cl_int CL_API_CALL
336clCommandCopyBufferToImageKHR(
337 cl_command_buffer_khr command_buffer,
338 cl_command_queue command_queue,
339 cl_mem src_buffer,
340 cl_mem dst_image,
341 size_t src_offset,
342 const size_t* dst_origin,
343 const size_t* region,
344 cl_uint num_sync_points_in_wait_list,
345 const cl_sync_point_khr* sync_point_wait_list,
346 cl_sync_point_khr* sync_point,
347 cl_mutable_command_khr* mutable_handle) ;
348
349extern CL_API_ENTRY cl_int CL_API_CALL
350clCommandCopyImageKHR(
351 cl_command_buffer_khr command_buffer,
352 cl_command_queue command_queue,
353 cl_mem src_image,
354 cl_mem dst_image,
355 const size_t* src_origin,
356 const size_t* dst_origin,
357 const size_t* region,
358 cl_uint num_sync_points_in_wait_list,
359 const cl_sync_point_khr* sync_point_wait_list,
360 cl_sync_point_khr* sync_point,
361 cl_mutable_command_khr* mutable_handle) ;
362
363extern CL_API_ENTRY cl_int CL_API_CALL
364clCommandCopyImageToBufferKHR(
365 cl_command_buffer_khr command_buffer,
366 cl_command_queue command_queue,
367 cl_mem src_image,
368 cl_mem dst_buffer,
369 const size_t* src_origin,
370 const size_t* region,
371 size_t dst_offset,
372 cl_uint num_sync_points_in_wait_list,
373 const cl_sync_point_khr* sync_point_wait_list,
374 cl_sync_point_khr* sync_point,
375 cl_mutable_command_khr* mutable_handle) ;
376
377extern CL_API_ENTRY cl_int CL_API_CALL
378clCommandFillBufferKHR(
379 cl_command_buffer_khr command_buffer,
380 cl_command_queue command_queue,
381 cl_mem buffer,
382 const void* pattern,
383 size_t pattern_size,
384 size_t offset,
385 size_t size,
386 cl_uint num_sync_points_in_wait_list,
387 const cl_sync_point_khr* sync_point_wait_list,
388 cl_sync_point_khr* sync_point,
389 cl_mutable_command_khr* mutable_handle) ;
390
391extern CL_API_ENTRY cl_int CL_API_CALL
392clCommandFillImageKHR(
393 cl_command_buffer_khr command_buffer,
394 cl_command_queue command_queue,
395 cl_mem image,
396 const void* fill_color,
397 const size_t* origin,
398 const size_t* region,
399 cl_uint num_sync_points_in_wait_list,
400 const cl_sync_point_khr* sync_point_wait_list,
401 cl_sync_point_khr* sync_point,
402 cl_mutable_command_khr* mutable_handle) ;
403
404extern CL_API_ENTRY cl_int CL_API_CALL
405clCommandNDRangeKernelKHR(
406 cl_command_buffer_khr command_buffer,
407 cl_command_queue command_queue,
408 const cl_ndrange_kernel_command_properties_khr* properties,
409 cl_kernel kernel,
410 cl_uint work_dim,
411 const size_t* global_work_offset,
412 const size_t* global_work_size,
413 const size_t* local_work_size,
414 cl_uint num_sync_points_in_wait_list,
415 const cl_sync_point_khr* sync_point_wait_list,
416 cl_sync_point_khr* sync_point,
417 cl_mutable_command_khr* mutable_handle) ;
418
419extern CL_API_ENTRY cl_int CL_API_CALL
420clGetCommandBufferInfoKHR(
421 cl_command_buffer_khr command_buffer,
422 cl_command_buffer_info_khr param_name,
423 size_t param_value_size,
424 void* param_value,
425 size_t* param_value_size_ret) ;
426
427#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */
428
429/***************************************************************
430* cl_khr_command_buffer_multi_device
431***************************************************************/
432#define cl_khr_command_buffer_multi_device 1
433#define CL_KHR_COMMAND_BUFFER_MULTI_DEVICE_EXTENSION_NAME \
434 "cl_khr_command_buffer_multi_device"
435
436typedef cl_bitfield cl_platform_command_buffer_capabilities_khr;
437
438/* cl_platform_info */
439#define CL_PLATFORM_COMMAND_BUFFER_CAPABILITIES_KHR 0x0908
440
441/* cl_platform_command_buffer_capabilities_khr - bitfield */
442#define CL_COMMAND_BUFFER_PLATFORM_UNIVERSAL_SYNC_KHR (1 << 0)
443#define CL_COMMAND_BUFFER_PLATFORM_REMAP_QUEUES_KHR (1 << 1)
444#define CL_COMMAND_BUFFER_PLATFORM_AUTOMATIC_REMAP_KHR (1 << 2)
445
446/* cl_device_info */
447#define CL_DEVICE_COMMAND_BUFFER_NUM_SYNC_DEVICES_KHR 0x12AB
448#define CL_DEVICE_COMMAND_BUFFER_SYNC_DEVICES_KHR 0x12AC
449
450/* cl_device_command_buffer_capabilities_khr - bitfield */
451#define CL_COMMAND_BUFFER_CAPABILITY_MULTIPLE_QUEUE_KHR (1 << 4)
452
453/* cl_command_buffer_flags_khr - bitfield */
454#define CL_COMMAND_BUFFER_DEVICE_SIDE_SYNC_KHR (1 << 2)
455
456
457typedef cl_command_buffer_khr (CL_API_CALL *
458clRemapCommandBufferKHR_fn)(
459 cl_command_buffer_khr command_buffer,
460 cl_bool automatic,
461 cl_uint num_queues,
462 const cl_command_queue* queues,
463 cl_uint num_handles,
464 const cl_mutable_command_khr* handles,
465 cl_mutable_command_khr* handles_ret,
466 cl_int* errcode_ret) ;
467
468#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES)
469
470extern CL_API_ENTRY cl_command_buffer_khr CL_API_CALL
471clRemapCommandBufferKHR(
472 cl_command_buffer_khr command_buffer,
473 cl_bool automatic,
474 cl_uint num_queues,
475 const cl_command_queue* queues,
476 cl_uint num_handles,
477 const cl_mutable_command_khr* handles,
478 cl_mutable_command_khr* handles_ret,
479 cl_int* errcode_ret) ;
480
481#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */
482
483/***************************************************************
484* cl_khr_command_buffer_mutable_dispatch
485***************************************************************/
486#define cl_khr_command_buffer_mutable_dispatch 1
487#define CL_KHR_COMMAND_BUFFER_MUTABLE_DISPATCH_EXTENSION_NAME \
488 "cl_khr_command_buffer_mutable_dispatch"
489
490typedef cl_uint cl_command_buffer_structure_type_khr;
491typedef cl_bitfield cl_mutable_dispatch_fields_khr;
492typedef cl_uint cl_mutable_command_info_khr;
493typedef struct _cl_mutable_dispatch_arg_khr {
494 cl_uint arg_index;
495 size_t arg_size;
496 const void* arg_value;
497} cl_mutable_dispatch_arg_khr;
498typedef struct _cl_mutable_dispatch_exec_info_khr {
499 cl_uint param_name;
500 size_t param_value_size;
501 const void* param_value;
502} cl_mutable_dispatch_exec_info_khr;
503typedef struct _cl_mutable_dispatch_config_khr {
504 cl_command_buffer_structure_type_khr type;
505 const void* next;
506 cl_mutable_command_khr command;
507 cl_uint num_args;
508 cl_uint num_svm_args;
509 cl_uint num_exec_infos;
510 cl_uint work_dim;
511 const cl_mutable_dispatch_arg_khr* arg_list;
512 const cl_mutable_dispatch_arg_khr* arg_svm_list;
513 const cl_mutable_dispatch_exec_info_khr* exec_info_list;
514 const size_t* global_work_offset;
515 const size_t* global_work_size;
516 const size_t* local_work_size;
517} cl_mutable_dispatch_config_khr;
518typedef struct _cl_mutable_base_config_khr {
519 cl_command_buffer_structure_type_khr type;
520 const void* next;
521 cl_uint num_mutable_dispatch;
522 const cl_mutable_dispatch_config_khr* mutable_dispatch_list;
523} cl_mutable_base_config_khr;
524
525/* cl_command_buffer_flags_khr - bitfield */
526#define CL_COMMAND_BUFFER_MUTABLE_KHR (1 << 1)
527
528/* Error codes */
529#define CL_INVALID_MUTABLE_COMMAND_KHR -1141
530
531/* cl_device_info */
532#define CL_DEVICE_MUTABLE_DISPATCH_CAPABILITIES_KHR 0x12B0
533
534/* cl_ndrange_kernel_command_properties_khr */
535#define CL_MUTABLE_DISPATCH_UPDATABLE_FIELDS_KHR 0x12B1
536
537/* cl_mutable_dispatch_fields_khr - bitfield */
538#define CL_MUTABLE_DISPATCH_GLOBAL_OFFSET_KHR (1 << 0)
539#define CL_MUTABLE_DISPATCH_GLOBAL_SIZE_KHR (1 << 1)
540#define CL_MUTABLE_DISPATCH_LOCAL_SIZE_KHR (1 << 2)
541#define CL_MUTABLE_DISPATCH_ARGUMENTS_KHR (1 << 3)
542#define CL_MUTABLE_DISPATCH_EXEC_INFO_KHR (1 << 4)
543
544/* cl_mutable_command_info_khr */
545#define CL_MUTABLE_COMMAND_COMMAND_QUEUE_KHR 0x12A0
546#define CL_MUTABLE_COMMAND_COMMAND_BUFFER_KHR 0x12A1
547#define CL_MUTABLE_COMMAND_COMMAND_TYPE_KHR 0x12AD
548#define CL_MUTABLE_DISPATCH_PROPERTIES_ARRAY_KHR 0x12A2
549#define CL_MUTABLE_DISPATCH_KERNEL_KHR 0x12A3
550#define CL_MUTABLE_DISPATCH_DIMENSIONS_KHR 0x12A4
551#define CL_MUTABLE_DISPATCH_GLOBAL_WORK_OFFSET_KHR 0x12A5
552#define CL_MUTABLE_DISPATCH_GLOBAL_WORK_SIZE_KHR 0x12A6
553#define CL_MUTABLE_DISPATCH_LOCAL_WORK_SIZE_KHR 0x12A7
554
555/* cl_command_buffer_structure_type_khr */
556#define CL_STRUCTURE_TYPE_MUTABLE_BASE_CONFIG_KHR 0
557#define CL_STRUCTURE_TYPE_MUTABLE_DISPATCH_CONFIG_KHR 1
558
559
560typedef cl_int (CL_API_CALL *
561clUpdateMutableCommandsKHR_fn)(
562 cl_command_buffer_khr command_buffer,
563 const cl_mutable_base_config_khr* mutable_config) ;
564
565typedef cl_int (CL_API_CALL *
566clGetMutableCommandInfoKHR_fn)(
567 cl_mutable_command_khr command,
568 cl_mutable_command_info_khr param_name,
569 size_t param_value_size,
570 void* param_value,
571 size_t* param_value_size_ret) ;
572
573#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES)
574
575extern CL_API_ENTRY cl_int CL_API_CALL
576clUpdateMutableCommandsKHR(
577 cl_command_buffer_khr command_buffer,
578 const cl_mutable_base_config_khr* mutable_config) ;
579
580extern CL_API_ENTRY cl_int CL_API_CALL
581clGetMutableCommandInfoKHR(
582 cl_mutable_command_khr command,
583 cl_mutable_command_info_khr param_name,
584 size_t param_value_size,
585 void* param_value,
586 size_t* param_value_size_ret) ;
587
588#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */
589
590/***************************************************************
591* cl_khr_fp64
592***************************************************************/
593#define cl_khr_fp64 1
594#define CL_KHR_FP64_EXTENSION_NAME \
595 "cl_khr_fp64"
596
597#if !defined(CL_VERSION_1_2)
598/* cl_device_info - defined in CL.h for OpenCL 1.2 and newer */
599#define CL_DEVICE_DOUBLE_FP_CONFIG 0x1032
600
601#endif /* !defined(CL_VERSION_1_2) */
602
603/***************************************************************
604* cl_khr_fp16
605***************************************************************/
606#define cl_khr_fp16 1
607#define CL_KHR_FP16_EXTENSION_NAME \
608 "cl_khr_fp16"
609
610/* cl_device_info */
611#define CL_DEVICE_HALF_FP_CONFIG 0x1033
612
613/***************************************************************
614* cl_APPLE_SetMemObjectDestructor
615***************************************************************/
616#define cl_APPLE_SetMemObjectDestructor 1
617#define CL_APPLE_SETMEMOBJECTDESTRUCTOR_EXTENSION_NAME \
618 "cl_APPLE_SetMemObjectDestructor"
619
620
621typedef cl_int (CL_API_CALL *
622clSetMemObjectDestructorAPPLE_fn)(
623 cl_mem memobj,
624 void (CL_CALLBACK* pfn_notify)(cl_mem memobj, void* user_data),
625 void* user_data) CL_API_SUFFIX__VERSION_1_0;
626
627#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES)
628
629extern CL_API_ENTRY cl_int CL_API_CALL
630clSetMemObjectDestructorAPPLE(
631 cl_mem memobj,
632 void (CL_CALLBACK* pfn_notify)(cl_mem memobj, void* user_data),
633 void* user_data) CL_API_SUFFIX__VERSION_1_0;
634
635#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */
636
637/***************************************************************
638* cl_APPLE_ContextLoggingFunctions
639***************************************************************/
640#define cl_APPLE_ContextLoggingFunctions 1
641#define CL_APPLE_CONTEXTLOGGINGFUNCTIONS_EXTENSION_NAME \
642 "cl_APPLE_ContextLoggingFunctions"
643
644
645typedef void (CL_API_CALL *
646clLogMessagesToSystemLogAPPLE_fn)(
647 const char* errstr,
648 const void* private_info,
649 size_t cb,
650 void* user_data) CL_API_SUFFIX__VERSION_1_0;
651
652typedef void (CL_API_CALL *
653clLogMessagesToStdoutAPPLE_fn)(
654 const char* errstr,
655 const void* private_info,
656 size_t cb,
657 void* user_data) CL_API_SUFFIX__VERSION_1_0;
658
659typedef void (CL_API_CALL *
660clLogMessagesToStderrAPPLE_fn)(
661 const char* errstr,
662 const void* private_info,
663 size_t cb,
664 void* user_data) CL_API_SUFFIX__VERSION_1_0;
665
666#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES)
667
668extern CL_API_ENTRY void CL_API_CALL
669clLogMessagesToSystemLogAPPLE(
670 const char* errstr,
671 const void* private_info,
672 size_t cb,
673 void* user_data) CL_API_SUFFIX__VERSION_1_0;
674
675extern CL_API_ENTRY void CL_API_CALL
676clLogMessagesToStdoutAPPLE(
677 const char* errstr,
678 const void* private_info,
679 size_t cb,
680 void* user_data) CL_API_SUFFIX__VERSION_1_0;
681
682extern CL_API_ENTRY void CL_API_CALL
683clLogMessagesToStderrAPPLE(
684 const char* errstr,
685 const void* private_info,
686 size_t cb,
687 void* user_data) CL_API_SUFFIX__VERSION_1_0;
688
689#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */
690
691/***************************************************************
692* cl_khr_icd
693***************************************************************/
694#define cl_khr_icd 1
695#define CL_KHR_ICD_EXTENSION_NAME \
696 "cl_khr_icd"
697
698/* cl_platform_info */
699#define CL_PLATFORM_ICD_SUFFIX_KHR 0x0920
700
701/* Error codes */
702#define CL_PLATFORM_NOT_FOUND_KHR -1001
703
704
705typedef cl_int (CL_API_CALL *
706clIcdGetPlatformIDsKHR_fn)(
707 cl_uint num_entries,
708 cl_platform_id* platforms,
709 cl_uint* num_platforms) ;
710
711#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES)
712
713extern CL_API_ENTRY cl_int CL_API_CALL
714clIcdGetPlatformIDsKHR(
715 cl_uint num_entries,
716 cl_platform_id* platforms,
717 cl_uint* num_platforms) ;
718
719#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */
720
721/***************************************************************
722* cl_khr_il_program
723***************************************************************/
724#define cl_khr_il_program 1
725#define CL_KHR_IL_PROGRAM_EXTENSION_NAME \
726 "cl_khr_il_program"
727
728/* cl_device_info */
729#define CL_DEVICE_IL_VERSION_KHR 0x105B
730
731/* cl_program_info */
732#define CL_PROGRAM_IL_KHR 0x1169
733
734
735typedef cl_program (CL_API_CALL *
736clCreateProgramWithILKHR_fn)(
737 cl_context context,
738 const void* il,
739 size_t length,
740 cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2;
741
742#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES)
743
744extern CL_API_ENTRY cl_program CL_API_CALL
745clCreateProgramWithILKHR(
746 cl_context context,
747 const void* il,
748 size_t length,
749 cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2;
750
751#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */
752
753/***************************************************************
754* cl_khr_image2d_from_buffer
755***************************************************************/
756#define cl_khr_image2d_from_buffer 1
757#define CL_KHR_IMAGE2D_FROM_BUFFER_EXTENSION_NAME \
758 "cl_khr_image2d_from_buffer"
759
760/* cl_device_info */
761#define CL_DEVICE_IMAGE_PITCH_ALIGNMENT_KHR 0x104A
762#define CL_DEVICE_IMAGE_BASE_ADDRESS_ALIGNMENT_KHR 0x104B
763
764/***************************************************************
765* cl_khr_initialize_memory
766***************************************************************/
767#define cl_khr_initialize_memory 1
768#define CL_KHR_INITIALIZE_MEMORY_EXTENSION_NAME \
769 "cl_khr_initialize_memory"
770
771/* Interop tokens */
772#define CL_CONTEXT_MEMORY_INITIALIZE_KHR 0x2030
773
774/***************************************************************
775* cl_khr_terminate_context
776***************************************************************/
777#define cl_khr_terminate_context 1
778#define CL_KHR_TERMINATE_CONTEXT_EXTENSION_NAME \
779 "cl_khr_terminate_context"
780
781typedef cl_bitfield cl_device_terminate_capability_khr;
782
783/* cl_device_info */
784#define CL_DEVICE_TERMINATE_CAPABILITY_KHR 0x2031
785
786/* cl_context_properties */
787#define CL_CONTEXT_TERMINATE_KHR 0x2032
788
789/* cl_device_terminate_capability_khr */
790#define CL_DEVICE_TERMINATE_CAPABILITY_CONTEXT_KHR (1 << 0)
791
792/* Error codes */
793#define CL_CONTEXT_TERMINATED_KHR -1121
794
795
796typedef cl_int (CL_API_CALL *
797clTerminateContextKHR_fn)(
798 cl_context context) CL_API_SUFFIX__VERSION_1_2;
799
800#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES)
801
802extern CL_API_ENTRY cl_int CL_API_CALL
803clTerminateContextKHR(
804 cl_context context) CL_API_SUFFIX__VERSION_1_2;
805
806#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */
807
808/***************************************************************
809* cl_khr_spir
810***************************************************************/
811#define cl_khr_spir 1
812#define CL_KHR_SPIR_EXTENSION_NAME \
813 "cl_khr_spir"
814
815/* cl_device_info */
816#define CL_DEVICE_SPIR_VERSIONS 0x40E0
817
818/* cl_program_binary_type */
819#define CL_PROGRAM_BINARY_TYPE_INTERMEDIATE 0x40E1
820
821/***************************************************************
822* cl_khr_create_command_queue
823***************************************************************/
824#define cl_khr_create_command_queue 1
825#define CL_KHR_CREATE_COMMAND_QUEUE_EXTENSION_NAME \
826 "cl_khr_create_command_queue"
827
828typedef cl_properties cl_queue_properties_khr;
829
830
831typedef cl_command_queue (CL_API_CALL *
832clCreateCommandQueueWithPropertiesKHR_fn)(
833 cl_context context,
834 cl_device_id device,
835 const cl_queue_properties_khr* properties,
836 cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2;
837
838#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES)
839
840extern CL_API_ENTRY cl_command_queue CL_API_CALL
841clCreateCommandQueueWithPropertiesKHR(
842 cl_context context,
843 cl_device_id device,
844 const cl_queue_properties_khr* properties,
845 cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2;
846
847#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */
848
849/***************************************************************
850* cl_nv_device_attribute_query
851***************************************************************/
852#define cl_nv_device_attribute_query 1
853#define CL_NV_DEVICE_ATTRIBUTE_QUERY_EXTENSION_NAME \
854 "cl_nv_device_attribute_query"
855
856/* cl_device_info */
857#define CL_DEVICE_COMPUTE_CAPABILITY_MAJOR_NV 0x4000
858#define CL_DEVICE_COMPUTE_CAPABILITY_MINOR_NV 0x4001
859#define CL_DEVICE_REGISTERS_PER_BLOCK_NV 0x4002
860#define CL_DEVICE_WARP_SIZE_NV 0x4003
861#define CL_DEVICE_GPU_OVERLAP_NV 0x4004
862#define CL_DEVICE_KERNEL_EXEC_TIMEOUT_NV 0x4005
863#define CL_DEVICE_INTEGRATED_MEMORY_NV 0x4006
864#define CL_DEVICE_ATTRIBUTE_ASYNC_ENGINE_COUNT_NV 0x4007
865#define CL_DEVICE_PCI_BUS_ID_NV 0x4008
866#define CL_DEVICE_PCI_SLOT_ID_NV 0x4009
867#define CL_DEVICE_PCI_DOMAIN_ID_NV 0x400A
868#define CL_DEVICE_MAX_LOCAL_MEMORY_PER_SM_NV 0x400B
869
870/******************************************
871* cl_nv_create_buffer extension *
872******************************************/
873
874typedef cl_bitfield cl_mem_flags_NV;
875CL_API_ENTRY cl_mem CL_API_CALL
876clCreateBufferNV(cl_context context,
877 cl_mem_flags flags,
878 cl_mem_flags_NV flags_NV,
879 size_t size,
880 void *host_ptr,
881 cl_int *errcode_ret);
882
883/******************************************
884* cl_kernel_attribute_nv extension *
885*******************************************/
886
887typedef enum kernel_attribute_enum {
888 CL_KERNEL_PREFERRED_LOCAL_MEMORY_SIZE_NV = 0, /* setting preferred shared memory size */
889} cl_kernel_attribute_nv;
890
891CL_API_ENTRY cl_int CL_API_CALL
892clSetKernelAttributeNV(cl_kernel kernel,
893 cl_device_id device,
894 cl_kernel_attribute_nv k_attr,
895 size_t param_value_size,
896 const void *param_value);
897
898CL_API_ENTRY cl_int CL_API_CALL
899clGetKernelAttributeNV(cl_kernel kernel,
900 cl_device_id device,
901 cl_kernel_attribute_nv k_attr,
902 size_t param_value_size,
903 void *param_value,
904 size_t *param_value_size_ret);
905
906#define CL_MEM_LOCATION_HOST_NV (1 << 0)
907#define CL_MEM_PINNED_NV (1 << 1)
908
909/***************************************************************
910* cl_amd_device_attribute_query
911***************************************************************/
912#define cl_amd_device_attribute_query 1
913#define CL_AMD_DEVICE_ATTRIBUTE_QUERY_EXTENSION_NAME \
914 "cl_amd_device_attribute_query"
915
916/* cl_device_info */
917#define CL_DEVICE_PROFILING_TIMER_OFFSET_AMD 0x4036
918#define CL_DEVICE_TOPOLOGY_AMD 0x4037
919#define CL_DEVICE_BOARD_NAME_AMD 0x4038
920#define CL_DEVICE_GLOBAL_FREE_MEMORY_AMD 0x4039
921#define CL_DEVICE_SIMD_PER_COMPUTE_UNIT_AMD 0x4040
922#define CL_DEVICE_SIMD_WIDTH_AMD 0x4041
923#define CL_DEVICE_SIMD_INSTRUCTION_WIDTH_AMD 0x4042
924#define CL_DEVICE_WAVEFRONT_WIDTH_AMD 0x4043
925#define CL_DEVICE_GLOBAL_MEM_CHANNELS_AMD 0x4044
926#define CL_DEVICE_GLOBAL_MEM_CHANNEL_BANKS_AMD 0x4045
927#define CL_DEVICE_GLOBAL_MEM_CHANNEL_BANK_WIDTH_AMD 0x4046
928#define CL_DEVICE_LOCAL_MEM_SIZE_PER_COMPUTE_UNIT_AMD 0x4047
929#define CL_DEVICE_LOCAL_MEM_BANKS_AMD 0x4048
930#define CL_DEVICE_THREAD_TRACE_SUPPORTED_AMD 0x4049
931#define CL_DEVICE_GFXIP_MAJOR_AMD 0x404A
932#define CL_DEVICE_GFXIP_MINOR_AMD 0x404B
933#define CL_DEVICE_AVAILABLE_ASYNC_QUEUES_AMD 0x404C
934#define CL_DEVICE_PREFERRED_WORK_GROUP_SIZE_AMD 0x4030
935#define CL_DEVICE_MAX_WORK_GROUP_SIZE_AMD 0x4031
936#define CL_DEVICE_PREFERRED_CONSTANT_BUFFER_SIZE_AMD 0x4033
937#define CL_DEVICE_PCIE_ID_AMD 0x4034
938
939/***************************************************************
940* cl_arm_printf
941***************************************************************/
942#define cl_arm_printf 1
943#define CL_ARM_PRINTF_EXTENSION_NAME \
944 "cl_arm_printf"
945
946/* cl_context_properties */
947#define CL_PRINTF_CALLBACK_ARM 0x40B0
948#define CL_PRINTF_BUFFERSIZE_ARM 0x40B1
949
950/***************************************************************
951* cl_ext_device_fission
952***************************************************************/
953#define cl_ext_device_fission 1
954#define CL_EXT_DEVICE_FISSION_EXTENSION_NAME \
955 "cl_ext_device_fission"
956
957typedef cl_ulong cl_device_partition_property_ext;
958
959/* Error codes */
960#define CL_DEVICE_PARTITION_FAILED_EXT -1057
961#define CL_INVALID_PARTITION_COUNT_EXT -1058
962#define CL_INVALID_PARTITION_NAME_EXT -1059
963
964/* cl_device_info */
965#define CL_DEVICE_PARENT_DEVICE_EXT 0x4054
966#define CL_DEVICE_PARTITION_TYPES_EXT 0x4055
967#define CL_DEVICE_AFFINITY_DOMAINS_EXT 0x4056
968#define CL_DEVICE_REFERENCE_COUNT_EXT 0x4057
969#define CL_DEVICE_PARTITION_STYLE_EXT 0x4058
970
971/* cl_device_partition_property_ext */
972#define CL_DEVICE_PARTITION_EQUALLY_EXT 0x4050
973#define CL_DEVICE_PARTITION_BY_COUNTS_EXT 0x4051
974#define CL_DEVICE_PARTITION_BY_NAMES_EXT 0x4052
975#define CL_DEVICE_PARTITION_BY_AFFINITY_DOMAIN_EXT 0x4053
976
977/* cl_device_partition_property_ext - affinity domains */
978#define CL_AFFINITY_DOMAIN_L1_CACHE_EXT 0x1
979#define CL_AFFINITY_DOMAIN_L2_CACHE_EXT 0x2
980#define CL_AFFINITY_DOMAIN_L3_CACHE_EXT 0x3
981#define CL_AFFINITY_DOMAIN_L4_CACHE_EXT 0x4
982#define CL_AFFINITY_DOMAIN_NUMA_EXT 0x10
983#define CL_AFFINITY_DOMAIN_NEXT_FISSIONABLE_EXT 0x100
984
985/* cl_device_partition_property_ext - list terminators */
986#define CL_PROPERTIES_LIST_END_EXT ((cl_device_partition_property_ext)0)
987#define CL_PARTITION_BY_COUNTS_LIST_END_EXT ((cl_device_partition_property_ext)0)
988#define CL_PARTITION_BY_NAMES_LIST_END_EXT ((cl_device_partition_property_ext)0 - 1)
989
990
991typedef cl_int (CL_API_CALL *
992clReleaseDeviceEXT_fn)(
993 cl_device_id device) CL_API_SUFFIX__VERSION_1_1;
994
995typedef cl_int (CL_API_CALL *
996clRetainDeviceEXT_fn)(
997 cl_device_id device) CL_API_SUFFIX__VERSION_1_1;
998
999typedef cl_int (CL_API_CALL *
1000clCreateSubDevicesEXT_fn)(
1001 cl_device_id in_device,
1002 const cl_device_partition_property_ext* properties,
1003 cl_uint num_entries,
1004 cl_device_id* out_devices,
1005 cl_uint* num_devices) CL_API_SUFFIX__VERSION_1_1;
1006
1007#if !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES)
1008
1009extern CL_API_ENTRY cl_int CL_API_CALL
1010clReleaseDeviceEXT(
1011 cl_device_id device) CL_API_SUFFIX__VERSION_1_1;
1012
1013extern CL_API_ENTRY cl_int CL_API_CALL
1014clRetainDeviceEXT(
1015 cl_device_id device) CL_API_SUFFIX__VERSION_1_1;
1016
1017extern CL_API_ENTRY cl_int CL_API_CALL
1018clCreateSubDevicesEXT(
1019 cl_device_id in_device,
1020 const cl_device_partition_property_ext* properties,
1021 cl_uint num_entries,
1022 cl_device_id* out_devices,
1023 cl_uint* num_devices) CL_API_SUFFIX__VERSION_1_1;
1024
1025#endif /* !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) */
1026
1027/***************************************************************
1028* cl_ext_migrate_memobject
1029***************************************************************/
1030#define cl_ext_migrate_memobject 1
1031#define CL_EXT_MIGRATE_MEMOBJECT_EXTENSION_NAME \
1032 "cl_ext_migrate_memobject"
1033
1034typedef cl_bitfield cl_mem_migration_flags_ext;
1035
1036/* cl_mem_migration_flags_ext */
1037#define CL_MIGRATE_MEM_OBJECT_HOST_EXT (1 << 0)
1038
1039/* cl_command_type */
1040#define CL_COMMAND_MIGRATE_MEM_OBJECT_EXT 0x4040
1041
1042
1043typedef cl_int (CL_API_CALL *
1044clEnqueueMigrateMemObjectEXT_fn)(
1045 cl_command_queue command_queue,
1046 cl_uint num_mem_objects,
1047 const cl_mem* mem_objects,
1048 cl_mem_migration_flags_ext flags,
1049 cl_uint num_events_in_wait_list,
1050 const cl_event* event_wait_list,
1051 cl_event* event) ;
1052
1053#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES)
1054
1055extern CL_API_ENTRY cl_int CL_API_CALL
1056clEnqueueMigrateMemObjectEXT(
1057 cl_command_queue command_queue,
1058 cl_uint num_mem_objects,
1059 const cl_mem* mem_objects,
1060 cl_mem_migration_flags_ext flags,
1061 cl_uint num_events_in_wait_list,
1062 const cl_event* event_wait_list,
1063 cl_event* event) ;
1064
1065#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */
1066
1067/***************************************************************
1068* cl_ext_cxx_for_opencl
1069***************************************************************/
1070#define cl_ext_cxx_for_opencl 1
1071#define CL_EXT_CXX_FOR_OPENCL_EXTENSION_NAME \
1072 "cl_ext_cxx_for_opencl"
1073
1074/* cl_device_info */
1075#define CL_DEVICE_CXX_FOR_OPENCL_NUMERIC_VERSION_EXT 0x4230
1076
1077/***************************************************************
1078* cl_qcom_ext_host_ptr
1079***************************************************************/
1080#define cl_qcom_ext_host_ptr 1
1081#define CL_QCOM_EXT_HOST_PTR_EXTENSION_NAME \
1082 "cl_qcom_ext_host_ptr"
1083
1084typedef cl_uint cl_image_pitch_info_qcom;
1085typedef struct _cl_mem_ext_host_ptr {
1086 cl_uint allocation_type;
1087 cl_uint host_cache_policy;
1088} cl_mem_ext_host_ptr;
1089
1090/* cl_mem_flags */
1091#define CL_MEM_EXT_HOST_PTR_QCOM (1 << 29)
1092
1093/* cl_device_info */
1094#define CL_DEVICE_EXT_MEM_PADDING_IN_BYTES_QCOM 0x40A0
1095#define CL_DEVICE_PAGE_SIZE_QCOM 0x40A1
1096
1097/* cl_image_pitch_info_qcom */
1098#define CL_IMAGE_ROW_ALIGNMENT_QCOM 0x40A2
1099#define CL_IMAGE_SLICE_ALIGNMENT_QCOM 0x40A3
1100
1101/* cl_uint host_cache_policy */
1102#define CL_MEM_HOST_UNCACHED_QCOM 0x40A4
1103#define CL_MEM_HOST_WRITEBACK_QCOM 0x40A5
1104#define CL_MEM_HOST_WRITETHROUGH_QCOM 0x40A6
1105#define CL_MEM_HOST_WRITE_COMBINING_QCOM 0x40A7
1106
1107
1108typedef cl_int (CL_API_CALL *
1109clGetDeviceImageInfoQCOM_fn)(
1110 cl_device_id device,
1111 size_t image_width,
1112 size_t image_height,
1113 const cl_image_format* image_format,
1114 cl_image_pitch_info_qcom param_name,
1115 size_t param_value_size,
1116 void* param_value,
1117 size_t* param_value_size_ret) ;
1118
1119#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES)
1120
1121extern CL_API_ENTRY cl_int CL_API_CALL
1122clGetDeviceImageInfoQCOM(
1123 cl_device_id device,
1124 size_t image_width,
1125 size_t image_height,
1126 const cl_image_format* image_format,
1127 cl_image_pitch_info_qcom param_name,
1128 size_t param_value_size,
1129 void* param_value,
1130 size_t* param_value_size_ret) ;
1131
1132#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */
1133
1134/***************************************************************
1135* cl_qcom_ext_host_ptr_iocoherent
1136***************************************************************/
1137#define cl_qcom_ext_host_ptr_iocoherent 1
1138#define CL_QCOM_EXT_HOST_PTR_IOCOHERENT_EXTENSION_NAME \
1139 "cl_qcom_ext_host_ptr_iocoherent"
1140
1141/* cl_uint host_cache_policy */
1142#define CL_MEM_HOST_IOCOHERENT_QCOM 0x40A9
1143
1144/***************************************************************
1145* cl_qcom_ion_host_ptr
1146***************************************************************/
1147#define cl_qcom_ion_host_ptr 1
1148#define CL_QCOM_ION_HOST_PTR_EXTENSION_NAME \
1149 "cl_qcom_ion_host_ptr"
1150
1151/* type cl_mem_ext_host_ptr */
1152typedef struct _cl_mem_ion_host_ptr {
1153 cl_mem_ext_host_ptr ext_host_ptr;
1154 int ion_filedesc;
1155 void* ion_hostptr;
1156} cl_mem_ion_host_ptr;
1157
1158/* cl_uint allocation_type */
1159#define CL_MEM_ION_HOST_PTR_QCOM 0x40A8
1160
1161/***************************************************************
1162* cl_qcom_android_native_buffer_host_ptr
1163***************************************************************/
1164#define cl_qcom_android_native_buffer_host_ptr 1
1165#define CL_QCOM_ANDROID_NATIVE_BUFFER_HOST_PTR_EXTENSION_NAME \
1166 "cl_qcom_android_native_buffer_host_ptr"
1167
1168/* type cl_mem_ext_host_ptr */
1169typedef struct _cl_mem_android_native_buffer_host_ptr {
1170 cl_mem_ext_host_ptr ext_host_ptr;
1171 void* anb_ptr;
1172} cl_mem_android_native_buffer_host_ptr;
1173
1174/* cl_uint allocation_type */
1175#define CL_MEM_ANDROID_NATIVE_BUFFER_HOST_PTR_QCOM 0x40C6
1176
1177/***************************************************************
1178* cl_img_yuv_image
1179***************************************************************/
1180#define cl_img_yuv_image 1
1181#define CL_IMG_YUV_IMAGE_EXTENSION_NAME \
1182 "cl_img_yuv_image"
1183
1184/* cl_channel_order */
1185#define CL_NV21_IMG 0x40D0
1186#define CL_YV12_IMG 0x40D1
1187
1188/***************************************************************
1189* cl_img_cached_allocations
1190***************************************************************/
1191#define cl_img_cached_allocations 1
1192#define CL_IMG_CACHED_ALLOCATIONS_EXTENSION_NAME \
1193 "cl_img_cached_allocations"
1194
1195/* cl_mem_flags */
1196#define CL_MEM_USE_UNCACHED_CPU_MEMORY_IMG (1 << 26)
1197#define CL_MEM_USE_CACHED_CPU_MEMORY_IMG (1 << 27)
1198
1199/***************************************************************
1200* cl_img_use_gralloc_ptr
