blob: 12ebd043748a297e1898d34a6963a0a8e728af82 [file] [log] [blame]
Anthony Barbier6ff3b192017-09-04 18:44:23 +01001/*******************************************************************************
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002 * Copyright (c) 2008-2023 The Khronos Group Inc.
Anthony Barbier6ff3b192017-09-04 18:44:23 +01003 *
Sheri Zhang79cb9452021-09-07 14:51:49 +01004 * 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
Anthony Barbier6ff3b192017-09-04 18:44:23 +01007 *
Sheri Zhang79cb9452021-09-07 14:51:49 +01008 * http://www.apache.org/licenses/LICENSE-2.0
Anthony Barbier6ff3b192017-09-04 18:44:23 +01009 *
Sheri Zhang79cb9452021-09-07 14:51:49 +010010 * 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.
Anthony Barbier6ff3b192017-09-04 18:44:23 +010015 ******************************************************************************/
16
Viet-Hoa Do633ebd12023-08-11 12:27:59 +010017#ifndef OPENCL_CL_EXT_H_
18#define OPENCL_CL_EXT_H_
Anthony Barbier6ff3b192017-09-04 18:44:23 +010019
Viet-Hoa Do633ebd12023-08-11 12:27:59 +010020/*
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
Anthony Barbier6ff3b192017-09-04 18:44:23 +010042
43#ifdef __cplusplus
44extern "C" {
45#endif
46
Viet-Hoa Do633ebd12023-08-11 12:27:59 +010047/***************************************************************
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"
Anthony Barbier8b2fdc92018-08-09 11:42:38 +010053
Viet-Hoa Do633ebd12023-08-11 12:27:59 +010054typedef 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;
Pablo Telloe86a09f2018-01-11 15:44:48 +000063
64/* cl_device_info */
Viet-Hoa Do633ebd12023-08-11 12:27:59 +010065#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
Pablo Telloe86a09f2018-01-11 15:44:48 +0000101
Pablo Telloe86a09f2018-01-11 15:44:48 +0000102
Viet-Hoa Do633ebd12023-08-11 12:27:59 +0100103typedef 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
865/***************************************************************
866* cl_amd_device_attribute_query
867***************************************************************/
868#define cl_amd_device_attribute_query 1
869#define CL_AMD_DEVICE_ATTRIBUTE_QUERY_EXTENSION_NAME \
870 "cl_amd_device_attribute_query"
871
872/* cl_device_info */
873#define CL_DEVICE_PROFILING_TIMER_OFFSET_AMD 0x4036
874#define CL_DEVICE_TOPOLOGY_AMD 0x4037
875#define CL_DEVICE_BOARD_NAME_AMD 0x4038
876#define CL_DEVICE_GLOBAL_FREE_MEMORY_AMD 0x4039
877#define CL_DEVICE_SIMD_PER_COMPUTE_UNIT_AMD 0x4040
878#define CL_DEVICE_SIMD_WIDTH_AMD 0x4041
879#define CL_DEVICE_SIMD_INSTRUCTION_WIDTH_AMD 0x4042
880#define CL_DEVICE_WAVEFRONT_WIDTH_AMD 0x4043
881#define CL_DEVICE_GLOBAL_MEM_CHANNELS_AMD 0x4044
882#define CL_DEVICE_GLOBAL_MEM_CHANNEL_BANKS_AMD 0x4045
883#define CL_DEVICE_GLOBAL_MEM_CHANNEL_BANK_WIDTH_AMD 0x4046
884#define CL_DEVICE_LOCAL_MEM_SIZE_PER_COMPUTE_UNIT_AMD 0x4047
885#define CL_DEVICE_LOCAL_MEM_BANKS_AMD 0x4048
886#define CL_DEVICE_THREAD_TRACE_SUPPORTED_AMD 0x4049
887#define CL_DEVICE_GFXIP_MAJOR_AMD 0x404A
888#define CL_DEVICE_GFXIP_MINOR_AMD 0x404B
889#define CL_DEVICE_AVAILABLE_ASYNC_QUEUES_AMD 0x404C
890#define CL_DEVICE_PREFERRED_WORK_GROUP_SIZE_AMD 0x4030
891#define CL_DEVICE_MAX_WORK_GROUP_SIZE_AMD 0x4031
892#define CL_DEVICE_PREFERRED_CONSTANT_BUFFER_SIZE_AMD 0x4033
893#define CL_DEVICE_PCIE_ID_AMD 0x4034
894
895/***************************************************************
896* cl_arm_printf
897***************************************************************/
898#define cl_arm_printf 1
899#define CL_ARM_PRINTF_EXTENSION_NAME \
900 "cl_arm_printf"
901
902/* cl_context_properties */
903#define CL_PRINTF_CALLBACK_ARM 0x40B0
904#define CL_PRINTF_BUFFERSIZE_ARM 0x40B1
905
906/***************************************************************
907* cl_ext_device_fission
908***************************************************************/
909#define cl_ext_device_fission 1
910#define CL_EXT_DEVICE_FISSION_EXTENSION_NAME \
911 "cl_ext_device_fission"
912
913typedef cl_ulong cl_device_partition_property_ext;
914
915/* Error codes */
916#define CL_DEVICE_PARTITION_FAILED_EXT -1057
917#define CL_INVALID_PARTITION_COUNT_EXT -1058
918#define CL_INVALID_PARTITION_NAME_EXT -1059
919
920/* cl_device_info */
921#define CL_DEVICE_PARENT_DEVICE_EXT 0x4054
922#define CL_DEVICE_PARTITION_TYPES_EXT 0x4055
923#define CL_DEVICE_AFFINITY_DOMAINS_EXT 0x4056
924#define CL_DEVICE_REFERENCE_COUNT_EXT 0x4057
925#define CL_DEVICE_PARTITION_STYLE_EXT 0x4058
926
927/* cl_device_partition_property_ext */
928#define CL_DEVICE_PARTITION_EQUALLY_EXT 0x4050
929#define CL_DEVICE_PARTITION_BY_COUNTS_EXT 0x4051
930#define CL_DEVICE_PARTITION_BY_NAMES_EXT 0x4052
931#define CL_DEVICE_PARTITION_BY_AFFINITY_DOMAIN_EXT 0x4053
932
933/* cl_device_partition_property_ext - affinity domains */
934#define CL_AFFINITY_DOMAIN_L1_CACHE_EXT 0x1
935#define CL_AFFINITY_DOMAIN_L2_CACHE_EXT 0x2
936#define CL_AFFINITY_DOMAIN_L3_CACHE_EXT 0x3
937#define CL_AFFINITY_DOMAIN_L4_CACHE_EXT 0x4
938#define CL_AFFINITY_DOMAIN_NUMA_EXT 0x10
939#define CL_AFFINITY_DOMAIN_NEXT_FISSIONABLE_EXT 0x100
940
941/* cl_device_partition_property_ext - list terminators */
942#define CL_PROPERTIES_LIST_END_EXT ((cl_device_partition_property_ext)0)
943#define CL_PARTITION_BY_COUNTS_LIST_END_EXT ((cl_device_partition_property_ext)0)
944#define CL_PARTITION_BY_NAMES_LIST_END_EXT ((cl_device_partition_property_ext)0 - 1)
945
946
947typedef cl_int (CL_API_CALL *
948clReleaseDeviceEXT_fn)(
949 cl_device_id device) CL_API_SUFFIX__VERSION_1_1;
950
951typedef cl_int (CL_API_CALL *
952clRetainDeviceEXT_fn)(
953 cl_device_id device) CL_API_SUFFIX__VERSION_1_1;
954
955typedef cl_int (CL_API_CALL *
956clCreateSubDevicesEXT_fn)(
957 cl_device_id in_device,
958 const cl_device_partition_property_ext* properties,
959 cl_uint num_entries,
960 cl_device_id* out_devices,
961 cl_uint* num_devices) CL_API_SUFFIX__VERSION_1_1;
962
963#if !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES)
964
965extern CL_API_ENTRY cl_int CL_API_CALL
966clReleaseDeviceEXT(
967 cl_device_id device) CL_API_SUFFIX__VERSION_1_1;
968
969extern CL_API_ENTRY cl_int CL_API_CALL
970clRetainDeviceEXT(
971 cl_device_id device) CL_API_SUFFIX__VERSION_1_1;
972
973extern CL_API_ENTRY cl_int CL_API_CALL
974clCreateSubDevicesEXT(
975 cl_device_id in_device,
976 const cl_device_partition_property_ext* properties,
977 cl_uint num_entries,
978 cl_device_id* out_devices,
979 cl_uint* num_devices) CL_API_SUFFIX__VERSION_1_1;
980
981#endif /* !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) */
982
983/***************************************************************
984* cl_ext_migrate_memobject
985***************************************************************/
986#define cl_ext_migrate_memobject 1
987#define CL_EXT_MIGRATE_MEMOBJECT_EXTENSION_NAME \
988 "cl_ext_migrate_memobject"
989
990typedef cl_bitfield cl_mem_migration_flags_ext;
991
992/* cl_mem_migration_flags_ext */
993#define CL_MIGRATE_MEM_OBJECT_HOST_EXT (1 << 0)
994
995/* cl_command_type */
996#define CL_COMMAND_MIGRATE_MEM_OBJECT_EXT 0x4040
997
998
999typedef cl_int (CL_API_CALL *
1000clEnqueueMigrateMemObjectEXT_fn)(
1001 cl_command_queue command_queue,
1002 cl_uint num_mem_objects,
1003 const cl_mem* mem_objects,
1004 cl_mem_migration_flags_ext flags,
1005 cl_uint num_events_in_wait_list,
1006 const cl_event* event_wait_list,
1007 cl_event* event) ;
1008
1009#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES)
1010
1011extern CL_API_ENTRY cl_int CL_API_CALL
1012clEnqueueMigrateMemObjectEXT(
1013 cl_command_queue command_queue,
1014 cl_uint num_mem_objects,
1015 const cl_mem* mem_objects,
1016 cl_mem_migration_flags_ext flags,
1017 cl_uint num_events_in_wait_list,
1018 const cl_event* event_wait_list,
1019 cl_event* event) ;
1020
1021#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */
1022
1023/***************************************************************
1024* cl_ext_cxx_for_opencl
1025***************************************************************/
1026#define cl_ext_cxx_for_opencl 1
1027#define CL_EXT_CXX_FOR_OPENCL_EXTENSION_NAME \
1028 "cl_ext_cxx_for_opencl"
1029
1030/* cl_device_info */
1031#define CL_DEVICE_CXX_FOR_OPENCL_NUMERIC_VERSION_EXT 0x4230
1032
1033/***************************************************************
1034* cl_qcom_ext_host_ptr
1035***************************************************************/
1036#define cl_qcom_ext_host_ptr 1
1037#define CL_QCOM_EXT_HOST_PTR_EXTENSION_NAME \
1038 "cl_qcom_ext_host_ptr"
1039
1040typedef cl_uint cl_image_pitch_info_qcom;
1041typedef struct _cl_mem_ext_host_ptr {
1042 cl_uint allocation_type;
1043 cl_uint host_cache_policy;
1044} cl_mem_ext_host_ptr;
1045
1046/* cl_mem_flags */
1047#define CL_MEM_EXT_HOST_PTR_QCOM (1 << 29)
1048
1049/* cl_device_info */
1050#define CL_DEVICE_EXT_MEM_PADDING_IN_BYTES_QCOM 0x40A0
1051#define CL_DEVICE_PAGE_SIZE_QCOM 0x40A1
1052
1053/* cl_image_pitch_info_qcom */
1054#define CL_IMAGE_ROW_ALIGNMENT_QCOM 0x40A2
1055#define CL_IMAGE_SLICE_ALIGNMENT_QCOM 0x40A3
1056
1057/* cl_uint host_cache_policy */
1058#define CL_MEM_HOST_UNCACHED_QCOM 0x40A4
1059#define CL_MEM_HOST_WRITEBACK_QCOM 0x40A5
1060#define CL_MEM_HOST_WRITETHROUGH_QCOM 0x40A6
1061#define CL_MEM_HOST_WRITE_COMBINING_QCOM 0x40A7
1062
1063
1064typedef cl_int (CL_API_CALL *
1065clGetDeviceImageInfoQCOM_fn)(
1066 cl_device_id device,
1067 size_t image_width,
1068 size_t image_height,
1069 const cl_image_format* image_format,
1070 cl_image_pitch_info_qcom param_name,
1071 size_t param_value_size,
1072 void* param_value,
1073 size_t* param_value_size_ret) ;
1074
1075#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES)
1076
1077extern CL_API_ENTRY cl_int CL_API_CALL
1078clGetDeviceImageInfoQCOM(
1079 cl_device_id device,
1080 size_t image_width,
1081 size_t image_height,
1082 const cl_image_format* image_format,
1083 cl_image_pitch_info_qcom param_name,
1084 size_t param_value_size,
1085 void* param_value,
1086 size_t* param_value_size_ret) ;
1087
1088#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */
1089
1090/***************************************************************
1091* cl_qcom_ext_host_ptr_iocoherent
1092***************************************************************/
1093#define cl_qcom_ext_host_ptr_iocoherent 1
1094#define CL_QCOM_EXT_HOST_PTR_IOCOHERENT_EXTENSION_NAME \
1095 "cl_qcom_ext_host_ptr_iocoherent"
1096
1097/* cl_uint host_cache_policy */
1098#define CL_MEM_HOST_IOCOHERENT_QCOM 0x40A9
1099
1100/***************************************************************
1101* cl_qcom_ion_host_ptr
1102***************************************************************/
1103#define cl_qcom_ion_host_ptr 1
1104#define CL_QCOM_ION_HOST_PTR_EXTENSION_NAME \
1105 "cl_qcom_ion_host_ptr"
1106
1107/* type cl_mem_ext_host_ptr */
1108typedef struct _cl_mem_ion_host_ptr {
1109 cl_mem_ext_host_ptr ext_host_ptr;
1110 int ion_filedesc;
1111 void* ion_hostptr;
1112} cl_mem_ion_host_ptr;
1113
1114/* cl_uint allocation_type */
1115#define CL_MEM_ION_HOST_PTR_QCOM 0x40A8
1116
1117/***************************************************************
1118* cl_qcom_android_native_buffer_host_ptr
1119***************************************************************/
1120#define cl_qcom_android_native_buffer_host_ptr 1
1121#define CL_QCOM_ANDROID_NATIVE_BUFFER_HOST_PTR_EXTENSION_NAME \
1122 "cl_qcom_android_native_buffer_host_ptr"
1123
1124/* type cl_mem_ext_host_ptr */
1125typedef struct _cl_mem_android_native_buffer_host_ptr {
1126 cl_mem_ext_host_ptr ext_host_ptr;
1127 void* anb_ptr;
1128} cl_mem_android_native_buffer_host_ptr;
1129
1130/* cl_uint allocation_type */
1131#define CL_MEM_ANDROID_NATIVE_BUFFER_HOST_PTR_QCOM 0x40C6
1132
1133/***************************************************************
1134* cl_img_yuv_image
1135***************************************************************/
1136#define cl_img_yuv_image 1
1137#define CL_IMG_YUV_IMAGE_EXTENSION_NAME \
1138 "cl_img_yuv_image"
1139
1140/* cl_channel_order */
1141#define CL_NV21_IMG 0x40D0
1142#define CL_YV12_IMG 0x40D1
1143
1144/***************************************************************
1145* cl_img_cached_allocations
1146***************************************************************/
1147#define cl_img_cached_allocations 1
1148#define CL_IMG_CACHED_ALLOCATIONS_EXTENSION_NAME \
1149 "cl_img_cached_allocations"
1150
1151/* cl_mem_flags */
1152#define CL_MEM_USE_UNCACHED_CPU_MEMORY_IMG (1 << 26)
1153#define CL_MEM_USE_CACHED_CPU_MEMORY_IMG (1 << 27)
1154
1155/***************************************************************
1156* cl_img_use_gralloc_ptr
1157***************************************************************/
1158#define cl_img_use_gralloc_ptr 1
1159#define CL_IMG_USE_GRALLOC_PTR_EXTENSION_NAME \
1160 "cl_img_use_gralloc_ptr"
1161
1162/* Error codes */
1163#define CL_GRALLOC_RESOURCE_NOT_ACQUIRED_IMG 0x40D4
1164#define CL_INVALID_GRALLOC_OBJECT_IMG 0x40D5
1165
1166/* cl_mem_flags */
1167#define CL_MEM_USE_GRALLOC_PTR_IMG (1 << 28)
1168
1169/* cl_command_type */
1170#define CL_COMMAND_ACQUIRE_GRALLOC_OBJECTS_IMG 0x40D2
1171#define CL_COMMAND_RELEASE_GRALLOC_OBJECTS_IMG 0x40D3
1172
1173
1174typedef cl_int (CL_API_CALL *
1175clEnqueueAcquireGrallocObjectsIMG_fn)(
1176 cl_command_queue command_queue,
1177 cl_uint num_objects,
1178 const cl_mem* mem_objects,
1179 cl_uint num_events_in_wait_list,
1180 const cl_event* event_wait_list,
1181 cl_event* event) CL_API_SUFFIX__VERSION_1_2;
1182
1183typedef cl_int (CL_API_CALL *
1184clEnqueueReleaseGrallocObjectsIMG_fn)(
1185 cl_command_queue command_queue,
1186 cl_uint num_objects,
1187 const cl_mem* mem_objects,
1188 cl_uint num_events_in_wait_list,
1189 const cl_event* event_wait_list,
1190 cl_event* event) CL_API_SUFFIX__VERSION_1_2;
1191
1192#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES)
1193
1194extern CL_API_ENTRY cl_int CL_API_CALL
1195clEnqueueAcquireGrallocObjectsIMG(
1196 cl_command_queue command_queue,
1197 cl_uint num_objects,
1198 const cl_mem* mem_objects,
1199 cl_uint num_events_in_wait_list,
1200 const cl_event* event_wait_list,
1201 cl_event* event) CL_API_SUFFIX__VERSION_1_2;
1202
1203extern CL_API_ENTRY cl_int CL_API_CALL
1204clEnqueueReleaseGrallocObjectsIMG(
1205 cl_command_queue command_queue,
1206 cl_uint num_objects,
1207 const cl_mem* mem_objects,
1208 cl_uint num_events_in_wait_list,
1209 const cl_event* event_wait_list,
1210 cl_event* event) CL_API_SUFFIX__VERSION_1_2;
1211
1212#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */
1213
1214/***************************************************************
1215* cl_img_generate_mipmap
1216***************************************************************/
1217#define cl_img_generate_mipmap 1
1218#define CL_IMG_GENERATE_MIPMAP_EXTENSION_NAME \
1219 "cl_img_generate_mipmap"
1220
1221typedef cl_uint cl_mipmap_filter_mode_img;
1222
1223/* cl_mipmap_filter_mode_img */
1224#define CL_MIPMAP_FILTER_ANY_IMG 0x0
1225#define CL_MIPMAP_FILTER_BOX_IMG 0x1
1226
1227/* cl_command_type */
1228#define CL_COMMAND_GENERATE_MIPMAP_IMG 0x40D6
1229
1230
1231typedef cl_int (CL_API_CALL *
1232clEnqueueGenerateMipmapIMG_fn)(
1233 cl_command_queue command_queue,
1234 cl_mem src_image,
1235 cl_mem dst_image,
1236 cl_mipmap_filter_mode_img mipmap_filter_mode,
1237 const size_t* array_region,
1238 const size_t* mip_region,
1239 cl_uint num_events_in_wait_list,
1240 const cl_event* event_wait_list,
1241 cl_event* event) CL_API_SUFFIX__VERSION_1_2;
1242
1243#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES)
1244
1245extern CL_API_ENTRY cl_int CL_API_CALL
1246clEnqueueGenerateMipmapIMG(
1247 cl_command_queue command_queue,
1248 cl_mem src_image,
1249 cl_mem dst_image,
1250 cl_mipmap_filter_mode_img mipmap_filter_mode,
1251 const size_t* array_region,
1252 const size_t* mip_region,
1253 cl_uint num_events_in_wait_list,
1254 const cl_event* event_wait_list,
1255 cl_event* event) CL_API_SUFFIX__VERSION_1_2;
1256
1257#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */
1258
1259/***************************************************************
1260* cl_img_mem_properties
1261***************************************************************/
1262#define cl_img_mem_properties 1
1263#define CL_IMG_MEM_PROPERTIES_EXTENSION_NAME \
1264 "cl_img_mem_properties"
1265
1266/* cl_mem_properties */
1267#define CL_MEM_ALLOC_FLAGS_IMG 0x40D7
1268
1269/* cl_mem_alloc_flags_img */
1270#define CL_MEM_ALLOC_RELAX_REQUIREMENTS_IMG (1 << 0)
1271
1272/***************************************************************
1273* cl_khr_subgroups
1274***************************************************************/
1275#define cl_khr_subgroups 1
1276#define CL_KHR_SUBGROUPS_EXTENSION_NAME \
1277 "cl_khr_subgroups"
1278
1279#if !defined(CL_VERSION_2_1)
1280/* defined in CL.h for OpenCL 2.1 and newer */
1281typedef cl_uint cl_kernel_sub_group_info;
1282
1283#endif /* !defined(CL_VERSION_2_1) */
1284
1285/* cl_kernel_sub_group_info */
1286#define CL_KERNEL_MAX_SUB_GROUP_SIZE_FOR_NDRANGE_KHR 0x2033
1287#define CL_KERNEL_SUB_GROUP_COUNT_FOR_NDRANGE_KHR 0x2034
1288
1289
1290typedef cl_int (CL_API_CALL *
1291clGetKernelSubGroupInfoKHR_fn)(
1292 cl_kernel in_kernel,
1293 cl_device_id in_device,
1294 cl_kernel_sub_group_info param_name,
1295 size_t input_value_size,
1296 const void* input_value,
1297 size_t param_value_size,
1298 void* param_value,
1299 size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_2_0_DEPRECATED;
1300
1301#if !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES)
1302
1303extern CL_API_ENTRY cl_int CL_API_CALL
1304clGetKernelSubGroupInfoKHR(
1305 cl_kernel in_kernel,
1306 cl_device_id in_device,
1307 cl_kernel_sub_group_info param_name,
1308 size_t input_value_size,
1309 const void* input_value,
1310 size_t param_value_size,
1311 void* param_value,
1312 size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_2_0_DEPRECATED;
1313
1314#endif /* !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) */
1315
1316/***************************************************************
1317* cl_khr_mipmap_image
1318***************************************************************/
1319#define cl_khr_mipmap_image 1
1320#define CL_KHR_MIPMAP_IMAGE_EXTENSION_NAME \
1321 "cl_khr_mipmap_image"
1322
1323/* cl_sampler_properties */
1324#define CL_SAMPLER_MIP_FILTER_MODE_KHR 0x1155
1325#define CL_SAMPLER_LOD_MIN_KHR 0x1156
1326#define CL_SAMPLER_LOD_MAX_KHR 0x1157
1327
1328/***************************************************************
1329* cl_khr_priority_hints
1330***************************************************************/
1331#define cl_khr_priority_hints 1
1332#define CL_KHR_PRIORITY_HINTS_EXTENSION_NAME \
1333 "cl_khr_priority_hints"
1334
1335/* To be used by clGetEventInfo */
1336typedef cl_uint cl_queue_priority_khr;
1337
1338/* cl_queue_properties */
1339#define CL_QUEUE_PRIORITY_KHR 0x1096
1340
1341/* cl_queue_priority_khr */
1342#define CL_QUEUE_PRIORITY_HIGH_KHR (1 << 0)
1343#define CL_QUEUE_PRIORITY_MED_KHR (1 << 1)
1344#define CL_QUEUE_PRIORITY_LOW_KHR (1 << 2)
1345
1346/***************************************************************
1347* cl_khr_throttle_hints
1348***************************************************************/
1349#define cl_khr_throttle_hints 1
1350#define CL_KHR_THROTTLE_HINTS_EXTENSION_NAME \
1351 "cl_khr_throttle_hints"
1352
1353/* To be used by clGetEventInfo */
1354typedef cl_uint cl_queue_throttle_khr;
1355
1356/* cl_queue_properties */
1357#define CL_QUEUE_THROTTLE_KHR 0x1097
1358
1359/* cl_queue_throttle_khr */
1360#define CL_QUEUE_THROTTLE_HIGH_KHR (1 << 0)
1361#define CL_QUEUE_THROTTLE_MED_KHR (1 << 1)
1362#define CL_QUEUE_THROTTLE_LOW_KHR (1 << 2)
1363
1364/***************************************************************
1365* cl_khr_subgroup_named_barrier
1366***************************************************************/
1367#define cl_khr_subgroup_named_barrier 1
1368#define CL_KHR_SUBGROUP_NAMED_BARRIER_EXTENSION_NAME \
1369 "cl_khr_subgroup_named_barrier"
1370
1371/* cl_device_info */
1372#define CL_DEVICE_MAX_NAMED_BARRIER_COUNT_KHR 0x2035
1373
1374/***************************************************************
Sheri Zhang67354e02021-06-30 16:08:29 +01001375* cl_khr_extended_versioning
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01001376***************************************************************/
Sheri Zhang79cb9452021-09-07 14:51:49 +01001377#define cl_khr_extended_versioning 1
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01001378#define CL_KHR_EXTENDED_VERSIONING_EXTENSION_NAME \
1379 "cl_khr_extended_versioning"
Sheri Zhang79cb9452021-09-07 14:51:49 +01001380
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01001381#define CL_VERSION_MAJOR_BITS_KHR 10
1382#define CL_VERSION_MINOR_BITS_KHR 10
1383#define CL_VERSION_PATCH_BITS_KHR 12
Sheri Zhang67354e02021-06-30 16:08:29 +01001384
1385#define CL_VERSION_MAJOR_MASK_KHR ((1 << CL_VERSION_MAJOR_BITS_KHR) - 1)
1386#define CL_VERSION_MINOR_MASK_KHR ((1 << CL_VERSION_MINOR_BITS_KHR) - 1)
1387#define CL_VERSION_PATCH_MASK_KHR ((1 << CL_VERSION_PATCH_BITS_KHR) - 1)
1388
1389#define CL_VERSION_MAJOR_KHR(version) ((version) >> (CL_VERSION_MINOR_BITS_KHR + CL_VERSION_PATCH_BITS_KHR))
1390#define CL_VERSION_MINOR_KHR(version) (((version) >> CL_VERSION_PATCH_BITS_KHR) & CL_VERSION_MINOR_MASK_KHR)
1391#define CL_VERSION_PATCH_KHR(version) ((version) & CL_VERSION_PATCH_MASK_KHR)
1392
1393#define CL_MAKE_VERSION_KHR(major, minor, patch) \
1394 ((((major) & CL_VERSION_MAJOR_MASK_KHR) << (CL_VERSION_MINOR_BITS_KHR + CL_VERSION_PATCH_BITS_KHR)) | \
1395 (((minor) & CL_VERSION_MINOR_MASK_KHR) << CL_VERSION_PATCH_BITS_KHR) | \
1396 ((patch) & CL_VERSION_PATCH_MASK_KHR))
1397
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01001398#define CL_NAME_VERSION_MAX_NAME_SIZE_KHR 64
Sheri Zhang67354e02021-06-30 16:08:29 +01001399
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01001400typedef cl_uint cl_version_khr;
1401typedef struct _cl_name_version_khr {
Sheri Zhang67354e02021-06-30 16:08:29 +01001402 cl_version_khr version;
1403 char name[CL_NAME_VERSION_MAX_NAME_SIZE_KHR];
1404} cl_name_version_khr;
1405
1406/* cl_platform_info */
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01001407#define CL_PLATFORM_NUMERIC_VERSION_KHR 0x0906
1408#define CL_PLATFORM_EXTENSIONS_WITH_VERSION_KHR 0x0907
Sheri Zhang67354e02021-06-30 16:08:29 +01001409
1410/* cl_device_info */
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01001411#define CL_DEVICE_NUMERIC_VERSION_KHR 0x105E
1412#define CL_DEVICE_OPENCL_C_NUMERIC_VERSION_KHR 0x105F
1413#define CL_DEVICE_EXTENSIONS_WITH_VERSION_KHR 0x1060
1414#define CL_DEVICE_ILS_WITH_VERSION_KHR 0x1061
1415#define CL_DEVICE_BUILT_IN_KERNELS_WITH_VERSION_KHR 0x1062
Sheri Zhang67354e02021-06-30 16:08:29 +01001416
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01001417/***************************************************************
1418* cl_khr_device_uuid
1419***************************************************************/
Sheri Zhang79cb9452021-09-07 14:51:49 +01001420#define cl_khr_device_uuid 1
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01001421#define CL_KHR_DEVICE_UUID_EXTENSION_NAME \
1422 "cl_khr_device_uuid"
Sheri Zhang79cb9452021-09-07 14:51:49 +01001423
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01001424/* Size Constants */
1425#define CL_UUID_SIZE_KHR 16
1426#define CL_LUID_SIZE_KHR 8
Sheri Zhang79cb9452021-09-07 14:51:49 +01001427
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01001428/* cl_device_info */
1429#define CL_DEVICE_UUID_KHR 0x106A
1430#define CL_DRIVER_UUID_KHR 0x106B
1431#define CL_DEVICE_LUID_VALID_KHR 0x106C
1432#define CL_DEVICE_LUID_KHR 0x106D
1433#define CL_DEVICE_NODE_MASK_KHR 0x106E
Sheri Zhang79cb9452021-09-07 14:51:49 +01001434
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00001435/***************************************************************
1436* cl_khr_pci_bus_info
1437***************************************************************/
1438#define cl_khr_pci_bus_info 1
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01001439#define CL_KHR_PCI_BUS_INFO_EXTENSION_NAME \
1440 "cl_khr_pci_bus_info"
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00001441
1442typedef struct _cl_device_pci_bus_info_khr {
1443 cl_uint pci_domain;
1444 cl_uint pci_bus;
1445 cl_uint pci_device;
1446 cl_uint pci_function;
1447} cl_device_pci_bus_info_khr;
1448
1449/* cl_device_info */
1450#define CL_DEVICE_PCI_BUS_INFO_KHR 0x410F
1451
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00001452/***************************************************************
1453* cl_khr_suggested_local_work_size
1454***************************************************************/
1455#define cl_khr_suggested_local_work_size 1
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01001456#define CL_KHR_SUGGESTED_LOCAL_WORK_SIZE_EXTENSION_NAME \
1457 "cl_khr_suggested_local_work_size"
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00001458
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00001459
1460typedef cl_int (CL_API_CALL *
1461clGetKernelSuggestedLocalWorkSizeKHR_fn)(
1462 cl_command_queue command_queue,
1463 cl_kernel kernel,
1464 cl_uint work_dim,
1465 const size_t* global_work_offset,
1466 const size_t* global_work_size,
1467 size_t* suggested_local_work_size) CL_API_SUFFIX__VERSION_3_0;
1468
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01001469#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES)
1470
1471extern CL_API_ENTRY cl_int CL_API_CALL
1472clGetKernelSuggestedLocalWorkSizeKHR(
1473 cl_command_queue command_queue,
1474 cl_kernel kernel,
1475 cl_uint work_dim,
1476 const size_t* global_work_offset,
1477 const size_t* global_work_size,
1478 size_t* suggested_local_work_size) CL_API_SUFFIX__VERSION_3_0;
1479
1480#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00001481
1482/***************************************************************
1483* cl_khr_integer_dot_product
1484***************************************************************/
1485#define cl_khr_integer_dot_product 1
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01001486#define CL_KHR_INTEGER_DOT_PRODUCT_EXTENSION_NAME \
1487 "cl_khr_integer_dot_product"
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00001488
1489typedef cl_bitfield cl_device_integer_dot_product_capabilities_khr;
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01001490typedef struct _cl_device_integer_dot_product_acceleration_properties_khr {
1491 cl_bool signed_accelerated;
1492 cl_bool unsigned_accelerated;
1493 cl_bool mixed_signedness_accelerated;
1494 cl_bool accumulating_saturating_signed_accelerated;
1495 cl_bool accumulating_saturating_unsigned_accelerated;
1496 cl_bool accumulating_saturating_mixed_signedness_accelerated;
1497} cl_device_integer_dot_product_acceleration_properties_khr;
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00001498
1499/* cl_device_integer_dot_product_capabilities_khr */
1500#define CL_DEVICE_INTEGER_DOT_PRODUCT_INPUT_4x8BIT_PACKED_KHR (1 << 0)
1501#define CL_DEVICE_INTEGER_DOT_PRODUCT_INPUT_4x8BIT_KHR (1 << 1)
1502
1503/* cl_device_info */
1504#define CL_DEVICE_INTEGER_DOT_PRODUCT_CAPABILITIES_KHR 0x1073
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01001505#define CL_DEVICE_INTEGER_DOT_PRODUCT_ACCELERATION_PROPERTIES_8BIT_KHR 0x1074
1506#define CL_DEVICE_INTEGER_DOT_PRODUCT_ACCELERATION_PROPERTIES_4x8BIT_PACKED_KHR 0x1075
1507
1508/***************************************************************
1509* cl_khr_external_memory
1510***************************************************************/
1511#define cl_khr_external_memory 1
1512#define CL_KHR_EXTERNAL_MEMORY_EXTENSION_NAME \
1513 "cl_khr_external_memory"
1514
1515typedef cl_uint cl_external_memory_handle_type_khr;
1516
1517/* cl_platform_info */
1518#define CL_PLATFORM_EXTERNAL_MEMORY_IMPORT_HANDLE_TYPES_KHR 0x2044
1519
1520/* cl_device_info */
1521#define CL_DEVICE_EXTERNAL_MEMORY_IMPORT_HANDLE_TYPES_KHR 0x204F
1522
1523/* cl_mem_properties */
1524#define CL_DEVICE_HANDLE_LIST_KHR 0x2051
1525#define CL_DEVICE_HANDLE_LIST_END_KHR 0
1526
1527/* cl_command_type */
1528#define CL_COMMAND_ACQUIRE_EXTERNAL_MEM_OBJECTS_KHR 0x2047
1529#define CL_COMMAND_RELEASE_EXTERNAL_MEM_OBJECTS_KHR 0x2048
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00001530
1531
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01001532typedef cl_int (CL_API_CALL *
1533clEnqueueAcquireExternalMemObjectsKHR_fn)(
1534 cl_command_queue command_queue,
1535 cl_uint num_mem_objects,
1536 const cl_mem* mem_objects,
1537 cl_uint num_events_in_wait_list,
1538 const cl_event* event_wait_list,
1539 cl_event* event) CL_API_SUFFIX__VERSION_3_0;
1540
1541typedef cl_int (CL_API_CALL *
1542clEnqueueReleaseExternalMemObjectsKHR_fn)(
1543 cl_command_queue command_queue,
1544 cl_uint num_mem_objects,
1545 const cl_mem* mem_objects,
1546 cl_uint num_events_in_wait_list,
1547 const cl_event* event_wait_list,
1548 cl_event* event) CL_API_SUFFIX__VERSION_3_0;
1549
1550#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES)
1551
1552extern CL_API_ENTRY cl_int CL_API_CALL
1553clEnqueueAcquireExternalMemObjectsKHR(
1554 cl_command_queue command_queue,
1555 cl_uint num_mem_objects,
1556 const cl_mem* mem_objects,
1557 cl_uint num_events_in_wait_list,
1558 const cl_event* event_wait_list,
1559 cl_event* event) CL_API_SUFFIX__VERSION_3_0;
1560
1561extern CL_API_ENTRY cl_int CL_API_CALL
1562clEnqueueReleaseExternalMemObjectsKHR(
1563 cl_command_queue command_queue,
1564 cl_uint num_mem_objects,
1565 const cl_mem* mem_objects,
1566 cl_uint num_events_in_wait_list,
1567 const cl_event* event_wait_list,
1568 cl_event* event) CL_API_SUFFIX__VERSION_3_0;
1569
1570#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */
1571
1572/***************************************************************
1573* cl_khr_external_memory_dma_buf
1574***************************************************************/
1575#define cl_khr_external_memory_dma_buf 1
1576#define CL_KHR_EXTERNAL_MEMORY_DMA_BUF_EXTENSION_NAME \
1577 "cl_khr_external_memory_dma_buf"
1578
1579/* cl_external_memory_handle_type_khr */
1580#define CL_EXTERNAL_MEMORY_HANDLE_DMA_BUF_KHR 0x2067
1581
1582/***************************************************************
1583* cl_khr_external_memory_dx
1584***************************************************************/
1585#define cl_khr_external_memory_dx 1
1586#define CL_KHR_EXTERNAL_MEMORY_DX_EXTENSION_NAME \
1587 "cl_khr_external_memory_dx"
1588
1589/* cl_external_memory_handle_type_khr */
1590#define CL_EXTERNAL_MEMORY_HANDLE_D3D11_TEXTURE_KHR 0x2063
1591#define CL_EXTERNAL_MEMORY_HANDLE_D3D11_TEXTURE_KMT_KHR 0x2064
1592#define CL_EXTERNAL_MEMORY_HANDLE_D3D12_HEAP_KHR 0x2065
1593#define CL_EXTERNAL_MEMORY_HANDLE_D3D12_RESOURCE_KHR 0x2066
1594
1595/***************************************************************
1596* cl_khr_external_memory_opaque_fd
1597***************************************************************/
1598#define cl_khr_external_memory_opaque_fd 1
1599#define CL_KHR_EXTERNAL_MEMORY_OPAQUE_FD_EXTENSION_NAME \
1600 "cl_khr_external_memory_opaque_fd"
1601
1602/* cl_external_memory_handle_type_khr */
1603#define CL_EXTERNAL_MEMORY_HANDLE_OPAQUE_FD_KHR 0x2060
1604
1605/***************************************************************
1606* cl_khr_external_memory_win32
1607***************************************************************/
1608#define cl_khr_external_memory_win32 1
1609#define CL_KHR_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME \
1610 "cl_khr_external_memory_win32"
1611
1612/* cl_external_memory_handle_type_khr */
1613#define CL_EXTERNAL_MEMORY_HANDLE_OPAQUE_WIN32_KHR 0x2061
1614#define CL_EXTERNAL_MEMORY_HANDLE_OPAQUE_WIN32_KMT_KHR 0x2062
1615
1616/***************************************************************
1617* cl_khr_external_semaphore
1618***************************************************************/
1619#define cl_khr_external_semaphore 1
1620#define CL_KHR_EXTERNAL_SEMAPHORE_EXTENSION_NAME \
1621 "cl_khr_external_semaphore"
1622
1623typedef struct _cl_semaphore_khr * cl_semaphore_khr;
1624typedef cl_uint cl_external_semaphore_handle_type_khr;
1625
1626/* cl_platform_info */
1627#define CL_PLATFORM_SEMAPHORE_IMPORT_HANDLE_TYPES_KHR 0x2037
1628#define CL_PLATFORM_SEMAPHORE_EXPORT_HANDLE_TYPES_KHR 0x2038
1629
1630/* cl_device_info */
1631#define CL_DEVICE_SEMAPHORE_IMPORT_HANDLE_TYPES_KHR 0x204D
1632#define CL_DEVICE_SEMAPHORE_EXPORT_HANDLE_TYPES_KHR 0x204E
1633
1634/* cl_semaphore_properties_khr */
1635#define CL_SEMAPHORE_EXPORT_HANDLE_TYPES_KHR 0x203F
1636#define CL_SEMAPHORE_EXPORT_HANDLE_TYPES_LIST_END_KHR 0
1637
1638
1639typedef cl_int (CL_API_CALL *
1640clGetSemaphoreHandleForTypeKHR_fn)(
1641 cl_semaphore_khr sema_object,
1642 cl_device_id device,
1643 cl_external_semaphore_handle_type_khr handle_type,
1644 size_t handle_size,
1645 void* handle_ptr,
1646 size_t* handle_size_ret) CL_API_SUFFIX__VERSION_1_2;
1647
1648#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES)
1649
1650extern CL_API_ENTRY cl_int CL_API_CALL
1651clGetSemaphoreHandleForTypeKHR(
1652 cl_semaphore_khr sema_object,
1653 cl_device_id device,
1654 cl_external_semaphore_handle_type_khr handle_type,
1655 size_t handle_size,
1656 void* handle_ptr,
1657 size_t* handle_size_ret) CL_API_SUFFIX__VERSION_1_2;
1658
1659#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */
1660
1661/***************************************************************
1662* cl_khr_external_semaphore_dx_fence
1663***************************************************************/
1664#define cl_khr_external_semaphore_dx_fence 1
1665#define CL_KHR_EXTERNAL_SEMAPHORE_DX_FENCE_EXTENSION_NAME \
1666 "cl_khr_external_semaphore_dx_fence"
1667
1668/* cl_external_semaphore_handle_type_khr */
1669#define CL_SEMAPHORE_HANDLE_D3D12_FENCE_KHR 0x2059
1670
1671/***************************************************************
1672* cl_khr_external_semaphore_opaque_fd
1673***************************************************************/
1674#define cl_khr_external_semaphore_opaque_fd 1
1675#define CL_KHR_EXTERNAL_SEMAPHORE_OPAQUE_FD_EXTENSION_NAME \
1676 "cl_khr_external_semaphore_opaque_fd"
1677
1678/* cl_external_semaphore_handle_type_khr */
1679#define CL_SEMAPHORE_HANDLE_OPAQUE_FD_KHR 0x2055
1680
1681/***************************************************************
1682* cl_khr_external_semaphore_sync_fd
1683***************************************************************/
1684#define cl_khr_external_semaphore_sync_fd 1
1685#define CL_KHR_EXTERNAL_SEMAPHORE_SYNC_FD_EXTENSION_NAME \
1686 "cl_khr_external_semaphore_sync_fd"
1687
1688/* cl_external_semaphore_handle_type_khr */
1689#define CL_SEMAPHORE_HANDLE_SYNC_FD_KHR 0x2058
1690
1691/***************************************************************
1692* cl_khr_external_semaphore_win32
1693***************************************************************/
1694#define cl_khr_external_semaphore_win32 1
1695#define CL_KHR_EXTERNAL_SEMAPHORE_WIN32_EXTENSION_NAME \
1696 "cl_khr_external_semaphore_win32"
1697
1698/* cl_external_semaphore_handle_type_khr */
1699#define CL_SEMAPHORE_HANDLE_OPAQUE_WIN32_KHR 0x2056
1700#define CL_SEMAPHORE_HANDLE_OPAQUE_WIN32_KMT_KHR 0x2057
1701
1702/***************************************************************
1703* cl_khr_semaphore
1704***************************************************************/
1705#define cl_khr_semaphore 1
1706#define CL_KHR_SEMAPHORE_EXTENSION_NAME \
1707 "cl_khr_semaphore"
1708
1709/* type cl_semaphore_khr */
1710typedef cl_properties cl_semaphore_properties_khr;
1711typedef cl_uint cl_semaphore_info_khr;
1712typedef cl_uint cl_semaphore_type_khr;
1713typedef cl_ulong cl_semaphore_payload_khr;
1714
1715/* cl_semaphore_type */
1716#define CL_SEMAPHORE_TYPE_BINARY_KHR 1
1717
1718/* cl_platform_info */
1719#define CL_PLATFORM_SEMAPHORE_TYPES_KHR 0x2036
1720
1721/* cl_device_info */
1722#define CL_DEVICE_SEMAPHORE_TYPES_KHR 0x204C
1723
1724/* cl_semaphore_info_khr */
1725#define CL_SEMAPHORE_CONTEXT_KHR 0x2039
1726#define CL_SEMAPHORE_REFERENCE_COUNT_KHR 0x203A
1727#define CL_SEMAPHORE_PROPERTIES_KHR 0x203B
1728#define CL_SEMAPHORE_PAYLOAD_KHR 0x203C
1729
1730/* cl_semaphore_info_khr or cl_semaphore_properties_khr */
1731#define CL_SEMAPHORE_TYPE_KHR 0x203D
1732/* enum CL_DEVICE_HANDLE_LIST_KHR */
1733/* enum CL_DEVICE_HANDLE_LIST_END_KHR */
1734
1735/* cl_command_type */
1736#define CL_COMMAND_SEMAPHORE_WAIT_KHR 0x2042
1737#define CL_COMMAND_SEMAPHORE_SIGNAL_KHR 0x2043
1738
1739/* Error codes */
1740#define CL_INVALID_SEMAPHORE_KHR -1142
1741
1742
1743typedef cl_semaphore_khr (CL_API_CALL *
1744clCreateSemaphoreWithPropertiesKHR_fn)(
1745 cl_context context,
1746 const cl_semaphore_properties_khr* sema_props,
1747 cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2;
1748
1749typedef cl_int (CL_API_CALL *
1750clEnqueueWaitSemaphoresKHR_fn)(
1751 cl_command_queue command_queue,
1752 cl_uint num_sema_objects,
1753 const cl_semaphore_khr* sema_objects,
1754 const cl_semaphore_payload_khr* sema_payload_list,
1755 cl_uint num_events_in_wait_list,
1756 const cl_event* event_wait_list,
1757 cl_event* event) CL_API_SUFFIX__VERSION_1_2;
1758
1759typedef cl_int (CL_API_CALL *
1760clEnqueueSignalSemaphoresKHR_fn)(
1761 cl_command_queue command_queue,
1762 cl_uint num_sema_objects,
1763 const cl_semaphore_khr* sema_objects,
1764 const cl_semaphore_payload_khr* sema_payload_list,
1765 cl_uint num_events_in_wait_list,
1766 const cl_event* event_wait_list,
1767 cl_event* event) CL_API_SUFFIX__VERSION_1_2;
1768
1769typedef cl_int (CL_API_CALL *
1770clGetSemaphoreInfoKHR_fn)(
1771 cl_semaphore_khr sema_object,
1772 cl_semaphore_info_khr param_name,
1773 size_t param_value_size,
1774 void* param_value,
1775 size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_1_2;
1776
1777typedef cl_int (CL_API_CALL *
1778clReleaseSemaphoreKHR_fn)(
1779 cl_semaphore_khr sema_object) CL_API_SUFFIX__VERSION_1_2;
1780
1781typedef cl_int (CL_API_CALL *
1782clRetainSemaphoreKHR_fn)(
1783 cl_semaphore_khr sema_object) CL_API_SUFFIX__VERSION_1_2;
1784
1785#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES)
1786
1787extern CL_API_ENTRY cl_semaphore_khr CL_API_CALL
1788clCreateSemaphoreWithPropertiesKHR(
1789 cl_context context,
1790 const cl_semaphore_properties_khr* sema_props,
1791 cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2;
1792
1793extern CL_API_ENTRY cl_int CL_API_CALL
1794clEnqueueWaitSemaphoresKHR(
1795 cl_command_queue command_queue,
1796 cl_uint num_sema_objects,
1797 const cl_semaphore_khr* sema_objects,
1798 const cl_semaphore_payload_khr* sema_payload_list,
1799 cl_uint num_events_in_wait_list,
1800 const cl_event* event_wait_list,
1801 cl_event* event) CL_API_SUFFIX__VERSION_1_2;
1802
1803extern CL_API_ENTRY cl_int CL_API_CALL
1804clEnqueueSignalSemaphoresKHR(
1805 cl_command_queue command_queue,
1806 cl_uint num_sema_objects,
1807 const cl_semaphore_khr* sema_objects,
1808 const cl_semaphore_payload_khr* sema_payload_list,
1809 cl_uint num_events_in_wait_list,
1810 const cl_event* event_wait_list,
1811 cl_event* event) CL_API_SUFFIX__VERSION_1_2;
1812
1813extern CL_API_ENTRY cl_int CL_API_CALL
1814clGetSemaphoreInfoKHR(
1815 cl_semaphore_khr sema_object,
1816 cl_semaphore_info_khr param_name,
1817 size_t param_value_size,
1818 void* param_value,
1819 size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_1_2;
1820
1821extern CL_API_ENTRY cl_int CL_API_CALL
1822clReleaseSemaphoreKHR(
1823 cl_semaphore_khr sema_object) CL_API_SUFFIX__VERSION_1_2;
1824
1825extern CL_API_ENTRY cl_int CL_API_CALL
1826clRetainSemaphoreKHR(
1827 cl_semaphore_khr sema_object) CL_API_SUFFIX__VERSION_1_2;
1828
1829#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */
1830
1831/***************************************************************
1832* cl_arm_import_memory
1833***************************************************************/
Anthony Barbier8b2fdc92018-08-09 11:42:38 +01001834#define cl_arm_import_memory 1
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01001835#define CL_ARM_IMPORT_MEMORY_EXTENSION_NAME \
1836 "cl_arm_import_memory"
Pablo Telloe86a09f2018-01-11 15:44:48 +00001837
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01001838typedef intptr_t cl_import_properties_arm;
Pablo Telloe86a09f2018-01-11 15:44:48 +00001839
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01001840/* cl_import_properties_arm */
1841#define CL_IMPORT_TYPE_ARM 0x40B2
1842#define CL_IMPORT_TYPE_HOST_ARM 0x40B3
1843#define CL_IMPORT_TYPE_DMA_BUF_ARM 0x40B4
1844#define CL_IMPORT_TYPE_PROTECTED_ARM 0x40B5
1845#define CL_IMPORT_TYPE_ANDROID_HARDWARE_BUFFER_ARM 0x41E2
1846#define CL_IMPORT_DMA_BUF_DATA_CONSISTENCY_WITH_HOST_ARM 0x41E3
1847#define CL_IMPORT_MEMORY_WHOLE_ALLOCATION_ARM SIZE_MAX
1848#define CL_IMPORT_ANDROID_HARDWARE_BUFFER_PLANE_INDEX_ARM 0x41EF
1849#define CL_IMPORT_ANDROID_HARDWARE_BUFFER_LAYER_INDEX_ARM 0x41F0
Pablo Telloe86a09f2018-01-11 15:44:48 +00001850
Pablo Telloe86a09f2018-01-11 15:44:48 +00001851
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01001852typedef cl_mem (CL_API_CALL *
1853clImportMemoryARM_fn)(
1854 cl_context context,
1855 cl_mem_flags flags,
1856 const cl_import_properties_arm* properties,
1857 void* memory,
1858 size_t size,
1859 cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0;
Pablo Telloe86a09f2018-01-11 15:44:48 +00001860
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01001861#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES)
Pablo Telloe86a09f2018-01-11 15:44:48 +00001862
Pablo Telloe86a09f2018-01-11 15:44:48 +00001863extern CL_API_ENTRY cl_mem CL_API_CALL
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01001864clImportMemoryARM(
1865 cl_context context,
1866 cl_mem_flags flags,
1867 const cl_import_properties_arm* properties,
1868 void* memory,
1869 size_t size,
1870 cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0;
Pablo Telloe86a09f2018-01-11 15:44:48 +00001871
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01001872#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */
Pablo Telloe86a09f2018-01-11 15:44:48 +00001873
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01001874/***************************************************************
1875* cl_arm_shared_virtual_memory
1876***************************************************************/
Anthony Barbier8b2fdc92018-08-09 11:42:38 +01001877#define cl_arm_shared_virtual_memory 1
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01001878#define CL_ARM_SHARED_VIRTUAL_MEMORY_EXTENSION_NAME \
1879 "cl_arm_shared_virtual_memory"
Pablo Telloe86a09f2018-01-11 15:44:48 +00001880
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01001881typedef cl_bitfield cl_svm_mem_flags_arm;
1882typedef cl_uint cl_kernel_exec_info_arm;
1883typedef cl_bitfield cl_device_svm_capabilities_arm;
Pablo Telloe86a09f2018-01-11 15:44:48 +00001884
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01001885/* cl_device_info */
1886#define CL_DEVICE_SVM_CAPABILITIES_ARM 0x40B6
Pablo Telloe86a09f2018-01-11 15:44:48 +00001887
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01001888/* cl_mem_info */
1889#define CL_MEM_USES_SVM_POINTER_ARM 0x40B7
Pablo Telloe86a09f2018-01-11 15:44:48 +00001890
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01001891/* cl_kernel_exec_info_arm */
1892#define CL_KERNEL_EXEC_INFO_SVM_PTRS_ARM 0x40B8
1893#define CL_KERNEL_EXEC_INFO_SVM_FINE_GRAIN_SYSTEM_ARM 0x40B9
Pablo Telloe86a09f2018-01-11 15:44:48 +00001894
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01001895/* cl_command_type */
1896#define CL_COMMAND_SVM_FREE_ARM 0x40BA
1897#define CL_COMMAND_SVM_MEMCPY_ARM 0x40BB
1898#define CL_COMMAND_SVM_MEMFILL_ARM 0x40BC
1899#define CL_COMMAND_SVM_MAP_ARM 0x40BD
1900#define CL_COMMAND_SVM_UNMAP_ARM 0x40BE
Pablo Telloe86a09f2018-01-11 15:44:48 +00001901
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01001902/* cl_device_svm_capabilities_arm */
1903#define CL_DEVICE_SVM_COARSE_GRAIN_BUFFER_ARM (1 << 0)
1904#define CL_DEVICE_SVM_FINE_GRAIN_BUFFER_ARM (1 << 1)
1905#define CL_DEVICE_SVM_FINE_GRAIN_SYSTEM_ARM (1 << 2)
1906#define CL_DEVICE_SVM_ATOMICS_ARM (1 << 3)
Pablo Telloe86a09f2018-01-11 15:44:48 +00001907
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01001908/* cl_svm_mem_flags_arm */
1909#define CL_MEM_SVM_FINE_GRAIN_BUFFER_ARM (1 << 10)
1910#define CL_MEM_SVM_ATOMICS_ARM (1 << 11)
Pablo Telloe86a09f2018-01-11 15:44:48 +00001911
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01001912
1913typedef void* (CL_API_CALL *
1914clSVMAllocARM_fn)(
1915 cl_context context,
1916 cl_svm_mem_flags_arm flags,
1917 size_t size,
1918 cl_uint alignment) CL_API_SUFFIX__VERSION_1_2;
1919
1920typedef void (CL_API_CALL *
1921clSVMFreeARM_fn)(
1922 cl_context context,
1923 void* svm_pointer) CL_API_SUFFIX__VERSION_1_2;
1924
1925typedef cl_int (CL_API_CALL *
1926clEnqueueSVMFreeARM_fn)(
1927 cl_command_queue command_queue,
1928 cl_uint num_svm_pointers,
1929 void* svm_pointers[],
1930 void (CL_CALLBACK* pfn_free_func)(cl_command_queue queue, cl_uint num_svm_pointers, void * svm_pointers[], void *user_data),
1931 void* user_data,
1932 cl_uint num_events_in_wait_list,
1933 const cl_event* event_wait_list,
1934 cl_event* event) CL_API_SUFFIX__VERSION_1_2;
1935
1936typedef cl_int (CL_API_CALL *
1937clEnqueueSVMMemcpyARM_fn)(
1938 cl_command_queue command_queue,
1939 cl_bool blocking_copy,
1940 void* dst_ptr,
1941 const void* src_ptr,
1942 size_t size,
1943 cl_uint num_events_in_wait_list,
1944 const cl_event* event_wait_list,
1945 cl_event* event) CL_API_SUFFIX__VERSION_1_2;
1946
1947typedef cl_int (CL_API_CALL *
1948clEnqueueSVMMemFillARM_fn)(
1949 cl_command_queue command_queue,
1950 void* svm_ptr,
1951 const void* pattern,
1952 size_t pattern_size,
1953 size_t size,
1954 cl_uint num_events_in_wait_list,
1955 const cl_event* event_wait_list,
1956 cl_event* event) CL_API_SUFFIX__VERSION_1_2;
1957
1958typedef cl_int (CL_API_CALL *
1959clEnqueueSVMMapARM_fn)(
1960 cl_command_queue command_queue,
1961 cl_bool blocking_map,
1962 cl_map_flags flags,
1963 void* svm_ptr,
1964 size_t size,
1965 cl_uint num_events_in_wait_list,
1966 const cl_event* event_wait_list,
1967 cl_event* event) CL_API_SUFFIX__VERSION_1_2;
1968
1969typedef cl_int (CL_API_CALL *
1970clEnqueueSVMUnmapARM_fn)(
1971 cl_command_queue command_queue,
1972 void* svm_ptr,
1973 cl_uint num_events_in_wait_list,
1974 const cl_event* event_wait_list,
1975 cl_event* event) CL_API_SUFFIX__VERSION_1_2;
1976
1977typedef cl_int (CL_API_CALL *
1978clSetKernelArgSVMPointerARM_fn)(
1979 cl_kernel kernel,
1980 cl_uint arg_index,
1981 const void* arg_value) CL_API_SUFFIX__VERSION_1_2;
1982
1983typedef cl_int (CL_API_CALL *
1984clSetKernelExecInfoARM_fn)(
1985 cl_kernel kernel,
1986 cl_kernel_exec_info_arm param_name,
1987 size_t param_value_size,
1988 const void* param_value) CL_API_SUFFIX__VERSION_1_2;
1989
1990#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES)
1991
1992extern CL_API_ENTRY void* CL_API_CALL
1993clSVMAllocARM(
1994 cl_context context,
1995 cl_svm_mem_flags_arm flags,
1996 size_t size,
1997 cl_uint alignment) CL_API_SUFFIX__VERSION_1_2;
Pablo Telloe86a09f2018-01-11 15:44:48 +00001998
1999extern CL_API_ENTRY void CL_API_CALL
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002000clSVMFreeARM(
2001 cl_context context,
2002 void* svm_pointer) CL_API_SUFFIX__VERSION_1_2;
Pablo Telloe86a09f2018-01-11 15:44:48 +00002003
2004extern CL_API_ENTRY cl_int CL_API_CALL
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002005clEnqueueSVMFreeARM(
2006 cl_command_queue command_queue,
2007 cl_uint num_svm_pointers,
2008 void* svm_pointers[],
2009 void (CL_CALLBACK* pfn_free_func)(cl_command_queue queue, cl_uint num_svm_pointers, void * svm_pointers[], void *user_data),
2010 void* user_data,
2011 cl_uint num_events_in_wait_list,
2012 const cl_event* event_wait_list,
2013 cl_event* event) CL_API_SUFFIX__VERSION_1_2;
Pablo Telloe86a09f2018-01-11 15:44:48 +00002014
2015extern CL_API_ENTRY cl_int CL_API_CALL
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002016clEnqueueSVMMemcpyARM(
2017 cl_command_queue command_queue,
2018 cl_bool blocking_copy,
2019 void* dst_ptr,
2020 const void* src_ptr,
2021 size_t size,
2022 cl_uint num_events_in_wait_list,
2023 const cl_event* event_wait_list,
2024 cl_event* event) CL_API_SUFFIX__VERSION_1_2;
Pablo Telloe86a09f2018-01-11 15:44:48 +00002025
2026extern CL_API_ENTRY cl_int CL_API_CALL
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002027clEnqueueSVMMemFillARM(
2028 cl_command_queue command_queue,
2029 void* svm_ptr,
2030 const void* pattern,
2031 size_t pattern_size,
2032 size_t size,
2033 cl_uint num_events_in_wait_list,
2034 const cl_event* event_wait_list,
2035 cl_event* event) CL_API_SUFFIX__VERSION_1_2;
Pablo Telloe86a09f2018-01-11 15:44:48 +00002036
2037extern CL_API_ENTRY cl_int CL_API_CALL
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002038clEnqueueSVMMapARM(
2039 cl_command_queue command_queue,
2040 cl_bool blocking_map,
2041 cl_map_flags flags,
2042 void* svm_ptr,
2043 size_t size,
2044 cl_uint num_events_in_wait_list,
2045 const cl_event* event_wait_list,
2046 cl_event* event) CL_API_SUFFIX__VERSION_1_2;
Pablo Telloe86a09f2018-01-11 15:44:48 +00002047
2048extern CL_API_ENTRY cl_int CL_API_CALL
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002049clEnqueueSVMUnmapARM(
2050 cl_command_queue command_queue,
2051 void* svm_ptr,
2052 cl_uint num_events_in_wait_list,
2053 const cl_event* event_wait_list,
2054 cl_event* event) CL_API_SUFFIX__VERSION_1_2;
Pablo Telloe86a09f2018-01-11 15:44:48 +00002055
2056extern CL_API_ENTRY cl_int CL_API_CALL
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002057clSetKernelArgSVMPointerARM(
2058 cl_kernel kernel,
2059 cl_uint arg_index,
2060 const void* arg_value) CL_API_SUFFIX__VERSION_1_2;
Sheri Zhang67354e02021-06-30 16:08:29 +01002061
Pablo Telloe86a09f2018-01-11 15:44:48 +00002062extern CL_API_ENTRY cl_int CL_API_CALL
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002063clSetKernelExecInfoARM(
2064 cl_kernel kernel,
2065 cl_kernel_exec_info_arm param_name,
2066 size_t param_value_size,
2067 const void* param_value) CL_API_SUFFIX__VERSION_1_2;
Sheri Zhang67354e02021-06-30 16:08:29 +01002068
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002069#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */
Sheri Zhang67354e02021-06-30 16:08:29 +01002070
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002071/***************************************************************
2072* cl_arm_get_core_id
2073***************************************************************/
2074#if defined(CL_VERSION_1_2)
Sheri Zhang67354e02021-06-30 16:08:29 +01002075
2076#define cl_arm_get_core_id 1
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002077#define CL_ARM_GET_CORE_ID_EXTENSION_NAME \
2078 "cl_arm_get_core_id"
Sheri Zhang67354e02021-06-30 16:08:29 +01002079
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002080/* cl_device_info */
2081#define CL_DEVICE_COMPUTE_UNITS_BITFIELD_ARM 0x40BF
Sheri Zhang67354e02021-06-30 16:08:29 +01002082
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002083#endif /* defined(CL_VERSION_1_2) */
Sheri Zhang67354e02021-06-30 16:08:29 +01002084
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002085/***************************************************************
Sheri Zhang67354e02021-06-30 16:08:29 +01002086* cl_arm_job_slot_selection
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002087***************************************************************/
Sheri Zhang67354e02021-06-30 16:08:29 +01002088#define cl_arm_job_slot_selection 1
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002089#define CL_ARM_JOB_SLOT_SELECTION_EXTENSION_NAME \
2090 "cl_arm_job_slot_selection"
Sheri Zhang67354e02021-06-30 16:08:29 +01002091
2092/* cl_device_info */
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002093#define CL_DEVICE_JOB_SLOTS_ARM 0x41E0
Sheri Zhang79cb9452021-09-07 14:51:49 +01002094
2095/* cl_queue_properties */
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002096#define CL_QUEUE_JOB_SLOT_ARM 0x41E1
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002097
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002098/***************************************************************
2099* cl_arm_scheduling_controls
2100***************************************************************/
2101#define cl_arm_scheduling_controls 1
2102#define CL_ARM_SCHEDULING_CONTROLS_EXTENSION_NAME \
2103 "cl_arm_scheduling_controls"
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002104
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002105/* Types */
2106typedef cl_bitfield cl_device_scheduling_controls_capabilities_arm;
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002107
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002108/* cl_device_scheduling_controls_capabilities_arm */
2109#define CL_DEVICE_SCHEDULING_KERNEL_BATCHING_ARM (1 << 0)
2110#define CL_DEVICE_SCHEDULING_WORKGROUP_BATCH_SIZE_ARM (1 << 1)
2111#define CL_DEVICE_SCHEDULING_WORKGROUP_BATCH_SIZE_MODIFIER_ARM (1 << 2)
2112#define CL_DEVICE_SCHEDULING_DEFERRED_FLUSH_ARM (1 << 3)
2113#define CL_DEVICE_SCHEDULING_REGISTER_ALLOCATION_ARM (1 << 4)
2114#define CL_DEVICE_SCHEDULING_WARP_THROTTLING_ARM (1 << 5)
2115#define CL_DEVICE_SCHEDULING_COMPUTE_UNIT_BATCH_QUEUE_SIZE_ARM (1 << 6)
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002116
2117/* cl_device_info */
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002118#define CL_DEVICE_SCHEDULING_CONTROLS_CAPABILITIES_ARM 0x41E4
2119#define CL_DEVICE_SUPPORTED_REGISTER_ALLOCATIONS_ARM 0x41EB
2120#define CL_DEVICE_MAX_WARP_COUNT_ARM 0x41EA
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002121
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002122/* cl_kernel_exec_info */
2123#define CL_KERNEL_EXEC_INFO_WORKGROUP_BATCH_SIZE_ARM 0x41E5
2124#define CL_KERNEL_EXEC_INFO_WORKGROUP_BATCH_SIZE_MODIFIER_ARM 0x41E6
2125#define CL_KERNEL_EXEC_INFO_WARP_COUNT_LIMIT_ARM 0x41E8
2126#define CL_KERNEL_EXEC_INFO_COMPUTE_UNIT_MAX_QUEUED_BATCHES_ARM 0x41F1
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002127
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002128/* cl_kernel_info */
2129#define CL_KERNEL_MAX_WARP_COUNT_ARM 0x41E9
2130
2131/* cl_queue_properties */
2132#define CL_QUEUE_KERNEL_BATCHING_ARM 0x41E7
2133#define CL_QUEUE_DEFERRED_FLUSH_ARM 0x41EC
2134
2135/***************************************************************
2136* cl_arm_controlled_kernel_termination
2137***************************************************************/
2138#define cl_arm_controlled_kernel_termination 1
2139#define CL_ARM_CONTROLLED_KERNEL_TERMINATION_EXTENSION_NAME \
2140 "cl_arm_controlled_kernel_termination"
2141
2142/* Types */
2143typedef cl_bitfield cl_device_controlled_termination_capabilities_arm;
2144
2145/* Error codes */
2146#define CL_COMMAND_TERMINATED_ITSELF_WITH_FAILURE_ARM -1108
2147
2148/* cl_device_controlled_termination_capabilities_arm */
2149#define CL_DEVICE_CONTROLLED_TERMINATION_SUCCESS_ARM (1 << 0)
2150#define CL_DEVICE_CONTROLLED_TERMINATION_FAILURE_ARM (1 << 1)
2151#define CL_DEVICE_CONTROLLED_TERMINATION_QUERY_ARM (1 << 2)
2152
2153/* cl_device_info */
2154#define CL_DEVICE_CONTROLLED_TERMINATION_CAPABILITIES_ARM 0x41EE
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002155
2156/* cl_event_info */
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002157#define CL_EVENT_COMMAND_TERMINATION_REASON_ARM 0x41ED
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002158
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002159/* cl_command_termination_reason_arm */
2160#define CL_COMMAND_TERMINATION_COMPLETION_ARM 0
2161#define CL_COMMAND_TERMINATION_CONTROLLED_SUCCESS_ARM 1
2162#define CL_COMMAND_TERMINATION_CONTROLLED_FAILURE_ARM 2
2163#define CL_COMMAND_TERMINATION_ERROR_ARM 3
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002164
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002165/***************************************************************
2166* cl_arm_protected_memory_allocation
2167***************************************************************/
2168#define cl_arm_protected_memory_allocation 1
2169#define CL_ARM_PROTECTED_MEMORY_ALLOCATION_EXTENSION_NAME \
2170 "cl_arm_protected_memory_allocation"
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002171
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002172#define CL_MEM_PROTECTED_ALLOC_ARM ((cl_bitfield)1 << 36)
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002173
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002174/***************************************************************
2175* cl_intel_exec_by_local_thread
2176***************************************************************/
2177#define cl_intel_exec_by_local_thread 1
2178#define CL_INTEL_EXEC_BY_LOCAL_THREAD_EXTENSION_NAME \
2179 "cl_intel_exec_by_local_thread"
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002180
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002181/* cl_command_queue_properties - bitfield */
2182#define CL_QUEUE_THREAD_LOCAL_EXEC_ENABLE_INTEL ((cl_bitfield)1 << 31)
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002183
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002184/***************************************************************
2185* cl_intel_device_attribute_query
2186***************************************************************/
2187#define cl_intel_device_attribute_query 1
2188#define CL_INTEL_DEVICE_ATTRIBUTE_QUERY_EXTENSION_NAME \
2189 "cl_intel_device_attribute_query"
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002190
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002191typedef cl_bitfield cl_device_feature_capabilities_intel;
2192
2193/* cl_device_feature_capabilities_intel */
2194#define CL_DEVICE_FEATURE_FLAG_DP4A_INTEL (1 << 0)
2195#define CL_DEVICE_FEATURE_FLAG_DPAS_INTEL (1 << 1)
2196
2197/* cl_device_info */
2198#define CL_DEVICE_IP_VERSION_INTEL 0x4250
2199#define CL_DEVICE_ID_INTEL 0x4251
2200#define CL_DEVICE_NUM_SLICES_INTEL 0x4252
2201#define CL_DEVICE_NUM_SUB_SLICES_PER_SLICE_INTEL 0x4253
2202#define CL_DEVICE_NUM_EUS_PER_SUB_SLICE_INTEL 0x4254
2203#define CL_DEVICE_NUM_THREADS_PER_EU_INTEL 0x4255
2204#define CL_DEVICE_FEATURE_CAPABILITIES_INTEL 0x4256
2205
2206/***************************************************************
2207* cl_intel_device_partition_by_names
2208***************************************************************/
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002209#define cl_intel_device_partition_by_names 1
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002210#define CL_INTEL_DEVICE_PARTITION_BY_NAMES_EXTENSION_NAME \
2211 "cl_intel_device_partition_by_names"
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002212
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002213#define CL_DEVICE_PARTITION_BY_NAMES_INTEL 0x4052
2214#define CL_PARTITION_BY_NAMES_LIST_END_INTEL -1
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002215
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002216/***************************************************************
2217* cl_intel_accelerator
2218***************************************************************/
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002219#define cl_intel_accelerator 1
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002220#define CL_INTEL_ACCELERATOR_EXTENSION_NAME \
2221 "cl_intel_accelerator"
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002222
2223typedef struct _cl_accelerator_intel* cl_accelerator_intel;
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002224typedef cl_uint cl_accelerator_type_intel;
2225typedef cl_uint cl_accelerator_info_intel;
2226
2227/* cl_accelerator_info_intel */
2228#define CL_ACCELERATOR_DESCRIPTOR_INTEL 0x4090
2229#define CL_ACCELERATOR_REFERENCE_COUNT_INTEL 0x4091
2230#define CL_ACCELERATOR_CONTEXT_INTEL 0x4092
2231#define CL_ACCELERATOR_TYPE_INTEL 0x4093
2232
2233/* Error codes */
2234#define CL_INVALID_ACCELERATOR_INTEL -1094
2235#define CL_INVALID_ACCELERATOR_TYPE_INTEL -1095
2236#define CL_INVALID_ACCELERATOR_DESCRIPTOR_INTEL -1096
2237#define CL_ACCELERATOR_TYPE_NOT_SUPPORTED_INTEL -1097
2238
2239
2240typedef cl_accelerator_intel (CL_API_CALL *
2241clCreateAcceleratorINTEL_fn)(
2242 cl_context context,
2243 cl_accelerator_type_intel accelerator_type,
2244 size_t descriptor_size,
2245 const void* descriptor,
2246 cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2;
2247
2248typedef cl_int (CL_API_CALL *
2249clGetAcceleratorInfoINTEL_fn)(
2250 cl_accelerator_intel accelerator,
2251 cl_accelerator_info_intel param_name,
2252 size_t param_value_size,
2253 void* param_value,
2254 size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_1_2;
2255
2256typedef cl_int (CL_API_CALL *
2257clRetainAcceleratorINTEL_fn)(
2258 cl_accelerator_intel accelerator) CL_API_SUFFIX__VERSION_1_2;
2259
2260typedef cl_int (CL_API_CALL *
2261clReleaseAcceleratorINTEL_fn)(
2262 cl_accelerator_intel accelerator) CL_API_SUFFIX__VERSION_1_2;
2263
2264#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES)
2265
2266extern CL_API_ENTRY cl_accelerator_intel CL_API_CALL
2267clCreateAcceleratorINTEL(
2268 cl_context context,
2269 cl_accelerator_type_intel accelerator_type,
2270 size_t descriptor_size,
2271 const void* descriptor,
2272 cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2;
2273
2274extern CL_API_ENTRY cl_int CL_API_CALL
2275clGetAcceleratorInfoINTEL(
2276 cl_accelerator_intel accelerator,
2277 cl_accelerator_info_intel param_name,
2278 size_t param_value_size,
2279 void* param_value,
2280 size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_1_2;
2281
2282extern CL_API_ENTRY cl_int CL_API_CALL
2283clRetainAcceleratorINTEL(
2284 cl_accelerator_intel accelerator) CL_API_SUFFIX__VERSION_1_2;
2285
2286extern CL_API_ENTRY cl_int CL_API_CALL
2287clReleaseAcceleratorINTEL(
2288 cl_accelerator_intel accelerator) CL_API_SUFFIX__VERSION_1_2;
2289
2290#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */
2291
2292/***************************************************************
2293* cl_intel_motion_estimation
2294***************************************************************/
2295#define cl_intel_motion_estimation 1
2296#define CL_INTEL_MOTION_ESTIMATION_EXTENSION_NAME \
2297 "cl_intel_motion_estimation"
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002298
2299typedef struct _cl_motion_estimation_desc_intel {
2300 cl_uint mb_block_type;
2301 cl_uint subpixel_mode;
2302 cl_uint sad_adjust_mode;
2303 cl_uint search_path_type;
2304} cl_motion_estimation_desc_intel;
2305
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002306/* cl_accelerator_type_intel */
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002307#define CL_ACCELERATOR_TYPE_MOTION_ESTIMATION_INTEL 0x0
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002308
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002309/* cl_uint mb_block_type */
2310#define CL_ME_MB_TYPE_16x16_INTEL 0x0
2311#define CL_ME_MB_TYPE_8x8_INTEL 0x1
2312#define CL_ME_MB_TYPE_4x4_INTEL 0x2
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002313
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002314/* cl_uint subpixel_mode */
2315#define CL_ME_SUBPIXEL_MODE_INTEGER_INTEL 0x0
2316#define CL_ME_SUBPIXEL_MODE_HPEL_INTEL 0x1
2317#define CL_ME_SUBPIXEL_MODE_QPEL_INTEL 0x2
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002318
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002319/* cl_uint sad_adjust_mode */
2320#define CL_ME_SAD_ADJUST_MODE_NONE_INTEL 0x0
2321#define CL_ME_SAD_ADJUST_MODE_HAAR_INTEL 0x1
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002322
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002323/* cl_uint search_path_type */
2324#define CL_ME_SEARCH_PATH_RADIUS_2_2_INTEL 0x0
2325#define CL_ME_SEARCH_PATH_RADIUS_4_4_INTEL 0x1
2326#define CL_ME_SEARCH_PATH_RADIUS_16_12_INTEL 0x5
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002327
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002328/***************************************************************
2329* cl_intel_advanced_motion_estimation
2330***************************************************************/
2331#define cl_intel_advanced_motion_estimation 1
2332#define CL_INTEL_ADVANCED_MOTION_ESTIMATION_EXTENSION_NAME \
2333 "cl_intel_advanced_motion_estimation"
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002334
2335/* cl_device_info */
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002336#define CL_DEVICE_ME_VERSION_INTEL 0x407E
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002337
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002338#define CL_ME_VERSION_LEGACY_INTEL 0x0
2339#define CL_ME_VERSION_ADVANCED_VER_1_INTEL 0x1
2340#define CL_ME_VERSION_ADVANCED_VER_2_INTEL 0x2
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002341
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002342#define CL_ME_CHROMA_INTRA_PREDICT_ENABLED_INTEL 0x1
2343#define CL_ME_LUMA_INTRA_PREDICT_ENABLED_INTEL 0x2
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002344
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002345#define CL_ME_SKIP_BLOCK_TYPE_16x16_INTEL 0x0
2346#define CL_ME_SKIP_BLOCK_TYPE_8x8_INTEL 0x1
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002347
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002348#define CL_ME_COST_PENALTY_NONE_INTEL 0x0
2349#define CL_ME_COST_PENALTY_LOW_INTEL 0x1
2350#define CL_ME_COST_PENALTY_NORMAL_INTEL 0x2
2351#define CL_ME_COST_PENALTY_HIGH_INTEL 0x3
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002352
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002353#define CL_ME_COST_PRECISION_QPEL_INTEL 0x0
2354#define CL_ME_COST_PRECISION_HPEL_INTEL 0x1
2355#define CL_ME_COST_PRECISION_PEL_INTEL 0x2
2356#define CL_ME_COST_PRECISION_DPEL_INTEL 0x3
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002357
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002358#define CL_ME_LUMA_PREDICTOR_MODE_VERTICAL_INTEL 0x0
2359#define CL_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_INTEL 0x1
2360#define CL_ME_LUMA_PREDICTOR_MODE_DC_INTEL 0x2
2361#define CL_ME_LUMA_PREDICTOR_MODE_DIAGONAL_DOWN_LEFT_INTEL 0x3
2362#define CL_ME_LUMA_PREDICTOR_MODE_DIAGONAL_DOWN_RIGHT_INTEL 0x4
2363#define CL_ME_LUMA_PREDICTOR_MODE_PLANE_INTEL 0x4
2364#define CL_ME_LUMA_PREDICTOR_MODE_VERTICAL_RIGHT_INTEL 0x5
2365#define CL_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_DOWN_INTEL 0x6
2366#define CL_ME_LUMA_PREDICTOR_MODE_VERTICAL_LEFT_INTEL 0x7
2367#define CL_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_UP_INTEL 0x8
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002368
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002369#define CL_ME_CHROMA_PREDICTOR_MODE_DC_INTEL 0x0
2370#define CL_ME_CHROMA_PREDICTOR_MODE_HORIZONTAL_INTEL 0x1
2371#define CL_ME_CHROMA_PREDICTOR_MODE_VERTICAL_INTEL 0x2
2372#define CL_ME_CHROMA_PREDICTOR_MODE_PLANE_INTEL 0x3
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002373
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002374#define CL_ME_FORWARD_INPUT_MODE_INTEL 0x1
2375#define CL_ME_BACKWARD_INPUT_MODE_INTEL 0x2
2376#define CL_ME_BIDIRECTION_INPUT_MODE_INTEL 0x3
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002377
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002378#define CL_ME_BIDIR_WEIGHT_QUARTER_INTEL 16
2379#define CL_ME_BIDIR_WEIGHT_THIRD_INTEL 21
2380#define CL_ME_BIDIR_WEIGHT_HALF_INTEL 32
2381#define CL_ME_BIDIR_WEIGHT_TWO_THIRD_INTEL 43
2382#define CL_ME_BIDIR_WEIGHT_THREE_QUARTER_INTEL 48
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002383
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002384/***************************************************************
2385* cl_intel_simultaneous_sharing
2386***************************************************************/
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002387#define cl_intel_simultaneous_sharing 1
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002388#define CL_INTEL_SIMULTANEOUS_SHARING_EXTENSION_NAME \
2389 "cl_intel_simultaneous_sharing"
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002390
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002391/* cl_device_info */
2392#define CL_DEVICE_SIMULTANEOUS_INTEROPS_INTEL 0x4104
2393#define CL_DEVICE_NUM_SIMULTANEOUS_INTEROPS_INTEL 0x4105
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002394
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002395/***************************************************************
2396* cl_intel_egl_image_yuv
2397***************************************************************/
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002398#define cl_intel_egl_image_yuv 1
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002399#define CL_INTEL_EGL_IMAGE_YUV_EXTENSION_NAME \
2400 "cl_intel_egl_image_yuv"
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002401
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002402/* cl_egl_image_properties_khr */
2403#define CL_EGL_YUV_PLANE_INTEL 0x4107
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002404
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002405/***************************************************************
2406* cl_intel_packed_yuv
2407***************************************************************/
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002408#define cl_intel_packed_yuv 1
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002409#define CL_INTEL_PACKED_YUV_EXTENSION_NAME \
2410 "cl_intel_packed_yuv"
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002411
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002412/* cl_channel_order */
2413#define CL_YUYV_INTEL 0x4076
2414#define CL_UYVY_INTEL 0x4077
2415#define CL_YVYU_INTEL 0x4078
2416#define CL_VYUY_INTEL 0x4079
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002417
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002418/***************************************************************
2419* cl_intel_required_subgroup_size
2420***************************************************************/
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002421#define cl_intel_required_subgroup_size 1
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002422#define CL_INTEL_REQUIRED_SUBGROUP_SIZE_EXTENSION_NAME \
2423 "cl_intel_required_subgroup_size"
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002424
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002425/* cl_device_info */
2426#define CL_DEVICE_SUB_GROUP_SIZES_INTEL 0x4108
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002427
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002428/* cl_kernel_work_group_info */
2429#define CL_KERNEL_SPILL_MEM_SIZE_INTEL 0x4109
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002430
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002431/* cl_kernel_sub_group_info */
2432#define CL_KERNEL_COMPILE_SUB_GROUP_SIZE_INTEL 0x410A
2433
2434/***************************************************************
2435* cl_intel_driver_diagnostics
2436***************************************************************/
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002437#define cl_intel_driver_diagnostics 1
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002438#define CL_INTEL_DRIVER_DIAGNOSTICS_EXTENSION_NAME \
2439 "cl_intel_driver_diagnostics"
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002440
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002441typedef cl_uint cl_diagnostics_verbose_level;
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002442
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002443/* cl_context_properties */
2444#define CL_CONTEXT_SHOW_DIAGNOSTICS_INTEL 0x4106
2445#define CL_CONTEXT_DIAGNOSTICS_LEVEL_ALL_INTEL 0xff
2446#define CL_CONTEXT_DIAGNOSTICS_LEVEL_GOOD_INTEL (1 << 0)
2447#define CL_CONTEXT_DIAGNOSTICS_LEVEL_BAD_INTEL (1 << 1)
2448#define CL_CONTEXT_DIAGNOSTICS_LEVEL_NEUTRAL_INTEL (1 << 2)
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002449
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002450/***************************************************************
2451* cl_intel_planar_yuv
2452***************************************************************/
2453#define cl_intel_planar_yuv 1
2454#define CL_INTEL_PLANAR_YUV_EXTENSION_NAME \
2455 "cl_intel_planar_yuv"
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002456
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002457/* cl_channel_order */
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002458#define CL_NV12_INTEL 0x410E
2459
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002460/* cl_mem_flags */
2461#define CL_MEM_NO_ACCESS_INTEL (1 << 24)
2462#define CL_MEM_ACCESS_FLAGS_UNRESTRICTED_INTEL (1 << 25)
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002463
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002464/* cl_device_info */
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002465#define CL_DEVICE_PLANAR_YUV_MAX_WIDTH_INTEL 0x417E
2466#define CL_DEVICE_PLANAR_YUV_MAX_HEIGHT_INTEL 0x417F
2467
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002468/***************************************************************
2469* cl_intel_device_side_avc_motion_estimation
2470***************************************************************/
2471#define cl_intel_device_side_avc_motion_estimation 1
2472#define CL_INTEL_DEVICE_SIDE_AVC_MOTION_ESTIMATION_EXTENSION_NAME \
2473 "cl_intel_device_side_avc_motion_estimation"
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002474
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002475/* cl_device_info */
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002476#define CL_DEVICE_AVC_ME_VERSION_INTEL 0x410B
2477#define CL_DEVICE_AVC_ME_SUPPORTS_TEXTURE_SAMPLER_USE_INTEL 0x410C
2478#define CL_DEVICE_AVC_ME_SUPPORTS_PREEMPTION_INTEL 0x410D
2479
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002480/* returned by CL_DEVICE_AVC_ME_VERSION_INTEL */
2481#define CL_AVC_ME_VERSION_0_INTEL 0x0
2482#define CL_AVC_ME_VERSION_1_INTEL 0x1
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002483
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002484/* Inter macro-block major shape values */
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002485#define CL_AVC_ME_MAJOR_16x16_INTEL 0x0
2486#define CL_AVC_ME_MAJOR_16x8_INTEL 0x1
2487#define CL_AVC_ME_MAJOR_8x16_INTEL 0x2
2488#define CL_AVC_ME_MAJOR_8x8_INTEL 0x3
2489
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002490/* Inter macro-block minor shape values */
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002491#define CL_AVC_ME_MINOR_8x8_INTEL 0x0
2492#define CL_AVC_ME_MINOR_8x4_INTEL 0x1
2493#define CL_AVC_ME_MINOR_4x8_INTEL 0x2
2494#define CL_AVC_ME_MINOR_4x4_INTEL 0x3
2495
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002496/* Inter macro-block major direction values */
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002497#define CL_AVC_ME_MAJOR_FORWARD_INTEL 0x0
2498#define CL_AVC_ME_MAJOR_BACKWARD_INTEL 0x1
2499#define CL_AVC_ME_MAJOR_BIDIRECTIONAL_INTEL 0x2
2500
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002501/* Inter (IME) partition mask values */
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002502#define CL_AVC_ME_PARTITION_MASK_ALL_INTEL 0x0
2503#define CL_AVC_ME_PARTITION_MASK_16x16_INTEL 0x7E
2504#define CL_AVC_ME_PARTITION_MASK_16x8_INTEL 0x7D
2505#define CL_AVC_ME_PARTITION_MASK_8x16_INTEL 0x7B
2506#define CL_AVC_ME_PARTITION_MASK_8x8_INTEL 0x77
2507#define CL_AVC_ME_PARTITION_MASK_8x4_INTEL 0x6F
2508#define CL_AVC_ME_PARTITION_MASK_4x8_INTEL 0x5F
2509#define CL_AVC_ME_PARTITION_MASK_4x4_INTEL 0x3F
2510
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002511/* Search window configuration */
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002512#define CL_AVC_ME_SEARCH_WINDOW_EXHAUSTIVE_INTEL 0x0
2513#define CL_AVC_ME_SEARCH_WINDOW_SMALL_INTEL 0x1
2514#define CL_AVC_ME_SEARCH_WINDOW_TINY_INTEL 0x2
2515#define CL_AVC_ME_SEARCH_WINDOW_EXTRA_TINY_INTEL 0x3
2516#define CL_AVC_ME_SEARCH_WINDOW_DIAMOND_INTEL 0x4
2517#define CL_AVC_ME_SEARCH_WINDOW_LARGE_DIAMOND_INTEL 0x5
2518#define CL_AVC_ME_SEARCH_WINDOW_RESERVED0_INTEL 0x6
2519#define CL_AVC_ME_SEARCH_WINDOW_RESERVED1_INTEL 0x7
2520#define CL_AVC_ME_SEARCH_WINDOW_CUSTOM_INTEL 0x8
2521#define CL_AVC_ME_SEARCH_WINDOW_16x12_RADIUS_INTEL 0x9
2522#define CL_AVC_ME_SEARCH_WINDOW_4x4_RADIUS_INTEL 0x2
2523#define CL_AVC_ME_SEARCH_WINDOW_2x2_RADIUS_INTEL 0xa
2524
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002525/* SAD adjustment mode */
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002526#define CL_AVC_ME_SAD_ADJUST_MODE_NONE_INTEL 0x0
2527#define CL_AVC_ME_SAD_ADJUST_MODE_HAAR_INTEL 0x2
2528
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002529/* Pixel resolution */
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002530#define CL_AVC_ME_SUBPIXEL_MODE_INTEGER_INTEL 0x0
2531#define CL_AVC_ME_SUBPIXEL_MODE_HPEL_INTEL 0x1
2532#define CL_AVC_ME_SUBPIXEL_MODE_QPEL_INTEL 0x3
2533
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002534/* Cost precision values */
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002535#define CL_AVC_ME_COST_PRECISION_QPEL_INTEL 0x0
2536#define CL_AVC_ME_COST_PRECISION_HPEL_INTEL 0x1
2537#define CL_AVC_ME_COST_PRECISION_PEL_INTEL 0x2
2538#define CL_AVC_ME_COST_PRECISION_DPEL_INTEL 0x3
2539
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002540/* Inter bidirectional weights */
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002541#define CL_AVC_ME_BIDIR_WEIGHT_QUARTER_INTEL 0x10
2542#define CL_AVC_ME_BIDIR_WEIGHT_THIRD_INTEL 0x15
2543#define CL_AVC_ME_BIDIR_WEIGHT_HALF_INTEL 0x20
2544#define CL_AVC_ME_BIDIR_WEIGHT_TWO_THIRD_INTEL 0x2B
2545#define CL_AVC_ME_BIDIR_WEIGHT_THREE_QUARTER_INTEL 0x30
2546
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002547/* Inter border reached values */
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002548#define CL_AVC_ME_BORDER_REACHED_LEFT_INTEL 0x0
2549#define CL_AVC_ME_BORDER_REACHED_RIGHT_INTEL 0x2
2550#define CL_AVC_ME_BORDER_REACHED_TOP_INTEL 0x4
2551#define CL_AVC_ME_BORDER_REACHED_BOTTOM_INTEL 0x8
2552
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002553/* Inter skip block partition type */
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002554#define CL_AVC_ME_SKIP_BLOCK_PARTITION_16x16_INTEL 0x0
2555#define CL_AVC_ME_SKIP_BLOCK_PARTITION_8x8_INTEL 0x4000
2556
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002557/* Inter skip motion vector mask */
2558#define CL_AVC_ME_SKIP_BLOCK_16x16_FORWARD_ENABLE_INTEL (0x1 << 24)
2559#define CL_AVC_ME_SKIP_BLOCK_16x16_BACKWARD_ENABLE_INTEL (0x2 << 24)
2560#define CL_AVC_ME_SKIP_BLOCK_16x16_DUAL_ENABLE_INTEL (0x3 << 24)
2561#define CL_AVC_ME_SKIP_BLOCK_8x8_FORWARD_ENABLE_INTEL (0x55 << 24)
2562#define CL_AVC_ME_SKIP_BLOCK_8x8_BACKWARD_ENABLE_INTEL (0xAA << 24)
2563#define CL_AVC_ME_SKIP_BLOCK_8x8_DUAL_ENABLE_INTEL (0xFF << 24)
2564#define CL_AVC_ME_SKIP_BLOCK_8x8_0_FORWARD_ENABLE_INTEL (0x1 << 24)
2565#define CL_AVC_ME_SKIP_BLOCK_8x8_0_BACKWARD_ENABLE_INTEL (0x2 << 24)
2566#define CL_AVC_ME_SKIP_BLOCK_8x8_1_FORWARD_ENABLE_INTEL (0x1 << 26)
2567#define CL_AVC_ME_SKIP_BLOCK_8x8_1_BACKWARD_ENABLE_INTEL (0x2 << 26)
2568#define CL_AVC_ME_SKIP_BLOCK_8x8_2_FORWARD_ENABLE_INTEL (0x1 << 28)
2569#define CL_AVC_ME_SKIP_BLOCK_8x8_2_BACKWARD_ENABLE_INTEL (0x2 << 28)
2570#define CL_AVC_ME_SKIP_BLOCK_8x8_3_FORWARD_ENABLE_INTEL (0x1 << 30)
2571#define CL_AVC_ME_SKIP_BLOCK_8x8_3_BACKWARD_ENABLE_INTEL (0x2 << 30)
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002572
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002573/* Block based skip type values */
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002574#define CL_AVC_ME_BLOCK_BASED_SKIP_4x4_INTEL 0x00
2575#define CL_AVC_ME_BLOCK_BASED_SKIP_8x8_INTEL 0x80
2576
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002577/* cl_intel_device_side_avc_motion_estimation.?? */
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002578#define CL_AVC_ME_INTRA_16x16_INTEL 0x0
2579#define CL_AVC_ME_INTRA_8x8_INTEL 0x1
2580#define CL_AVC_ME_INTRA_4x4_INTEL 0x2
2581
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002582/* Luma intra partition mask values */
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002583#define CL_AVC_ME_INTRA_LUMA_PARTITION_MASK_16x16_INTEL 0x6
2584#define CL_AVC_ME_INTRA_LUMA_PARTITION_MASK_8x8_INTEL 0x5
2585#define CL_AVC_ME_INTRA_LUMA_PARTITION_MASK_4x4_INTEL 0x3
2586
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002587/* Intra neighbor availability mask values */
2588#define CL_AVC_ME_INTRA_NEIGHBOR_LEFT_MASK_ENABLE_INTEL 0x60
2589#define CL_AVC_ME_INTRA_NEIGHBOR_UPPER_MASK_ENABLE_INTEL 0x10
2590#define CL_AVC_ME_INTRA_NEIGHBOR_UPPER_RIGHT_MASK_ENABLE_INTEL 0x8
2591#define CL_AVC_ME_INTRA_NEIGHBOR_UPPER_LEFT_MASK_ENABLE_INTEL 0x4
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002592
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002593/* Luma intra modes */
2594#define CL_AVC_ME_LUMA_PREDICTOR_MODE_VERTICAL_INTEL 0x0
2595#define CL_AVC_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_INTEL 0x1
2596#define CL_AVC_ME_LUMA_PREDICTOR_MODE_DC_INTEL 0x2
2597#define CL_AVC_ME_LUMA_PREDICTOR_MODE_DIAGONAL_DOWN_LEFT_INTEL 0x3
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002598#define CL_AVC_ME_LUMA_PREDICTOR_MODE_DIAGONAL_DOWN_RIGHT_INTEL 0x4
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002599#define CL_AVC_ME_LUMA_PREDICTOR_MODE_PLANE_INTEL 0x4
2600#define CL_AVC_ME_LUMA_PREDICTOR_MODE_VERTICAL_RIGHT_INTEL 0x5
2601#define CL_AVC_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_DOWN_INTEL 0x6
2602#define CL_AVC_ME_LUMA_PREDICTOR_MODE_VERTICAL_LEFT_INTEL 0x7
2603#define CL_AVC_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_UP_INTEL 0x8
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002604
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002605/* Chroma intra modes */
2606#define CL_AVC_ME_CHROMA_PREDICTOR_MODE_DC_INTEL 0x0
2607#define CL_AVC_ME_CHROMA_PREDICTOR_MODE_HORIZONTAL_INTEL 0x1
2608#define CL_AVC_ME_CHROMA_PREDICTOR_MODE_VERTICAL_INTEL 0x2
2609#define CL_AVC_ME_CHROMA_PREDICTOR_MODE_PLANE_INTEL 0x3
2610
2611/* Reference image select values */
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002612#define CL_AVC_ME_FRAME_FORWARD_INTEL 0x1
2613#define CL_AVC_ME_FRAME_BACKWARD_INTEL 0x2
2614#define CL_AVC_ME_FRAME_DUAL_INTEL 0x3
2615
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002616/* Slice type values */
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002617#define CL_AVC_ME_SLICE_TYPE_PRED_INTEL 0x0
2618#define CL_AVC_ME_SLICE_TYPE_BPRED_INTEL 0x1
2619#define CL_AVC_ME_SLICE_TYPE_INTRA_INTEL 0x2
2620
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002621/* Interlaced image field polarity values */
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002622#define CL_AVC_ME_INTERLACED_SCAN_TOP_FIELD_INTEL 0x0
2623#define CL_AVC_ME_INTERLACED_SCAN_BOTTOM_FIELD_INTEL 0x1
2624
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002625/***************************************************************
2626* cl_intel_unified_shared_memory
2627***************************************************************/
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002628#define cl_intel_unified_shared_memory 1
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002629#define CL_INTEL_UNIFIED_SHARED_MEMORY_EXTENSION_NAME \
2630 "cl_intel_unified_shared_memory"
2631
2632typedef cl_bitfield cl_device_unified_shared_memory_capabilities_intel;
2633typedef cl_properties cl_mem_properties_intel;
2634typedef cl_bitfield cl_mem_alloc_flags_intel;
2635typedef cl_uint cl_mem_info_intel;
2636typedef cl_uint cl_unified_shared_memory_type_intel;
2637typedef cl_uint cl_mem_advice_intel;
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002638
2639/* cl_device_info */
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002640#define CL_DEVICE_HOST_MEM_CAPABILITIES_INTEL 0x4190
2641#define CL_DEVICE_DEVICE_MEM_CAPABILITIES_INTEL 0x4191
2642#define CL_DEVICE_SINGLE_DEVICE_SHARED_MEM_CAPABILITIES_INTEL 0x4192
2643#define CL_DEVICE_CROSS_DEVICE_SHARED_MEM_CAPABILITIES_INTEL 0x4193
2644#define CL_DEVICE_SHARED_SYSTEM_MEM_CAPABILITIES_INTEL 0x4194
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002645
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002646/* cl_unified_shared_memory_capabilities_intel - bitfield */
2647#define CL_UNIFIED_SHARED_MEMORY_ACCESS_INTEL (1 << 0)
2648#define CL_UNIFIED_SHARED_MEMORY_ATOMIC_ACCESS_INTEL (1 << 1)
2649#define CL_UNIFIED_SHARED_MEMORY_CONCURRENT_ACCESS_INTEL (1 << 2)
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002650#define CL_UNIFIED_SHARED_MEMORY_CONCURRENT_ATOMIC_ACCESS_INTEL (1 << 3)
2651
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002652/* cl_mem_properties_intel */
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002653#define CL_MEM_ALLOC_FLAGS_INTEL 0x4195
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002654
2655/* cl_mem_alloc_flags_intel - bitfield */
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002656#define CL_MEM_ALLOC_WRITE_COMBINED_INTEL (1 << 0)
2657#define CL_MEM_ALLOC_INITIAL_PLACEMENT_DEVICE_INTEL (1 << 1)
2658#define CL_MEM_ALLOC_INITIAL_PLACEMENT_HOST_INTEL (1 << 2)
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002659
2660/* cl_mem_alloc_info_intel */
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002661#define CL_MEM_ALLOC_TYPE_INTEL 0x419A
2662#define CL_MEM_ALLOC_BASE_PTR_INTEL 0x419B
2663#define CL_MEM_ALLOC_SIZE_INTEL 0x419C
2664#define CL_MEM_ALLOC_DEVICE_INTEL 0x419D
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002665
2666/* cl_unified_shared_memory_type_intel */
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002667#define CL_MEM_TYPE_UNKNOWN_INTEL 0x4196
2668#define CL_MEM_TYPE_HOST_INTEL 0x4197
2669#define CL_MEM_TYPE_DEVICE_INTEL 0x4198
2670#define CL_MEM_TYPE_SHARED_INTEL 0x4199
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002671
2672/* cl_kernel_exec_info */
2673#define CL_KERNEL_EXEC_INFO_INDIRECT_HOST_ACCESS_INTEL 0x4200
2674#define CL_KERNEL_EXEC_INFO_INDIRECT_DEVICE_ACCESS_INTEL 0x4201
2675#define CL_KERNEL_EXEC_INFO_INDIRECT_SHARED_ACCESS_INTEL 0x4202
2676#define CL_KERNEL_EXEC_INFO_USM_PTRS_INTEL 0x4203
2677
2678/* cl_command_type */
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002679#define CL_COMMAND_MEMFILL_INTEL 0x4204
2680#define CL_COMMAND_MEMCPY_INTEL 0x4205
2681#define CL_COMMAND_MIGRATEMEM_INTEL 0x4206
2682#define CL_COMMAND_MEMADVISE_INTEL 0x4207
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002683
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002684
2685typedef void* (CL_API_CALL *
2686clHostMemAllocINTEL_fn)(
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002687 cl_context context,
2688 const cl_mem_properties_intel* properties,
2689 size_t size,
2690 cl_uint alignment,
2691 cl_int* errcode_ret) ;
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002692
2693typedef void* (CL_API_CALL *
2694clDeviceMemAllocINTEL_fn)(
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002695 cl_context context,
2696 cl_device_id device,
2697 const cl_mem_properties_intel* properties,
2698 size_t size,
2699 cl_uint alignment,
2700 cl_int* errcode_ret) ;
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002701
2702typedef void* (CL_API_CALL *
2703clSharedMemAllocINTEL_fn)(
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002704 cl_context context,
2705 cl_device_id device,
2706 const cl_mem_properties_intel* properties,
2707 size_t size,
2708 cl_uint alignment,
2709 cl_int* errcode_ret) ;
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002710
2711typedef cl_int (CL_API_CALL *
2712clMemFreeINTEL_fn)(
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002713 cl_context context,
2714 void* ptr) ;
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002715
2716typedef cl_int (CL_API_CALL *
2717clMemBlockingFreeINTEL_fn)(
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002718 cl_context context,
2719 void* ptr) ;
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002720
2721typedef cl_int (CL_API_CALL *
2722clGetMemAllocInfoINTEL_fn)(
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002723 cl_context context,
2724 const void* ptr,
2725 cl_mem_info_intel param_name,
2726 size_t param_value_size,
2727 void* param_value,
2728 size_t* param_value_size_ret) ;
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002729
2730typedef cl_int (CL_API_CALL *
2731clSetKernelArgMemPointerINTEL_fn)(
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002732 cl_kernel kernel,
2733 cl_uint arg_index,
2734 const void* arg_value) ;
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002735
2736typedef cl_int (CL_API_CALL *
2737clEnqueueMemFillINTEL_fn)(
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002738 cl_command_queue command_queue,
2739 void* dst_ptr,
2740 const void* pattern,
2741 size_t pattern_size,
2742 size_t size,
2743 cl_uint num_events_in_wait_list,
2744 const cl_event* event_wait_list,
2745 cl_event* event) ;
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002746
2747typedef cl_int (CL_API_CALL *
2748clEnqueueMemcpyINTEL_fn)(
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002749 cl_command_queue command_queue,
2750 cl_bool blocking,
2751 void* dst_ptr,
2752 const void* src_ptr,
2753 size_t size,
2754 cl_uint num_events_in_wait_list,
2755 const cl_event* event_wait_list,
2756 cl_event* event) ;
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002757
2758typedef cl_int (CL_API_CALL *
2759clEnqueueMemAdviseINTEL_fn)(
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002760 cl_command_queue command_queue,
2761 const void* ptr,
2762 size_t size,
2763 cl_mem_advice_intel advice,
2764 cl_uint num_events_in_wait_list,
2765 const cl_event* event_wait_list,
2766 cl_event* event) ;
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002767
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002768#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES)
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002769
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002770extern CL_API_ENTRY void* CL_API_CALL
2771clHostMemAllocINTEL(
2772 cl_context context,
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002773 const cl_mem_properties_intel* properties,
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002774 size_t size,
2775 cl_uint alignment,
2776 cl_int* errcode_ret) ;
2777
2778extern CL_API_ENTRY void* CL_API_CALL
2779clDeviceMemAllocINTEL(
2780 cl_context context,
2781 cl_device_id device,
2782 const cl_mem_properties_intel* properties,
2783 size_t size,
2784 cl_uint alignment,
2785 cl_int* errcode_ret) ;
2786
2787extern CL_API_ENTRY void* CL_API_CALL
2788clSharedMemAllocINTEL(
2789 cl_context context,
2790 cl_device_id device,
2791 const cl_mem_properties_intel* properties,
2792 size_t size,
2793 cl_uint alignment,
2794 cl_int* errcode_ret) ;
2795
2796extern CL_API_ENTRY cl_int CL_API_CALL
2797clMemFreeINTEL(
2798 cl_context context,
2799 void* ptr) ;
2800
2801extern CL_API_ENTRY cl_int CL_API_CALL
2802clMemBlockingFreeINTEL(
2803 cl_context context,
2804 void* ptr) ;
2805
2806extern CL_API_ENTRY cl_int CL_API_CALL
2807clGetMemAllocInfoINTEL(
2808 cl_context context,
2809 const void* ptr,
2810 cl_mem_info_intel param_name,
2811 size_t param_value_size,
2812 void* param_value,
2813 size_t* param_value_size_ret) ;
2814
2815extern CL_API_ENTRY cl_int CL_API_CALL
2816clSetKernelArgMemPointerINTEL(
2817 cl_kernel kernel,
2818 cl_uint arg_index,
2819 const void* arg_value) ;
2820
2821extern CL_API_ENTRY cl_int CL_API_CALL
2822clEnqueueMemFillINTEL(
2823 cl_command_queue command_queue,
2824 void* dst_ptr,
2825 const void* pattern,
2826 size_t pattern_size,
2827 size_t size,
2828 cl_uint num_events_in_wait_list,
2829 const cl_event* event_wait_list,
2830 cl_event* event) ;
2831
2832extern CL_API_ENTRY cl_int CL_API_CALL
2833clEnqueueMemcpyINTEL(
2834 cl_command_queue command_queue,
2835 cl_bool blocking,
2836 void* dst_ptr,
2837 const void* src_ptr,
2838 size_t size,
2839 cl_uint num_events_in_wait_list,
2840 const cl_event* event_wait_list,
2841 cl_event* event) ;
2842
2843extern CL_API_ENTRY cl_int CL_API_CALL
2844clEnqueueMemAdviseINTEL(
2845 cl_command_queue command_queue,
2846 const void* ptr,
2847 size_t size,
2848 cl_mem_advice_intel advice,
2849 cl_uint num_events_in_wait_list,
2850 const cl_event* event_wait_list,
2851 cl_event* event) ;
2852
2853#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */
2854
2855#if defined(CL_VERSION_1_2)
2856/* Requires OpenCL 1.2 for cl_mem_migration_flags: */
2857
2858typedef cl_int (CL_API_CALL *
2859clEnqueueMigrateMemINTEL_fn)(
2860 cl_command_queue command_queue,
2861 const void* ptr,
2862 size_t size,
2863 cl_mem_migration_flags flags,
2864 cl_uint num_events_in_wait_list,
2865 const cl_event* event_wait_list,
2866 cl_event* event) ;
2867
2868#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES)
2869
2870extern CL_API_ENTRY cl_int CL_API_CALL
2871clEnqueueMigrateMemINTEL(
2872 cl_command_queue command_queue,
2873 const void* ptr,
2874 size_t size,
2875 cl_mem_migration_flags flags,
2876 cl_uint num_events_in_wait_list,
2877 const cl_event* event_wait_list,
2878 cl_event* event) ;
2879
2880#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */
2881
2882#endif /* defined(CL_VERSION_1_2) */
2883
2884/* deprecated, use clEnqueueMemFillINTEL instead */
2885
2886typedef cl_int (CL_API_CALL *
2887clEnqueueMemsetINTEL_fn)(
2888 cl_command_queue command_queue,
2889 void* dst_ptr,
2890 cl_int value,
2891 size_t size,
2892 cl_uint num_events_in_wait_list,
2893 const cl_event* event_wait_list,
2894 cl_event* event) ;
2895
2896#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES)
2897
2898extern CL_API_ENTRY cl_int CL_API_CALL
2899clEnqueueMemsetINTEL(
2900 cl_command_queue command_queue,
2901 void* dst_ptr,
2902 cl_int value,
2903 size_t size,
2904 cl_uint num_events_in_wait_list,
2905 const cl_event* event_wait_list,
2906 cl_event* event) ;
2907
2908#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */
2909
2910/***************************************************************
2911* cl_intel_mem_alloc_buffer_location
2912***************************************************************/
2913#define cl_intel_mem_alloc_buffer_location 1
2914#define CL_INTEL_MEM_ALLOC_BUFFER_LOCATION_EXTENSION_NAME \
2915 "cl_intel_mem_alloc_buffer_location"
2916
2917/* cl_mem_properties_intel */
2918#define CL_MEM_ALLOC_BUFFER_LOCATION_INTEL 0x419E
2919
2920/* cl_mem_alloc_info_intel */
2921/* enum CL_MEM_ALLOC_BUFFER_LOCATION_INTEL */
2922
2923/***************************************************************
2924* cl_intel_create_buffer_with_properties
2925***************************************************************/
2926#define cl_intel_create_buffer_with_properties 1
2927#define CL_INTEL_CREATE_BUFFER_WITH_PROPERTIES_EXTENSION_NAME \
2928 "cl_intel_create_buffer_with_properties"
2929
2930/* type cl_mem_properties_intel */
2931
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002932
2933typedef cl_mem (CL_API_CALL *
2934clCreateBufferWithPropertiesINTEL_fn)(
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002935 cl_context context,
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002936 const cl_mem_properties_intel* properties,
2937 cl_mem_flags flags,
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002938 size_t size,
2939 void* host_ptr,
2940 cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0;
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002941
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002942#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES)
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002943
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002944extern CL_API_ENTRY cl_mem CL_API_CALL
2945clCreateBufferWithPropertiesINTEL(
2946 cl_context context,
2947 const cl_mem_properties_intel* properties,
2948 cl_mem_flags flags,
2949 size_t size,
2950 void* host_ptr,
2951 cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0;
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002952
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002953#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00002954
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01002955/***************************************************************
2956* cl_intel_program_scope_host_pipe
2957***************************************************************/
2958#define cl_intel_program_scope_host_pipe 1
2959#define CL_INTEL_PROGRAM_SCOPE_HOST_PIPE_EXTENSION_NAME \
2960 "cl_intel_program_scope_host_pipe"
2961
2962/* clGetEventInfo response when param_name is CL_EVENT_COMMAND_TYPE */
2963#define CL_COMMAND_READ_HOST_PIPE_INTEL 0x4214
2964#define CL_COMMAND_WRITE_HOST_PIPE_INTEL 0x4215
2965
2966/* clGetProgramInfo param_name */
2967#define CL_PROGRAM_NUM_HOST_PIPES_INTEL 0x4216
2968#define CL_PROGRAM_HOST_PIPE_NAMES_INTEL 0x4217
2969
2970
2971typedef cl_int (CL_API_CALL *
2972clEnqueueReadHostPipeINTEL_fn)(
2973 cl_command_queue command_queue,
2974 cl_program program,
2975 const char* pipe_symbol,
2976 cl_bool blocking_read,
2977 void* ptr,
2978 size_t size,
2979 cl_uint num_events_in_wait_list,
2980 const cl_event* event_wait_list,
2981 cl_event* event) CL_API_SUFFIX__VERSION_1_0;
2982
2983typedef cl_int (CL_API_CALL *
2984clEnqueueWriteHostPipeINTEL_fn)(
2985 cl_command_queue command_queue,
2986 cl_program program,
2987 const char* pipe_symbol,
2988 cl_bool blocking_write,
2989 const void* ptr,
2990 size_t size,
2991 cl_uint num_events_in_wait_list,
2992 const cl_event* event_wait_list,
2993 cl_event* event) CL_API_SUFFIX__VERSION_1_0;
2994
2995#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES)
2996
2997extern CL_API_ENTRY cl_int CL_API_CALL
2998clEnqueueReadHostPipeINTEL(
2999 cl_command_queue command_queue,
3000 cl_program program,
3001 const char* pipe_symbol,
3002 cl_bool blocking_read,
3003 void* ptr,
3004 size_t size,
3005 cl_uint num_events_in_wait_list,
3006 const cl_event* event_wait_list,
3007 cl_event* event) CL_API_SUFFIX__VERSION_1_0;
3008
3009extern CL_API_ENTRY cl_int CL_API_CALL
3010clEnqueueWriteHostPipeINTEL(
3011 cl_command_queue command_queue,
3012 cl_program program,
3013 const char* pipe_symbol,
3014 cl_bool blocking_write,
3015 const void* ptr,
3016 size_t size,
3017 cl_uint num_events_in_wait_list,
3018 const cl_event* event_wait_list,
3019 cl_event* event) CL_API_SUFFIX__VERSION_1_0;
3020
3021#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */
3022
3023/***************************************************************
3024* cl_intel_mem_channel_property
3025***************************************************************/
3026#define cl_intel_mem_channel_property 1
3027#define CL_INTEL_MEM_CHANNEL_PROPERTY_EXTENSION_NAME \
3028 "cl_intel_mem_channel_property"
3029
3030/* cl_mem_properties_intel */
3031#define CL_MEM_CHANNEL_INTEL 0x4213
3032
3033/***************************************************************
3034* cl_intel_mem_force_host_memory
3035***************************************************************/
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00003036#define cl_intel_mem_force_host_memory 1
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01003037#define CL_INTEL_MEM_FORCE_HOST_MEMORY_EXTENSION_NAME \
3038 "cl_intel_mem_force_host_memory"
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00003039
3040/* cl_mem_flags */
3041#define CL_MEM_FORCE_HOST_MEMORY_INTEL (1 << 20)
3042
3043/***************************************************************
3044* cl_intel_command_queue_families
3045***************************************************************/
3046#define cl_intel_command_queue_families 1
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01003047#define CL_INTEL_COMMAND_QUEUE_FAMILIES_EXTENSION_NAME \
3048 "cl_intel_command_queue_families"
Pablo Marquez Tellodc2282f2021-11-23 15:16:00 +00003049
3050typedef cl_bitfield cl_command_queue_capabilities_intel;
3051
3052#define CL_QUEUE_FAMILY_MAX_NAME_SIZE_INTEL 64
3053
3054typedef struct _cl_queue_family_properties_intel {
3055 cl_command_queue_properties properties;
3056 cl_command_queue_capabilities_intel capabilities;
3057 cl_uint count;
3058 char name[CL_QUEUE_FAMILY_MAX_NAME_SIZE_INTEL];
3059} cl_queue_family_properties_intel;
3060
3061/* cl_device_info */
3062#define CL_DEVICE_QUEUE_FAMILY_PROPERTIES_INTEL 0x418B
3063
3064/* cl_queue_properties */
3065#define CL_QUEUE_FAMILY_INTEL 0x418C
3066#define CL_QUEUE_INDEX_INTEL 0x418D
3067
3068/* cl_command_queue_capabilities_intel */
3069#define CL_QUEUE_DEFAULT_CAPABILITIES_INTEL 0
3070#define CL_QUEUE_CAPABILITY_CREATE_SINGLE_QUEUE_EVENTS_INTEL (1 << 0)
3071#define CL_QUEUE_CAPABILITY_CREATE_CROSS_QUEUE_EVENTS_INTEL (1 << 1)
3072#define CL_QUEUE_CAPABILITY_SINGLE_QUEUE_EVENT_WAIT_LIST_INTEL (1 << 2)
3073#define CL_QUEUE_CAPABILITY_CROSS_QUEUE_EVENT_WAIT_LIST_INTEL (1 << 3)
3074#define CL_QUEUE_CAPABILITY_TRANSFER_BUFFER_INTEL (1 << 8)
3075#define CL_QUEUE_CAPABILITY_TRANSFER_BUFFER_RECT_INTEL (1 << 9)
3076#define CL_QUEUE_CAPABILITY_MAP_BUFFER_INTEL (1 << 10)
3077#define CL_QUEUE_CAPABILITY_FILL_BUFFER_INTEL (1 << 11)
3078#define CL_QUEUE_CAPABILITY_TRANSFER_IMAGE_INTEL (1 << 12)
3079#define CL_QUEUE_CAPABILITY_MAP_IMAGE_INTEL (1 << 13)
3080#define CL_QUEUE_CAPABILITY_FILL_IMAGE_INTEL (1 << 14)
3081#define CL_QUEUE_CAPABILITY_TRANSFER_BUFFER_IMAGE_INTEL (1 << 15)
3082#define CL_QUEUE_CAPABILITY_TRANSFER_IMAGE_BUFFER_INTEL (1 << 16)
3083#define CL_QUEUE_CAPABILITY_MARKER_INTEL (1 << 24)
3084#define CL_QUEUE_CAPABILITY_BARRIER_INTEL (1 << 25)
3085#define CL_QUEUE_CAPABILITY_KERNEL_INTEL (1 << 26)
Sheri Zhang79cb9452021-09-07 14:51:49 +01003086
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01003087/***************************************************************
3088* cl_intel_queue_no_sync_operations
3089***************************************************************/
3090#define cl_intel_queue_no_sync_operations 1
3091#define CL_INTEL_QUEUE_NO_SYNC_OPERATIONS_EXTENSION_NAME \
3092 "cl_intel_queue_no_sync_operations"
3093
3094/* cl_command_queue_properties */
3095#define CL_QUEUE_NO_SYNC_OPERATIONS_INTEL (1 << 29)
3096
3097/***************************************************************
3098* cl_intel_sharing_format_query
3099***************************************************************/
3100#define cl_intel_sharing_format_query 1
3101#define CL_INTEL_SHARING_FORMAT_QUERY_EXTENSION_NAME \
3102 "cl_intel_sharing_format_query"
3103
3104/***************************************************************
3105* cl_ext_image_requirements_info
3106***************************************************************/
3107#if defined(CL_VERSION_3_0)
3108
3109#define cl_ext_image_requirements_info 1
3110#define CL_EXT_IMAGE_REQUIREMENTS_INFO_EXTENSION_NAME \
3111 "cl_ext_image_requirements_info"
3112
3113/* Types */
3114typedef cl_uint cl_image_requirements_info_ext;
3115
3116/* cl_image_requirements_info_ext */
3117#define CL_IMAGE_REQUIREMENTS_BASE_ADDRESS_ALIGNMENT_EXT 0x1292
3118#define CL_IMAGE_REQUIREMENTS_ROW_PITCH_ALIGNMENT_EXT 0x1290
3119#define CL_IMAGE_REQUIREMENTS_SIZE_EXT 0x12B2
3120#define CL_IMAGE_REQUIREMENTS_MAX_WIDTH_EXT 0x12B3
3121#define CL_IMAGE_REQUIREMENTS_MAX_HEIGHT_EXT 0x12B4
3122#define CL_IMAGE_REQUIREMENTS_MAX_DEPTH_EXT 0x12B5
3123#define CL_IMAGE_REQUIREMENTS_MAX_ARRAY_SIZE_EXT 0x12B6
3124
3125/* Enqueued Commands APIs */
3126
3127typedef cl_int (CL_API_CALL *
3128clGetImageRequirementsInfoEXT_fn)(
3129 cl_context context,
3130 const cl_mem_properties* properties,
3131 cl_mem_flags flags,
3132 const cl_image_format* image_format,
3133 const cl_image_desc* image_desc,
3134 cl_image_requirements_info_ext param_name,
3135 size_t param_value_size,
3136 void* param_value,
3137 size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_3_0;
3138
3139#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES)
3140
3141extern CL_API_ENTRY cl_int CL_API_CALL
3142clGetImageRequirementsInfoEXT(
3143 cl_context context,
3144 const cl_mem_properties* properties,
3145 cl_mem_flags flags,
3146 const cl_image_format* image_format,
3147 const cl_image_desc* image_desc,
3148 cl_image_requirements_info_ext param_name,
3149 size_t param_value_size,
3150 void* param_value,
3151 size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_3_0;
3152
3153#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */
3154
3155#endif /* defined(CL_VERSION_3_0) */
3156
3157/***************************************************************
3158* cl_ext_image_from_buffer
3159***************************************************************/
3160#if defined(CL_VERSION_3_0)
3161
3162#define cl_ext_image_from_buffer 1
3163#define CL_EXT_IMAGE_FROM_BUFFER_EXTENSION_NAME \
3164 "cl_ext_image_from_buffer"
3165
3166/* cl_image_requirements_info_ext */
3167#define CL_IMAGE_REQUIREMENTS_SLICE_PITCH_ALIGNMENT_EXT 0x1291
3168
3169#endif /* defined(CL_VERSION_3_0) */
3170
3171/***************************************************************
3172* cl_loader_info
3173***************************************************************/
3174#define cl_loader_info 1
3175#define CL_LOADER_INFO_EXTENSION_NAME \
3176 "cl_loader_info"
3177
3178typedef cl_uint cl_icdl_info;
3179
3180/* cl_icdl_info */
3181#define CL_ICDL_OCL_VERSION 1
3182#define CL_ICDL_VERSION 2
3183#define CL_ICDL_NAME 3
3184#define CL_ICDL_VENDOR 4
3185
3186
3187typedef cl_int (CL_API_CALL *
3188clGetICDLoaderInfoOCLICD_fn)(
3189 cl_icdl_info param_name,
3190 size_t param_value_size,
3191 void* param_value,
3192 size_t* param_value_size_ret) ;
3193
3194#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES)
3195
3196extern CL_API_ENTRY cl_int CL_API_CALL
3197clGetICDLoaderInfoOCLICD(
3198 cl_icdl_info param_name,
3199 size_t param_value_size,
3200 void* param_value,
3201 size_t* param_value_size_ret) ;
3202
3203#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */
3204
3205/***************************************************************
3206* cl_khr_depth_images
3207***************************************************************/
3208#define cl_khr_depth_images 1
3209#define CL_KHR_DEPTH_IMAGES_EXTENSION_NAME \
3210 "cl_khr_depth_images"
3211
3212#if !defined(CL_VERSION_1_2)
3213/* cl_channel_order - defined in CL.h for OpenCL 1.2 (?) and newer */
3214#define CL_DEPTH 0x10BD
3215
3216#endif /* !defined(CL_VERSION_1_2) */
3217
3218/***************************************************************
3219* cl_ext_float_atomics
3220***************************************************************/
3221#define cl_ext_float_atomics 1
3222#define CL_EXT_FLOAT_ATOMICS_EXTENSION_NAME \
3223 "cl_ext_float_atomics"
3224
3225typedef cl_bitfield cl_device_fp_atomic_capabilities_ext;
3226
3227/* cl_device_fp_atomic_capabilities_ext */
3228#define CL_DEVICE_GLOBAL_FP_ATOMIC_LOAD_STORE_EXT (1 << 0)
3229#define CL_DEVICE_GLOBAL_FP_ATOMIC_ADD_EXT (1 << 1)
3230#define CL_DEVICE_GLOBAL_FP_ATOMIC_MIN_MAX_EXT (1 << 2)
3231#define CL_DEVICE_LOCAL_FP_ATOMIC_LOAD_STORE_EXT (1 << 16)
3232#define CL_DEVICE_LOCAL_FP_ATOMIC_ADD_EXT (1 << 17)
3233#define CL_DEVICE_LOCAL_FP_ATOMIC_MIN_MAX_EXT (1 << 18)
3234
3235/* cl_device_info */
3236#define CL_DEVICE_SINGLE_FP_ATOMIC_CAPABILITIES_EXT 0x4231
3237#define CL_DEVICE_DOUBLE_FP_ATOMIC_CAPABILITIES_EXT 0x4232
3238#define CL_DEVICE_HALF_FP_ATOMIC_CAPABILITIES_EXT 0x4233
3239
3240/***************************************************************
3241* cl_intel_create_mem_object_properties
3242***************************************************************/
3243#define cl_intel_create_mem_object_properties 1
3244#define CL_INTEL_CREATE_MEM_OBJECT_PROPERTIES_EXTENSION_NAME \
3245 "cl_intel_create_mem_object_properties"
3246
3247/* cl_mem_properties */
3248#define CL_MEM_LOCALLY_UNCACHED_RESOURCE_INTEL 0x4218
3249#define CL_MEM_DEVICE_ID_INTEL 0x4219
3250
3251/***************************************************************
3252* cl_pocl_content_size
3253***************************************************************/
3254#define cl_pocl_content_size 1
3255#define CL_POCL_CONTENT_SIZE_EXTENSION_NAME \
3256 "cl_pocl_content_size"
3257
3258
3259typedef cl_int (CL_API_CALL *
3260clSetContentSizeBufferPoCL_fn)(
3261 cl_mem buffer,
3262 cl_mem content_size_buffer) CL_API_SUFFIX__VERSION_1_0;
3263
3264#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES)
3265
3266extern CL_API_ENTRY cl_int CL_API_CALL
3267clSetContentSizeBufferPoCL(
3268 cl_mem buffer,
3269 cl_mem content_size_buffer) CL_API_SUFFIX__VERSION_1_0;
3270
3271#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */
3272
Anthony Barbier6ff3b192017-09-04 18:44:23 +01003273#ifdef __cplusplus
3274}
3275#endif
3276
Viet-Hoa Do633ebd12023-08-11 12:27:59 +01003277#endif /* OPENCL_CL_EXT_H_ */