1 /******************************************************************************* 2 * Copyright (c) 2008-2023 The Khronos Group Inc. 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 ******************************************************************************/ 16 17 #ifndef OPENCL_CL_EXT_H_ 18 #define OPENCL_CL_EXT_H_ 19 20 /* 21 ** This header is generated from the Khronos OpenCL XML API Registry. 22 */ 23 24 #include <CL/cl.h> 25 26 /* CL_NO_PROTOTYPES implies CL_NO_EXTENSION_PROTOTYPES: */ 27 #if defined(CL_NO_PROTOTYPES) && !defined(CL_NO_EXTENSION_PROTOTYPES) 28 #define CL_NO_EXTENSION_PROTOTYPES 29 #endif 30 31 /* CL_NO_EXTENSION_PROTOTYPES implies 32 CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES and 33 CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES: */ 34 #if defined(CL_NO_EXTENSION_PROTOTYPES) && \ 35 !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) 36 #define CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES 37 #endif 38 #if defined(CL_NO_EXTENSION_PROTOTYPES) && \ 39 !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) 40 #define CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES 41 #endif 42 43 #ifdef __cplusplus 44 extern "C" { 45 #endif 46 47 /*************************************************************** 48 * cl_khr_command_buffer 49 ***************************************************************/ 50 #define cl_khr_command_buffer 1 51 #define CL_KHR_COMMAND_BUFFER_EXTENSION_NAME \ 52 "cl_khr_command_buffer" 53 54 typedef cl_bitfield cl_device_command_buffer_capabilities_khr; 55 typedef struct _cl_command_buffer_khr* cl_command_buffer_khr; 56 typedef cl_uint cl_sync_point_khr; 57 typedef cl_uint cl_command_buffer_info_khr; 58 typedef cl_uint cl_command_buffer_state_khr; 59 typedef cl_properties cl_command_buffer_properties_khr; 60 typedef cl_bitfield cl_command_buffer_flags_khr; 61 typedef cl_properties cl_ndrange_kernel_command_properties_khr; 62 typedef struct _cl_mutable_command_khr* cl_mutable_command_khr; 63 64 /* cl_device_info */ 65 #define CL_DEVICE_COMMAND_BUFFER_CAPABILITIES_KHR 0x12A9 66 #define CL_DEVICE_COMMAND_BUFFER_REQUIRED_QUEUE_PROPERTIES_KHR 0x12AA 67 68 /* cl_device_command_buffer_capabilities_khr - bitfield */ 69 #define CL_COMMAND_BUFFER_CAPABILITY_KERNEL_PRINTF_KHR (1 << 0) 70 #define CL_COMMAND_BUFFER_CAPABILITY_DEVICE_SIDE_ENQUEUE_KHR (1 << 1) 71 #define CL_COMMAND_BUFFER_CAPABILITY_SIMULTANEOUS_USE_KHR (1 << 2) 72 #define CL_COMMAND_BUFFER_CAPABILITY_OUT_OF_ORDER_KHR (1 << 3) 73 74 /* cl_command_buffer_properties_khr */ 75 #define CL_COMMAND_BUFFER_FLAGS_KHR 0x1293 76 77 /* cl_command_buffer_flags_khr - bitfield */ 78 #define CL_COMMAND_BUFFER_SIMULTANEOUS_USE_KHR (1 << 0) 79 80 /* Error codes */ 81 #define CL_INVALID_COMMAND_BUFFER_KHR -1138 82 #define CL_INVALID_SYNC_POINT_WAIT_LIST_KHR -1139 83 #define CL_INCOMPATIBLE_COMMAND_QUEUE_KHR -1140 84 85 /* cl_command_buffer_info_khr */ 86 #define CL_COMMAND_BUFFER_QUEUES_KHR 0x1294 87 #define CL_COMMAND_BUFFER_NUM_QUEUES_KHR 0x1295 88 #define CL_COMMAND_BUFFER_REFERENCE_COUNT_KHR 0x1296 89 #define CL_COMMAND_BUFFER_STATE_KHR 0x1297 90 #define CL_COMMAND_BUFFER_PROPERTIES_ARRAY_KHR 0x1298 91 #define CL_COMMAND_BUFFER_CONTEXT_KHR 0x1299 92 93 /* cl_command_buffer_state_khr */ 94 #define CL_COMMAND_BUFFER_STATE_RECORDING_KHR 0 95 #define CL_COMMAND_BUFFER_STATE_EXECUTABLE_KHR 1 96 #define CL_COMMAND_BUFFER_STATE_PENDING_KHR 2 97 98 /* cl_command_type */ 99 #define CL_COMMAND_COMMAND_BUFFER_KHR 0x12A8 100 101 102 typedef cl_command_buffer_khr CL_API_CALL 103 clCreateCommandBufferKHR_t( 104 cl_uint num_queues, 105 const cl_command_queue* queues, 106 const cl_command_buffer_properties_khr* properties, 107 cl_int* errcode_ret); 108 109 typedef clCreateCommandBufferKHR_t * 110 clCreateCommandBufferKHR_fn ; 111 112 typedef cl_int CL_API_CALL 113 clFinalizeCommandBufferKHR_t( 114 cl_command_buffer_khr command_buffer); 115 116 typedef clFinalizeCommandBufferKHR_t * 117 clFinalizeCommandBufferKHR_fn ; 118 119 typedef cl_int CL_API_CALL 120 clRetainCommandBufferKHR_t( 121 cl_command_buffer_khr command_buffer); 122 123 typedef clRetainCommandBufferKHR_t * 124 clRetainCommandBufferKHR_fn ; 125 126 typedef cl_int CL_API_CALL 127 clReleaseCommandBufferKHR_t( 128 cl_command_buffer_khr command_buffer); 129 130 typedef clReleaseCommandBufferKHR_t * 131 clReleaseCommandBufferKHR_fn ; 132 133 typedef cl_int CL_API_CALL 134 clEnqueueCommandBufferKHR_t( 135 cl_uint num_queues, 136 cl_command_queue* queues, 137 cl_command_buffer_khr command_buffer, 138 cl_uint num_events_in_wait_list, 139 const cl_event* event_wait_list, 140 cl_event* event); 141 142 typedef clEnqueueCommandBufferKHR_t * 143 clEnqueueCommandBufferKHR_fn ; 144 145 typedef cl_int CL_API_CALL 146 clCommandBarrierWithWaitListKHR_t( 147 cl_command_buffer_khr command_buffer, 148 cl_command_queue command_queue, 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 154 typedef clCommandBarrierWithWaitListKHR_t * 155 clCommandBarrierWithWaitListKHR_fn ; 156 157 typedef cl_int CL_API_CALL 158 clCommandCopyBufferKHR_t( 159 cl_command_buffer_khr command_buffer, 160 cl_command_queue command_queue, 161 cl_mem src_buffer, 162 cl_mem dst_buffer, 163 size_t src_offset, 164 size_t dst_offset, 165 size_t size, 166 cl_uint num_sync_points_in_wait_list, 167 const cl_sync_point_khr* sync_point_wait_list, 168 cl_sync_point_khr* sync_point, 169 cl_mutable_command_khr* mutable_handle); 170 171 typedef clCommandCopyBufferKHR_t * 172 clCommandCopyBufferKHR_fn ; 173 174 typedef cl_int CL_API_CALL 175 clCommandCopyBufferRectKHR_t( 176 cl_command_buffer_khr command_buffer, 177 cl_command_queue command_queue, 178 cl_mem src_buffer, 179 cl_mem dst_buffer, 180 const size_t* src_origin, 181 const size_t* dst_origin, 182 const size_t* region, 183 size_t src_row_pitch, 184 size_t src_slice_pitch, 185 size_t dst_row_pitch, 186 size_t dst_slice_pitch, 187 cl_uint num_sync_points_in_wait_list, 188 const cl_sync_point_khr* sync_point_wait_list, 189 cl_sync_point_khr* sync_point, 190 cl_mutable_command_khr* mutable_handle); 191 192 typedef clCommandCopyBufferRectKHR_t * 193 clCommandCopyBufferRectKHR_fn ; 194 195 typedef cl_int CL_API_CALL 196 clCommandCopyBufferToImageKHR_t( 197 cl_command_buffer_khr command_buffer, 198 cl_command_queue command_queue, 199 cl_mem src_buffer, 200 cl_mem dst_image, 201 size_t src_offset, 202 const size_t* dst_origin, 203 const size_t* region, 204 cl_uint num_sync_points_in_wait_list, 205 const cl_sync_point_khr* sync_point_wait_list, 206 cl_sync_point_khr* sync_point, 207 cl_mutable_command_khr* mutable_handle); 208 209 typedef clCommandCopyBufferToImageKHR_t * 210 clCommandCopyBufferToImageKHR_fn ; 211 212 typedef cl_int CL_API_CALL 213 clCommandCopyImageKHR_t( 214 cl_command_buffer_khr command_buffer, 215 cl_command_queue command_queue, 216 cl_mem src_image, 217 cl_mem dst_image, 218 const size_t* src_origin, 219 const size_t* dst_origin, 220 const size_t* region, 221 cl_uint num_sync_points_in_wait_list, 222 const cl_sync_point_khr* sync_point_wait_list, 223 cl_sync_point_khr* sync_point, 224 cl_mutable_command_khr* mutable_handle); 225 226 typedef clCommandCopyImageKHR_t * 227 clCommandCopyImageKHR_fn ; 228 229 typedef cl_int CL_API_CALL 230 clCommandCopyImageToBufferKHR_t( 231 cl_command_buffer_khr command_buffer, 232 cl_command_queue command_queue, 233 cl_mem src_image, 234 cl_mem dst_buffer, 235 const size_t* src_origin, 236 const size_t* region, 237 size_t dst_offset, 238 cl_uint num_sync_points_in_wait_list, 239 const cl_sync_point_khr* sync_point_wait_list, 240 cl_sync_point_khr* sync_point, 241 cl_mutable_command_khr* mutable_handle); 242 243 typedef clCommandCopyImageToBufferKHR_t * 244 clCommandCopyImageToBufferKHR_fn ; 245 246 typedef cl_int CL_API_CALL 247 clCommandFillBufferKHR_t( 248 cl_command_buffer_khr command_buffer, 249 cl_command_queue command_queue, 250 cl_mem buffer, 251 const void* pattern, 252 size_t pattern_size, 253 size_t offset, 254 size_t size, 255 cl_uint num_sync_points_in_wait_list, 256 const cl_sync_point_khr* sync_point_wait_list, 257 cl_sync_point_khr* sync_point, 258 cl_mutable_command_khr* mutable_handle); 259 260 typedef clCommandFillBufferKHR_t * 261 clCommandFillBufferKHR_fn ; 262 263 typedef cl_int CL_API_CALL 264 clCommandFillImageKHR_t( 265 cl_command_buffer_khr command_buffer, 266 cl_command_queue command_queue, 267 cl_mem image, 268 const void* fill_color, 269 const size_t* origin, 270 const size_t* region, 271 cl_uint num_sync_points_in_wait_list, 272 const cl_sync_point_khr* sync_point_wait_list, 273 cl_sync_point_khr* sync_point, 274 cl_mutable_command_khr* mutable_handle); 275 276 typedef clCommandFillImageKHR_t * 277 clCommandFillImageKHR_fn ; 278 279 typedef cl_int CL_API_CALL 280 clCommandNDRangeKernelKHR_t( 281 cl_command_buffer_khr command_buffer, 282 cl_command_queue command_queue, 283 const cl_ndrange_kernel_command_properties_khr* properties, 284 cl_kernel kernel, 285 cl_uint work_dim, 286 const size_t* global_work_offset, 287 const size_t* global_work_size, 288 const size_t* local_work_size, 289 cl_uint num_sync_points_in_wait_list, 290 const cl_sync_point_khr* sync_point_wait_list, 291 cl_sync_point_khr* sync_point, 292 cl_mutable_command_khr* mutable_handle); 293 294 typedef clCommandNDRangeKernelKHR_t * 295 clCommandNDRangeKernelKHR_fn ; 296 297 typedef cl_int CL_API_CALL 298 clGetCommandBufferInfoKHR_t( 299 cl_command_buffer_khr command_buffer, 300 cl_command_buffer_info_khr param_name, 301 size_t param_value_size, 302 void* param_value, 303 size_t* param_value_size_ret); 304 305 typedef clGetCommandBufferInfoKHR_t * 306 clGetCommandBufferInfoKHR_fn ; 307 308 #if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) 309 310 extern CL_API_ENTRY cl_command_buffer_khr CL_API_CALL 311 clCreateCommandBufferKHR( 312 cl_uint num_queues, 313 const cl_command_queue* queues, 314 const cl_command_buffer_properties_khr* properties, 315 cl_int* errcode_ret) ; 316 317 extern CL_API_ENTRY cl_int CL_API_CALL 318 clFinalizeCommandBufferKHR( 319 cl_command_buffer_khr command_buffer) ; 320 321 extern CL_API_ENTRY cl_int CL_API_CALL 322 clRetainCommandBufferKHR( 323 cl_command_buffer_khr command_buffer) ; 324 325 extern CL_API_ENTRY cl_int CL_API_CALL 326 clReleaseCommandBufferKHR( 327 cl_command_buffer_khr command_buffer) ; 328 329 extern CL_API_ENTRY cl_int CL_API_CALL 330 clEnqueueCommandBufferKHR( 331 cl_uint num_queues, 332 cl_command_queue* queues, 333 cl_command_buffer_khr command_buffer, 334 cl_uint num_events_in_wait_list, 335 const cl_event* event_wait_list, 336 cl_event* event) ; 337 338 extern CL_API_ENTRY cl_int CL_API_CALL 339 clCommandBarrierWithWaitListKHR( 340 cl_command_buffer_khr command_buffer, 341 cl_command_queue command_queue, 342 cl_uint num_sync_points_in_wait_list, 343 const cl_sync_point_khr* sync_point_wait_list, 344 cl_sync_point_khr* sync_point, 345 cl_mutable_command_khr* mutable_handle) ; 346 347 extern CL_API_ENTRY cl_int CL_API_CALL 348 clCommandCopyBufferKHR( 349 cl_command_buffer_khr command_buffer, 350 cl_command_queue command_queue, 351 cl_mem src_buffer, 352 cl_mem dst_buffer, 353 size_t src_offset, 354 size_t dst_offset, 355 size_t size, 356 cl_uint num_sync_points_in_wait_list, 357 const cl_sync_point_khr* sync_point_wait_list, 358 cl_sync_point_khr* sync_point, 359 cl_mutable_command_khr* mutable_handle) ; 360 361 extern CL_API_ENTRY cl_int CL_API_CALL 362 clCommandCopyBufferRectKHR( 363 cl_command_buffer_khr command_buffer, 364 cl_command_queue command_queue, 365 cl_mem src_buffer, 366 cl_mem dst_buffer, 367 const size_t* src_origin, 368 const size_t* dst_origin, 369 const size_t* region, 370 size_t src_row_pitch, 371 size_t src_slice_pitch, 372 size_t dst_row_pitch, 373 size_t dst_slice_pitch, 374 cl_uint num_sync_points_in_wait_list, 375 const cl_sync_point_khr* sync_point_wait_list, 376 cl_sync_point_khr* sync_point, 377 cl_mutable_command_khr* mutable_handle) ; 378 379 extern CL_API_ENTRY cl_int CL_API_CALL 380 clCommandCopyBufferToImageKHR( 381 cl_command_buffer_khr command_buffer, 382 cl_command_queue command_queue, 383 cl_mem src_buffer, 384 cl_mem dst_image, 385 size_t src_offset, 386 const size_t* dst_origin, 387 const size_t* region, 388 cl_uint num_sync_points_in_wait_list, 389 const cl_sync_point_khr* sync_point_wait_list, 390 cl_sync_point_khr* sync_point, 391 cl_mutable_command_khr* mutable_handle) ; 392 393 extern CL_API_ENTRY cl_int CL_API_CALL 394 clCommandCopyImageKHR( 395 cl_command_buffer_khr command_buffer, 396 cl_command_queue command_queue, 397 cl_mem src_image, 398 cl_mem dst_image, 399 const size_t* src_origin, 400 const size_t* dst_origin, 401 const size_t* region, 402 cl_uint num_sync_points_in_wait_list, 403 const cl_sync_point_khr* sync_point_wait_list, 404 cl_sync_point_khr* sync_point, 405 cl_mutable_command_khr* mutable_handle) ; 406 407 extern CL_API_ENTRY cl_int CL_API_CALL 408 clCommandCopyImageToBufferKHR( 409 cl_command_buffer_khr command_buffer, 410 cl_command_queue command_queue, 411 cl_mem src_image, 412 cl_mem dst_buffer, 413 const size_t* src_origin, 414 const size_t* region, 415 size_t dst_offset, 416 cl_uint num_sync_points_in_wait_list, 417 const cl_sync_point_khr* sync_point_wait_list, 418 cl_sync_point_khr* sync_point, 419 cl_mutable_command_khr* mutable_handle) ; 420 421 extern CL_API_ENTRY cl_int CL_API_CALL 422 clCommandFillBufferKHR( 423 cl_command_buffer_khr command_buffer, 424 cl_command_queue command_queue, 425 cl_mem buffer, 426 const void* pattern, 427 size_t pattern_size, 428 size_t offset, 429 size_t size, 430 cl_uint num_sync_points_in_wait_list, 431 const cl_sync_point_khr* sync_point_wait_list, 432 cl_sync_point_khr* sync_point, 433 cl_mutable_command_khr* mutable_handle) ; 434 435 extern CL_API_ENTRY cl_int CL_API_CALL 436 clCommandFillImageKHR( 437 cl_command_buffer_khr command_buffer, 438 cl_command_queue command_queue, 439 cl_mem image, 440 const void* fill_color, 441 const size_t* origin, 442 const size_t* region, 443 cl_uint num_sync_points_in_wait_list, 444 const cl_sync_point_khr* sync_point_wait_list, 445 cl_sync_point_khr* sync_point, 446 cl_mutable_command_khr* mutable_handle) ; 447 448 extern CL_API_ENTRY cl_int CL_API_CALL 449 clCommandNDRangeKernelKHR( 450 cl_command_buffer_khr command_buffer, 451 cl_command_queue command_queue, 452 const cl_ndrange_kernel_command_properties_khr* properties, 453 cl_kernel kernel, 454 cl_uint work_dim, 455 const size_t* global_work_offset, 456 const size_t* global_work_size, 457 const size_t* local_work_size, 458 cl_uint num_sync_points_in_wait_list, 459 const cl_sync_point_khr* sync_point_wait_list, 460 cl_sync_point_khr* sync_point, 461 cl_mutable_command_khr* mutable_handle) ; 462 463 extern CL_API_ENTRY cl_int CL_API_CALL 464 clGetCommandBufferInfoKHR( 465 cl_command_buffer_khr command_buffer, 466 cl_command_buffer_info_khr param_name, 467 size_t param_value_size, 468 void* param_value, 469 size_t* param_value_size_ret) ; 470 471 #endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ 472 473 /* From version 0.9.4 of the extension */ 474 475 typedef cl_int CL_API_CALL 476 clCommandSVMMemcpyKHR_t( 477 cl_command_buffer_khr command_buffer, 478 cl_command_queue command_queue, 479 void* dst_ptr, 480 const void* src_ptr, 481 size_t size, 482 cl_uint num_sync_points_in_wait_list, 483 const cl_sync_point_khr* sync_point_wait_list, 484 cl_sync_point_khr* sync_point, 485 cl_mutable_command_khr* mutable_handle); 486 487 typedef clCommandSVMMemcpyKHR_t * 488 clCommandSVMMemcpyKHR_fn CL_API_SUFFIX__VERSION_2_0; 489 490 typedef cl_int CL_API_CALL 491 clCommandSVMMemFillKHR_t( 492 cl_command_buffer_khr command_buffer, 493 cl_command_queue command_queue, 494 void* svm_ptr, 495 const void* pattern, 496 size_t pattern_size, 497 size_t size, 498 cl_uint num_sync_points_in_wait_list, 499 const cl_sync_point_khr* sync_point_wait_list, 500 cl_sync_point_khr* sync_point, 501 cl_mutable_command_khr* mutable_handle); 502 503 typedef clCommandSVMMemFillKHR_t * 504 clCommandSVMMemFillKHR_fn CL_API_SUFFIX__VERSION_2_0; 505 506 #if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) 507 508 extern CL_API_ENTRY cl_int CL_API_CALL 509 clCommandSVMMemcpyKHR( 510 cl_command_buffer_khr command_buffer, 511 cl_command_queue command_queue, 512 void* dst_ptr, 513 const void* src_ptr, 514 size_t size, 515 cl_uint num_sync_points_in_wait_list, 516 const cl_sync_point_khr* sync_point_wait_list, 517 cl_sync_point_khr* sync_point, 518 cl_mutable_command_khr* mutable_handle) CL_API_SUFFIX__VERSION_2_0; 519 520 extern CL_API_ENTRY cl_int CL_API_CALL 521 clCommandSVMMemFillKHR( 522 cl_command_buffer_khr command_buffer, 523 cl_command_queue command_queue, 524 void* svm_ptr, 525 const void* pattern, 526 size_t pattern_size, 527 size_t size, 528 cl_uint num_sync_points_in_wait_list, 529 const cl_sync_point_khr* sync_point_wait_list, 530 cl_sync_point_khr* sync_point, 531 cl_mutable_command_khr* mutable_handle) CL_API_SUFFIX__VERSION_2_0; 532 533 #endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ 534 535 /*************************************************************** 536 * cl_khr_command_buffer_multi_device 537 ***************************************************************/ 538 #define cl_khr_command_buffer_multi_device 1 539 #define CL_KHR_COMMAND_BUFFER_MULTI_DEVICE_EXTENSION_NAME \ 540 "cl_khr_command_buffer_multi_device" 541 542 typedef cl_bitfield cl_platform_command_buffer_capabilities_khr; 543 544 /* cl_platform_info */ 545 #define CL_PLATFORM_COMMAND_BUFFER_CAPABILITIES_KHR 0x0908 546 547 /* cl_platform_command_buffer_capabilities_khr - bitfield */ 548 #define CL_COMMAND_BUFFER_PLATFORM_UNIVERSAL_SYNC_KHR (1 << 0) 549 #define CL_COMMAND_BUFFER_PLATFORM_REMAP_QUEUES_KHR (1 << 1) 550 #define CL_COMMAND_BUFFER_PLATFORM_AUTOMATIC_REMAP_KHR (1 << 2) 551 552 /* cl_device_info */ 553 #define CL_DEVICE_COMMAND_BUFFER_NUM_SYNC_DEVICES_KHR 0x12AB 554 #define CL_DEVICE_COMMAND_BUFFER_SYNC_DEVICES_KHR 0x12AC 555 556 /* cl_device_command_buffer_capabilities_khr - bitfield */ 557 #define CL_COMMAND_BUFFER_CAPABILITY_MULTIPLE_QUEUE_KHR (1 << 4) 558 559 /* cl_command_buffer_flags_khr - bitfield */ 560 #define CL_COMMAND_BUFFER_DEVICE_SIDE_SYNC_KHR (1 << 2) 561 562 563 typedef cl_command_buffer_khr CL_API_CALL 564 clRemapCommandBufferKHR_t( 565 cl_command_buffer_khr command_buffer, 566 cl_bool automatic, 567 cl_uint num_queues, 568 const cl_command_queue* queues, 569 cl_uint num_handles, 570 const cl_mutable_command_khr* handles, 571 cl_mutable_command_khr* handles_ret, 572 cl_int* errcode_ret); 573 574 typedef clRemapCommandBufferKHR_t * 575 clRemapCommandBufferKHR_fn ; 576 577 #if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) 578 579 extern CL_API_ENTRY cl_command_buffer_khr CL_API_CALL 580 clRemapCommandBufferKHR( 581 cl_command_buffer_khr command_buffer, 582 cl_bool automatic, 583 cl_uint num_queues, 584 const cl_command_queue* queues, 585 cl_uint num_handles, 586 const cl_mutable_command_khr* handles, 587 cl_mutable_command_khr* handles_ret, 588 cl_int* errcode_ret) ; 589 590 #endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ 591 592 /*************************************************************** 593 * cl_khr_command_buffer_mutable_dispatch 594 ***************************************************************/ 595 #define cl_khr_command_buffer_mutable_dispatch 1 596 #define CL_KHR_COMMAND_BUFFER_MUTABLE_DISPATCH_EXTENSION_NAME \ 597 "cl_khr_command_buffer_mutable_dispatch" 598 599 typedef cl_uint cl_command_buffer_structure_type_khr; 600 typedef cl_bitfield cl_mutable_dispatch_fields_khr; 601 typedef cl_uint cl_mutable_command_info_khr; 602 typedef struct _cl_mutable_dispatch_arg_khr { 603 cl_uint arg_index; 604 size_t arg_size; 605 const void* arg_value; 606 } cl_mutable_dispatch_arg_khr; 607 typedef struct _cl_mutable_dispatch_exec_info_khr { 608 cl_uint param_name; 609 size_t param_value_size; 610 const void* param_value; 611 } cl_mutable_dispatch_exec_info_khr; 612 typedef struct _cl_mutable_dispatch_config_khr { 613 cl_command_buffer_structure_type_khr type; 614 const void* next; 615 cl_mutable_command_khr command; 616 cl_uint num_args; 617 cl_uint num_svm_args; 618 cl_uint num_exec_infos; 619 cl_uint work_dim; 620 const cl_mutable_dispatch_arg_khr* arg_list; 621 const cl_mutable_dispatch_arg_khr* arg_svm_list; 622 const cl_mutable_dispatch_exec_info_khr* exec_info_list; 623 const size_t* global_work_offset; 624 const size_t* global_work_size; 625 const size_t* local_work_size; 626 } cl_mutable_dispatch_config_khr; 627 typedef struct _cl_mutable_base_config_khr { 628 cl_command_buffer_structure_type_khr type; 629 const void* next; 630 cl_uint num_mutable_dispatch; 631 const cl_mutable_dispatch_config_khr* mutable_dispatch_list; 632 } cl_mutable_base_config_khr; 633 typedef cl_bitfield cl_mutable_dispatch_asserts_khr; 634 635 /* cl_command_buffer_flags_khr - bitfield */ 636 #define CL_COMMAND_BUFFER_MUTABLE_KHR (1 << 1) 637 638 /* Error codes */ 639 #define CL_INVALID_MUTABLE_COMMAND_KHR -1141 640 641 /* cl_device_info */ 642 #define CL_DEVICE_MUTABLE_DISPATCH_CAPABILITIES_KHR 0x12B0 643 644 /* cl_ndrange_kernel_command_properties_khr */ 645 #define CL_MUTABLE_DISPATCH_UPDATABLE_FIELDS_KHR 0x12B1 646 647 /* cl_mutable_dispatch_fields_khr - bitfield */ 648 #define CL_MUTABLE_DISPATCH_GLOBAL_OFFSET_KHR (1 << 0) 649 #define CL_MUTABLE_DISPATCH_GLOBAL_SIZE_KHR (1 << 1) 650 #define CL_MUTABLE_DISPATCH_LOCAL_SIZE_KHR (1 << 2) 651 #define CL_MUTABLE_DISPATCH_ARGUMENTS_KHR (1 << 3) 652 #define CL_MUTABLE_DISPATCH_EXEC_INFO_KHR (1 << 4) 653 654 /* cl_mutable_command_info_khr */ 655 #define CL_MUTABLE_COMMAND_COMMAND_QUEUE_KHR 0x12A0 656 #define CL_MUTABLE_COMMAND_COMMAND_BUFFER_KHR 0x12A1 657 #define CL_MUTABLE_COMMAND_COMMAND_TYPE_KHR 0x12AD 658 #define CL_MUTABLE_DISPATCH_PROPERTIES_ARRAY_KHR 0x12A2 659 #define CL_MUTABLE_DISPATCH_KERNEL_KHR 0x12A3 660 #define CL_MUTABLE_DISPATCH_DIMENSIONS_KHR 0x12A4 661 #define CL_MUTABLE_DISPATCH_GLOBAL_WORK_OFFSET_KHR 0x12A5 662 #define CL_MUTABLE_DISPATCH_GLOBAL_WORK_SIZE_KHR 0x12A6 663 #define CL_MUTABLE_DISPATCH_LOCAL_WORK_SIZE_KHR 0x12A7 664 665 /* cl_command_buffer_structure_type_khr */ 666 #define CL_STRUCTURE_TYPE_MUTABLE_BASE_CONFIG_KHR 0 667 #define CL_STRUCTURE_TYPE_MUTABLE_DISPATCH_CONFIG_KHR 1 668 669 /* cl_command_buffer_properties_khr */ 670 #define CL_COMMAND_BUFFER_MUTABLE_DISPATCH_ASSERTS_KHR 0x12B7 671 672 /* cl_ndrange_kernel_command_properties_khr */ 673 #define CL_MUTABLE_DISPATCH_ASSERTS_KHR 0x12B8 674 675 /* cl_mutable_dispatch_asserts_khr - bitfield */ 676 #define CL_MUTABLE_DISPATCH_ASSERT_NO_ADDITIONAL_WORK_GROUPS_KHR (1 << 0) 677 678 679 typedef cl_int CL_API_CALL 680 clUpdateMutableCommandsKHR_t( 681 cl_command_buffer_khr command_buffer, 682 const cl_mutable_base_config_khr* mutable_config); 683 684 typedef clUpdateMutableCommandsKHR_t * 685 clUpdateMutableCommandsKHR_fn ; 686 687 typedef cl_int CL_API_CALL 688 clGetMutableCommandInfoKHR_t( 689 cl_mutable_command_khr command, 690 cl_mutable_command_info_khr param_name, 691 size_t param_value_size, 692 void* param_value, 693 size_t* param_value_size_ret); 694 695 typedef clGetMutableCommandInfoKHR_t * 696 clGetMutableCommandInfoKHR_fn ; 697 698 #if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) 699 700 extern CL_API_ENTRY cl_int CL_API_CALL 701 clUpdateMutableCommandsKHR( 702 cl_command_buffer_khr command_buffer, 703 const cl_mutable_base_config_khr* mutable_config) ; 704 705 extern CL_API_ENTRY cl_int CL_API_CALL 706 clGetMutableCommandInfoKHR( 707 cl_mutable_command_khr command, 708 cl_mutable_command_info_khr param_name, 709 size_t param_value_size, 710 void* param_value, 711 size_t* param_value_size_ret) ; 712 713 #endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ 714 715 /*************************************************************** 716 * cl_khr_fp64 717 ***************************************************************/ 718 #define cl_khr_fp64 1 719 #define CL_KHR_FP64_EXTENSION_NAME \ 720 "cl_khr_fp64" 721 722 #if !defined(CL_VERSION_1_2) 723 /* cl_device_info - defined in CL.h for OpenCL 1.2 and newer */ 724 #define CL_DEVICE_DOUBLE_FP_CONFIG 0x1032 725 726 #endif /* !defined(CL_VERSION_1_2) */ 727 728 /*************************************************************** 729 * cl_khr_fp16 730 ***************************************************************/ 731 #define cl_khr_fp16 1 732 #define CL_KHR_FP16_EXTENSION_NAME \ 733 "cl_khr_fp16" 734 735 /* cl_device_info */ 736 #define CL_DEVICE_HALF_FP_CONFIG 0x1033 737 738 /*************************************************************** 739 * cl_APPLE_SetMemObjectDestructor 740 ***************************************************************/ 741 #define cl_APPLE_SetMemObjectDestructor 1 742 #define CL_APPLE_SETMEMOBJECTDESTRUCTOR_EXTENSION_NAME \ 743 "cl_APPLE_SetMemObjectDestructor" 744 745 746 typedef cl_int CL_API_CALL 747 clSetMemObjectDestructorAPPLE_t( 748 cl_mem memobj, 749 void (CL_CALLBACK* pfn_notify)(cl_mem memobj, void* user_data), 750 void* user_data); 751 752 typedef clSetMemObjectDestructorAPPLE_t * 753 clSetMemObjectDestructorAPPLE_fn CL_API_SUFFIX__VERSION_1_0; 754 755 #if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) 756 757 extern CL_API_ENTRY cl_int CL_API_CALL 758 clSetMemObjectDestructorAPPLE( 759 cl_mem memobj, 760 void (CL_CALLBACK* pfn_notify)(cl_mem memobj, void* user_data), 761 void* user_data) CL_API_SUFFIX__VERSION_1_0; 762 763 #endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ 764 765 /*************************************************************** 766 * cl_APPLE_ContextLoggingFunctions 767 ***************************************************************/ 768 #define cl_APPLE_ContextLoggingFunctions 1 769 #define CL_APPLE_CONTEXTLOGGINGFUNCTIONS_EXTENSION_NAME \ 770 "cl_APPLE_ContextLoggingFunctions" 771 772 773 typedef void CL_API_CALL 774 clLogMessagesToSystemLogAPPLE_t( 775 const char* errstr, 776 const void* private_info, 777 size_t cb, 778 void* user_data); 779 780 typedef clLogMessagesToSystemLogAPPLE_t * 781 clLogMessagesToSystemLogAPPLE_fn CL_API_SUFFIX__VERSION_1_0; 782 783 typedef void CL_API_CALL 784 clLogMessagesToStdoutAPPLE_t( 785 const char* errstr, 786 const void* private_info, 787 size_t cb, 788 void* user_data); 789 790 typedef clLogMessagesToStdoutAPPLE_t * 791 clLogMessagesToStdoutAPPLE_fn CL_API_SUFFIX__VERSION_1_0; 792 793 typedef void CL_API_CALL 794 clLogMessagesToStderrAPPLE_t( 795 const char* errstr, 796 const void* private_info, 797 size_t cb, 798 void* user_data); 799 800 typedef clLogMessagesToStderrAPPLE_t * 801 clLogMessagesToStderrAPPLE_fn CL_API_SUFFIX__VERSION_1_0; 802 803 #if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) 804 805 extern CL_API_ENTRY void CL_API_CALL 806 clLogMessagesToSystemLogAPPLE( 807 const char* errstr, 808 const void* private_info, 809 size_t cb, 810 void* user_data) CL_API_SUFFIX__VERSION_1_0; 811 812 extern CL_API_ENTRY void CL_API_CALL 813 clLogMessagesToStdoutAPPLE( 814 const char* errstr, 815 const void* private_info, 816 size_t cb, 817 void* user_data) CL_API_SUFFIX__VERSION_1_0; 818 819 extern CL_API_ENTRY void CL_API_CALL 820 clLogMessagesToStderrAPPLE( 821 const char* errstr, 822 const void* private_info, 823 size_t cb, 824 void* user_data) CL_API_SUFFIX__VERSION_1_0; 825 826 #endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ 827 828 /*************************************************************** 829 * cl_khr_icd 830 ***************************************************************/ 831 #define cl_khr_icd 1 832 #define CL_KHR_ICD_EXTENSION_NAME \ 833 "cl_khr_icd" 834 835 /* cl_platform_info */ 836 #define CL_PLATFORM_ICD_SUFFIX_KHR 0x0920 837 838 /* Error codes */ 839 #define CL_PLATFORM_NOT_FOUND_KHR -1001 840 841 842 typedef cl_int CL_API_CALL 843 clIcdGetPlatformIDsKHR_t( 844 cl_uint num_entries, 845 cl_platform_id* platforms, 846 cl_uint* num_platforms); 847 848 typedef clIcdGetPlatformIDsKHR_t * 849 clIcdGetPlatformIDsKHR_fn ; 850 851 #if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) 852 853 extern CL_API_ENTRY cl_int CL_API_CALL 854 clIcdGetPlatformIDsKHR( 855 cl_uint num_entries, 856 cl_platform_id* platforms, 857 cl_uint* num_platforms) ; 858 859 #endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ 860 861 /*************************************************************** 862 * cl_khr_il_program 863 ***************************************************************/ 864 #define cl_khr_il_program 1 865 #define CL_KHR_IL_PROGRAM_EXTENSION_NAME \ 866 "cl_khr_il_program" 867 868 /* cl_device_info */ 869 #define CL_DEVICE_IL_VERSION_KHR 0x105B 870 871 /* cl_program_info */ 872 #define CL_PROGRAM_IL_KHR 0x1169 873 874 875 typedef cl_program CL_API_CALL 876 clCreateProgramWithILKHR_t( 877 cl_context context, 878 const void* il, 879 size_t length, 880 cl_int* errcode_ret); 881 882 typedef clCreateProgramWithILKHR_t * 883 clCreateProgramWithILKHR_fn CL_API_SUFFIX__VERSION_1_2; 884 885 #if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) 886 887 extern CL_API_ENTRY cl_program CL_API_CALL 888 clCreateProgramWithILKHR( 889 cl_context context, 890 const void* il, 891 size_t length, 892 cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; 893 894 #endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ 895 896 /*************************************************************** 897 * cl_khr_image2d_from_buffer 898 ***************************************************************/ 899 #define cl_khr_image2d_from_buffer 1 900 #define CL_KHR_IMAGE2D_FROM_BUFFER_EXTENSION_NAME \ 901 "cl_khr_image2d_from_buffer" 902 903 /* cl_device_info */ 904 #define CL_DEVICE_IMAGE_PITCH_ALIGNMENT_KHR 0x104A 905 #define CL_DEVICE_IMAGE_BASE_ADDRESS_ALIGNMENT_KHR 0x104B 906 907 /*************************************************************** 908 * cl_khr_initialize_memory 909 ***************************************************************/ 910 #define cl_khr_initialize_memory 1 911 #define CL_KHR_INITIALIZE_MEMORY_EXTENSION_NAME \ 912 "cl_khr_initialize_memory" 913 914 typedef cl_bitfield cl_context_memory_initialize_khr; 915 916 /* cl_context_properties */ 917 #define CL_CONTEXT_MEMORY_INITIALIZE_KHR 0x2030 918 919 /* cl_context_memory_initialize_khr */ 920 #define CL_CONTEXT_MEMORY_INITIALIZE_LOCAL_KHR (1 << 0) 921 #define CL_CONTEXT_MEMORY_INITIALIZE_PRIVATE_KHR (1 << 1) 922 923 /*************************************************************** 924 * cl_khr_terminate_context 925 ***************************************************************/ 926 #define cl_khr_terminate_context 1 927 #define CL_KHR_TERMINATE_CONTEXT_EXTENSION_NAME \ 928 "cl_khr_terminate_context" 929 930 typedef cl_bitfield cl_device_terminate_capability_khr; 931 932 /* cl_device_info */ 933 #define CL_DEVICE_TERMINATE_CAPABILITY_KHR 0x2031 934 935 /* cl_context_properties */ 936 #define CL_CONTEXT_TERMINATE_KHR 0x2032 937 938 /* cl_device_terminate_capability_khr */ 939 #define CL_DEVICE_TERMINATE_CAPABILITY_CONTEXT_KHR (1 << 0) 940 941 /* Error codes */ 942 #define CL_CONTEXT_TERMINATED_KHR -1121 943 944 945 typedef cl_int CL_API_CALL 946 clTerminateContextKHR_t( 947 cl_context context); 948 949 typedef clTerminateContextKHR_t * 950 clTerminateContextKHR_fn CL_API_SUFFIX__VERSION_1_2; 951 952 #if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) 953 954 extern CL_API_ENTRY cl_int CL_API_CALL 955 clTerminateContextKHR( 956 cl_context context) CL_API_SUFFIX__VERSION_1_2; 957 958 #endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ 959 960 /*************************************************************** 961 * cl_khr_spir 962 ***************************************************************/ 963 #define cl_khr_spir 1 964 #define CL_KHR_SPIR_EXTENSION_NAME \ 965 "cl_khr_spir" 966 967 /* cl_device_info */ 968 #define CL_DEVICE_SPIR_VERSIONS 0x40E0 969 970 /* cl_program_binary_type */ 971 #define CL_PROGRAM_BINARY_TYPE_INTERMEDIATE 0x40E1 972 973 /*************************************************************** 974 * cl_khr_create_command_queue 975 ***************************************************************/ 976 #define cl_khr_create_command_queue 1 977 #define CL_KHR_CREATE_COMMAND_QUEUE_EXTENSION_NAME \ 978 "cl_khr_create_command_queue" 979 980 typedef cl_properties cl_queue_properties_khr; 981 982 983 typedef cl_command_queue CL_API_CALL 984 clCreateCommandQueueWithPropertiesKHR_t( 985 cl_context context, 986 cl_device_id device, 987 const cl_queue_properties_khr* properties, 988 cl_int* errcode_ret); 989 990 typedef clCreateCommandQueueWithPropertiesKHR_t * 991 clCreateCommandQueueWithPropertiesKHR_fn CL_API_SUFFIX__VERSION_1_2; 992 993 #if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) 994 995 extern CL_API_ENTRY cl_command_queue CL_API_CALL 996 clCreateCommandQueueWithPropertiesKHR( 997 cl_context context, 998 cl_device_id device, 999 const cl_queue_properties_khr* properties, 1000 cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; 1001 1002 #endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ 1003 1004 /*************************************************************** 1005 * cl_nv_device_attribute_query 1006 ***************************************************************/ 1007 #define cl_nv_device_attribute_query 1 1008 #define CL_NV_DEVICE_ATTRIBUTE_QUERY_EXTENSION_NAME \ 1009 "cl_nv_device_attribute_query" 1010 1011 /* cl_device_info */ 1012 #define CL_DEVICE_COMPUTE_CAPABILITY_MAJOR_NV 0x4000 1013 #define CL_DEVICE_COMPUTE_CAPABILITY_MINOR_NV 0x4001 1014 #define CL_DEVICE_REGISTERS_PER_BLOCK_NV 0x4002 1015 #define CL_DEVICE_WARP_SIZE_NV 0x4003 1016 #define CL_DEVICE_GPU_OVERLAP_NV 0x4004 1017 #define CL_DEVICE_KERNEL_EXEC_TIMEOUT_NV 0x4005 1018 #define CL_DEVICE_INTEGRATED_MEMORY_NV 0x4006 1019 1020 /*************************************************************** 1021 * cl_amd_device_attribute_query 1022 ***************************************************************/ 1023 #define cl_amd_device_attribute_query 1 1024 #define CL_AMD_DEVICE_ATTRIBUTE_QUERY_EXTENSION_NAME \ 1025 "cl_amd_device_attribute_query" 1026 1027 /* cl_device_info */ 1028 #define CL_DEVICE_PROFILING_TIMER_OFFSET_AMD 0x4036 1029 #define CL_DEVICE_TOPOLOGY_AMD 0x4037 1030 #define CL_DEVICE_BOARD_NAME_AMD 0x4038 1031 #define CL_DEVICE_GLOBAL_FREE_MEMORY_AMD 0x4039 1032 #define CL_DEVICE_SIMD_PER_COMPUTE_UNIT_AMD 0x4040 1033 #define CL_DEVICE_SIMD_WIDTH_AMD 0x4041 1034 #define CL_DEVICE_SIMD_INSTRUCTION_WIDTH_AMD 0x4042 1035 #define CL_DEVICE_WAVEFRONT_WIDTH_AMD 0x4043 1036 #define CL_DEVICE_GLOBAL_MEM_CHANNELS_AMD 0x4044 1037 #define CL_DEVICE_GLOBAL_MEM_CHANNEL_BANKS_AMD 0x4045 1038 #define CL_DEVICE_GLOBAL_MEM_CHANNEL_BANK_WIDTH_AMD 0x4046 1039 #define CL_DEVICE_LOCAL_MEM_SIZE_PER_COMPUTE_UNIT_AMD 0x4047 1040 #define CL_DEVICE_LOCAL_MEM_BANKS_AMD 0x4048 1041 #define CL_DEVICE_THREAD_TRACE_SUPPORTED_AMD 0x4049 1042 #define CL_DEVICE_GFXIP_MAJOR_AMD 0x404A 1043 #define CL_DEVICE_GFXIP_MINOR_AMD 0x404B 1044 #define CL_DEVICE_AVAILABLE_ASYNC_QUEUES_AMD 0x404C 1045 #define CL_DEVICE_PREFERRED_WORK_GROUP_SIZE_AMD 0x4030 1046 #define CL_DEVICE_MAX_WORK_GROUP_SIZE_AMD 0x4031 1047 #define CL_DEVICE_PREFERRED_CONSTANT_BUFFER_SIZE_AMD 0x4033 1048 #define CL_DEVICE_PCIE_ID_AMD 0x4034 1049 1050 /*************************************************************** 1051 * cl_arm_printf 1052 ***************************************************************/ 1053 #define cl_arm_printf 1 1054 #define CL_ARM_PRINTF_EXTENSION_NAME \ 1055 "cl_arm_printf" 1056 1057 /* cl_context_properties */ 1058 #define CL_PRINTF_CALLBACK_ARM 0x40B0 1059 #define CL_PRINTF_BUFFERSIZE_ARM 0x40B1 1060 1061 /*************************************************************** 1062 * cl_ext_device_fission 1063 ***************************************************************/ 1064 #define cl_ext_device_fission 1 1065 #define CL_EXT_DEVICE_FISSION_EXTENSION_NAME \ 1066 "cl_ext_device_fission" 1067 1068 typedef cl_ulong cl_device_partition_property_ext; 1069 1070 /* Error codes */ 1071 #define CL_DEVICE_PARTITION_FAILED_EXT -1057 1072 #define CL_INVALID_PARTITION_COUNT_EXT -1058 1073 #define CL_INVALID_PARTITION_NAME_EXT -1059 1074 1075 /* cl_device_info */ 1076 #define CL_DEVICE_PARENT_DEVICE_EXT 0x4054 1077 #define CL_DEVICE_PARTITION_TYPES_EXT 0x4055 1078 #define CL_DEVICE_AFFINITY_DOMAINS_EXT 0x4056 1079 #define CL_DEVICE_REFERENCE_COUNT_EXT 0x4057 1080 #define CL_DEVICE_PARTITION_STYLE_EXT 0x4058 1081 1082 /* cl_device_partition_property_ext */ 1083 #define CL_DEVICE_PARTITION_EQUALLY_EXT 0x4050 1084 #define CL_DEVICE_PARTITION_BY_COUNTS_EXT 0x4051 1085 #define CL_DEVICE_PARTITION_BY_NAMES_EXT 0x4052 1086 #define CL_DEVICE_PARTITION_BY_AFFINITY_DOMAIN_EXT 0x4053 1087 1088 /* cl_device_partition_property_ext - affinity domains */ 1089 #define CL_AFFINITY_DOMAIN_L1_CACHE_EXT 0x1 1090 #define CL_AFFINITY_DOMAIN_L2_CACHE_EXT 0x2 1091 #define CL_AFFINITY_DOMAIN_L3_CACHE_EXT 0x3 1092 #define CL_AFFINITY_DOMAIN_L4_CACHE_EXT 0x4 1093 #define CL_AFFINITY_DOMAIN_NUMA_EXT 0x10 1094 #define CL_AFFINITY_DOMAIN_NEXT_FISSIONABLE_EXT 0x100 1095 1096 /* cl_device_partition_property_ext - list terminators */ 1097 #define CL_PROPERTIES_LIST_END_EXT ((cl_device_partition_property_ext)0) 1098 #define CL_PARTITION_BY_COUNTS_LIST_END_EXT ((cl_device_partition_property_ext)0) 1099 #define CL_PARTITION_BY_NAMES_LIST_END_EXT ((cl_device_partition_property_ext)0 - 1) 1100 1101 1102 typedef cl_int CL_API_CALL 1103 clReleaseDeviceEXT_t( 1104 cl_device_id device); 1105 1106 typedef clReleaseDeviceEXT_t * 1107 clReleaseDeviceEXT_fn CL_API_SUFFIX__VERSION_1_1; 1108 1109 typedef cl_int CL_API_CALL 1110 clRetainDeviceEXT_t( 1111 cl_device_id device); 1112 1113 typedef clRetainDeviceEXT_t * 1114 clRetainDeviceEXT_fn CL_API_SUFFIX__VERSION_1_1; 1115 1116 typedef cl_int CL_API_CALL 1117 clCreateSubDevicesEXT_t( 1118 cl_device_id in_device, 1119 const cl_device_partition_property_ext* properties, 1120 cl_uint num_entries, 1121 cl_device_id* out_devices, 1122 cl_uint* num_devices); 1123 1124 typedef clCreateSubDevicesEXT_t * 1125 clCreateSubDevicesEXT_fn CL_API_SUFFIX__VERSION_1_1; 1126 1127 #if !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) 1128 1129 extern CL_API_ENTRY cl_int CL_API_CALL 1130 clReleaseDeviceEXT( 1131 cl_device_id device) CL_API_SUFFIX__VERSION_1_1; 1132 1133 extern CL_API_ENTRY cl_int CL_API_CALL 1134 clRetainDeviceEXT( 1135 cl_device_id device) CL_API_SUFFIX__VERSION_1_1; 1136 1137 extern CL_API_ENTRY cl_int CL_API_CALL 1138 clCreateSubDevicesEXT( 1139 cl_device_id in_device, 1140 const cl_device_partition_property_ext* properties, 1141 cl_uint num_entries, 1142 cl_device_id* out_devices, 1143 cl_uint* num_devices) CL_API_SUFFIX__VERSION_1_1; 1144 1145 #endif /* !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ 1146 1147 /*************************************************************** 1148 * cl_ext_migrate_memobject 1149 ***************************************************************/ 1150 #define cl_ext_migrate_memobject 1 1151 #define CL_EXT_MIGRATE_MEMOBJECT_EXTENSION_NAME \ 1152 "cl_ext_migrate_memobject" 1153 1154 typedef cl_bitfield cl_mem_migration_flags_ext; 1155 1156 /* cl_mem_migration_flags_ext */ 1157 #define CL_MIGRATE_MEM_OBJECT_HOST_EXT (1 << 0) 1158 1159 /* cl_command_type */ 1160 #define CL_COMMAND_MIGRATE_MEM_OBJECT_EXT 0x4040 1161 1162 1163 typedef cl_int CL_API_CALL 1164 clEnqueueMigrateMemObjectEXT_t( 1165 cl_command_queue command_queue, 1166 cl_uint num_mem_objects, 1167 const cl_mem* mem_objects, 1168 cl_mem_migration_flags_ext flags, 1169 cl_uint num_events_in_wait_list, 1170 const cl_event* event_wait_list, 1171 cl_event* event); 1172 1173 typedef clEnqueueMigrateMemObjectEXT_t * 1174 clEnqueueMigrateMemObjectEXT_fn ; 1175 1176 #if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) 1177 1178 extern CL_API_ENTRY cl_int CL_API_CALL 1179 clEnqueueMigrateMemObjectEXT( 1180 cl_command_queue command_queue, 1181 cl_uint num_mem_objects, 1182 const cl_mem* mem_objects, 1183 cl_mem_migration_flags_ext flags, 1184 cl_uint num_events_in_wait_list, 1185 const cl_event* event_wait_list, 1186 cl_event* event) ; 1187 1188 #endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ 1189 1190 /*************************************************************** 1191 * cl_ext_cxx_for_opencl 1192 ***************************************************************/ 1193 #define cl_ext_cxx_for_opencl 1 1194 #define CL_EXT_CXX_FOR_OPENCL_EXTENSION_NAME \ 1195 "cl_ext_cxx_for_opencl" 1196 1197 /* cl_device_info */ 1198 #define CL_DEVICE_CXX_FOR_OPENCL_NUMERIC_VERSION_EXT 0x4230 1199 1200 /*************************************************************** 1201 * cl_qcom_ext_host_ptr 1202 ***************************************************************/ 1203 #define cl_qcom_ext_host_ptr 1 1204 #define CL_QCOM_EXT_HOST_PTR_EXTENSION_NAME \ 1205 "cl_qcom_ext_host_ptr" 1206 1207 typedef cl_uint cl_image_pitch_info_qcom; 1208 typedef struct _cl_mem_ext_host_ptr { 1209 cl_uint allocation_type; 1210 cl_uint host_cache_policy; 1211 } cl_mem_ext_host_ptr; 1212 1213 /* cl_mem_flags */ 1214 #define CL_MEM_EXT_HOST_PTR_QCOM (1 << 29) 1215 1216 /* cl_device_info */ 1217 #define CL_DEVICE_EXT_MEM_PADDING_IN_BYTES_QCOM 0x40A0 1218 #define CL_DEVICE_PAGE_SIZE_QCOM 0x40A1 1219 1220 /* cl_image_pitch_info_qcom */ 1221 #define CL_IMAGE_ROW_ALIGNMENT_QCOM 0x40A2 1222 #define CL_IMAGE_SLICE_ALIGNMENT_QCOM 0x40A3 1223 1224 /* cl_uint host_cache_policy */ 1225 #define CL_MEM_HOST_UNCACHED_QCOM 0x40A4 1226 #define CL_MEM_HOST_WRITEBACK_QCOM 0x40A5 1227 #define CL_MEM_HOST_WRITETHROUGH_QCOM 0x40A6 1228 #define CL_MEM_HOST_WRITE_COMBINING_QCOM 0x40A7 1229 1230 1231 typedef cl_int CL_API_CALL 1232 clGetDeviceImageInfoQCOM_t( 1233 cl_device_id device, 1234 size_t image_width, 1235 size_t image_height, 1236 const cl_image_format* image_format, 1237 cl_image_pitch_info_qcom param_name, 1238 size_t param_value_size, 1239 void* param_value, 1240 size_t* param_value_size_ret); 1241 1242 typedef clGetDeviceImageInfoQCOM_t * 1243 clGetDeviceImageInfoQCOM_fn ; 1244 1245 #if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) 1246 1247 extern CL_API_ENTRY cl_int CL_API_CALL 1248 clGetDeviceImageInfoQCOM( 1249 cl_device_id device, 1250 size_t image_width, 1251 size_t image_height, 1252 const cl_image_format* image_format, 1253 cl_image_pitch_info_qcom param_name, 1254 size_t param_value_size, 1255 void* param_value, 1256 size_t* param_value_size_ret) ; 1257 1258 #endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ 1259 1260 /*************************************************************** 1261 * cl_qcom_ext_host_ptr_iocoherent 1262 ***************************************************************/ 1263 #define cl_qcom_ext_host_ptr_iocoherent 1 1264 #define CL_QCOM_EXT_HOST_PTR_IOCOHERENT_EXTENSION_NAME \ 1265 "cl_qcom_ext_host_ptr_iocoherent" 1266 1267 /* cl_uint host_cache_policy */ 1268 #define CL_MEM_HOST_IOCOHERENT_QCOM 0x40A9 1269 1270 /*************************************************************** 1271 * cl_qcom_ion_host_ptr 1272 ***************************************************************/ 1273 #define cl_qcom_ion_host_ptr 1 1274 #define CL_QCOM_ION_HOST_PTR_EXTENSION_NAME \ 1275 "cl_qcom_ion_host_ptr" 1276 1277 /* type cl_mem_ext_host_ptr */ 1278 typedef struct _cl_mem_ion_host_ptr { 1279 cl_mem_ext_host_ptr ext_host_ptr; 1280 int ion_filedesc; 1281 void* ion_hostptr; 1282 } cl_mem_ion_host_ptr; 1283 1284 /* cl_uint allocation_type */ 1285 #define CL_MEM_ION_HOST_PTR_QCOM 0x40A8 1286 1287 /*************************************************************** 1288 * cl_qcom_android_native_buffer_host_ptr 1289 ***************************************************************/ 1290 #define cl_qcom_android_native_buffer_host_ptr 1 1291 #define CL_QCOM_ANDROID_NATIVE_BUFFER_HOST_PTR_EXTENSION_NAME \ 1292 "cl_qcom_android_native_buffer_host_ptr" 1293 1294 /* type cl_mem_ext_host_ptr */ 1295 typedef struct _cl_mem_android_native_buffer_host_ptr { 1296 cl_mem_ext_host_ptr ext_host_ptr; 1297 void* anb_ptr; 1298 } cl_mem_android_native_buffer_host_ptr; 1299 1300 /* cl_uint allocation_type */ 1301 #define CL_MEM_ANDROID_NATIVE_BUFFER_HOST_PTR_QCOM 0x40C6 1302 1303 /*************************************************************** 1304 * cl_img_yuv_image 1305 ***************************************************************/ 1306 #define cl_img_yuv_image 1 1307 #define CL_IMG_YUV_IMAGE_EXTENSION_NAME \ 1308 "cl_img_yuv_image" 1309 1310 /* cl_channel_order */ 1311 #define CL_NV21_IMG 0x40D0 1312 #define CL_YV12_IMG 0x40D1 1313 1314 /*************************************************************** 1315 * cl_img_cached_allocations 1316 ***************************************************************/ 1317 #define cl_img_cached_allocations 1 1318 #define CL_IMG_CACHED_ALLOCATIONS_EXTENSION_NAME \ 1319 "cl_img_cached_allocations" 1320 1321 /* cl_mem_flags */ 1322 #define CL_MEM_USE_UNCACHED_CPU_MEMORY_IMG (1 << 26) 1323 #define CL_MEM_USE_CACHED_CPU_MEMORY_IMG (1 << 27) 1324 1325 /*************************************************************** 1326 * cl_img_use_gralloc_ptr 1327 ***************************************************************/ 1328 #define cl_img_use_gralloc_ptr 1 1329 #define CL_IMG_USE_GRALLOC_PTR_EXTENSION_NAME \ 1330 "cl_img_use_gralloc_ptr" 1331 1332 /* Error codes */ 1333 #define CL_GRALLOC_RESOURCE_NOT_ACQUIRED_IMG 0x40D4 1334 #define CL_INVALID_GRALLOC_OBJECT_IMG 0x40D5 1335 1336 /* cl_mem_flags */ 1337 #define CL_MEM_USE_GRALLOC_PTR_IMG (1 << 28) 1338 1339 /* cl_command_type */ 1340 #define CL_COMMAND_ACQUIRE_GRALLOC_OBJECTS_IMG 0x40D2 1341 #define CL_COMMAND_RELEASE_GRALLOC_OBJECTS_IMG 0x40D3 1342 1343 1344 typedef cl_int CL_API_CALL 1345 clEnqueueAcquireGrallocObjectsIMG_t( 1346 cl_command_queue command_queue, 1347 cl_uint num_objects, 1348 const cl_mem* mem_objects, 1349 cl_uint num_events_in_wait_list, 1350 const cl_event* event_wait_list, 1351 cl_event* event); 1352 1353 typedef clEnqueueAcquireGrallocObjectsIMG_t * 1354 clEnqueueAcquireGrallocObjectsIMG_fn CL_API_SUFFIX__VERSION_1_2; 1355 1356 typedef cl_int CL_API_CALL 1357 clEnqueueReleaseGrallocObjectsIMG_t( 1358 cl_command_queue command_queue, 1359 cl_uint num_objects, 1360 const cl_mem* mem_objects, 1361 cl_uint num_events_in_wait_list, 1362 const cl_event* event_wait_list, 1363 cl_event* event); 1364 1365 typedef clEnqueueReleaseGrallocObjectsIMG_t * 1366 clEnqueueReleaseGrallocObjectsIMG_fn CL_API_SUFFIX__VERSION_1_2; 1367 1368 #if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) 1369 1370 extern CL_API_ENTRY cl_int CL_API_CALL 1371 clEnqueueAcquireGrallocObjectsIMG( 1372 cl_command_queue command_queue, 1373 cl_uint num_objects, 1374 const cl_mem* mem_objects, 1375 cl_uint num_events_in_wait_list, 1376 const cl_event* event_wait_list, 1377 cl_event* event) CL_API_SUFFIX__VERSION_1_2; 1378 1379 extern CL_API_ENTRY cl_int CL_API_CALL 1380 clEnqueueReleaseGrallocObjectsIMG( 1381 cl_command_queue command_queue, 1382 cl_uint num_objects, 1383 const cl_mem* mem_objects, 1384 cl_uint num_events_in_wait_list, 1385 const cl_event* event_wait_list, 1386 cl_event* event) CL_API_SUFFIX__VERSION_1_2; 1387 1388 #endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ 1389 1390 /*************************************************************** 1391 * cl_img_generate_mipmap 1392 ***************************************************************/ 1393 #define cl_img_generate_mipmap 1 1394 #define CL_IMG_GENERATE_MIPMAP_EXTENSION_NAME \ 1395 "cl_img_generate_mipmap" 1396 1397 typedef cl_uint cl_mipmap_filter_mode_img; 1398 1399 /* cl_mipmap_filter_mode_img */ 1400 #define CL_MIPMAP_FILTER_ANY_IMG 0x0 1401 #define CL_MIPMAP_FILTER_BOX_IMG 0x1 1402 1403 /* cl_command_type */ 1404 #define CL_COMMAND_GENERATE_MIPMAP_IMG 0x40D6 1405 1406 1407 typedef cl_int CL_API_CALL 1408 clEnqueueGenerateMipmapIMG_t( 1409 cl_command_queue command_queue, 1410 cl_mem src_image, 1411 cl_mem dst_image, 1412 cl_mipmap_filter_mode_img mipmap_filter_mode, 1413 const size_t* array_region, 1414 const size_t* mip_region, 1415 cl_uint num_events_in_wait_list, 1416 const cl_event* event_wait_list, 1417 cl_event* event); 1418 1419 typedef clEnqueueGenerateMipmapIMG_t * 1420 clEnqueueGenerateMipmapIMG_fn CL_API_SUFFIX__VERSION_1_2; 1421 1422 #if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) 1423 1424 extern CL_API_ENTRY cl_int CL_API_CALL 1425 clEnqueueGenerateMipmapIMG( 1426 cl_command_queue command_queue, 1427 cl_mem src_image, 1428 cl_mem dst_image, 1429 cl_mipmap_filter_mode_img mipmap_filter_mode, 1430 const size_t* array_region, 1431 const size_t* mip_region, 1432 cl_uint num_events_in_wait_list, 1433 const cl_event* event_wait_list, 1434 cl_event* event) CL_API_SUFFIX__VERSION_1_2; 1435 1436 #endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ 1437 1438 /*************************************************************** 1439 * cl_img_mem_properties 1440 ***************************************************************/ 1441 #define cl_img_mem_properties 1 1442 #define CL_IMG_MEM_PROPERTIES_EXTENSION_NAME \ 1443 "cl_img_mem_properties" 1444 1445 /* cl_mem_properties */ 1446 #define CL_MEM_ALLOC_FLAGS_IMG 0x40D7 1447 1448 /* cl_mem_alloc_flags_img */ 1449 #define CL_MEM_ALLOC_RELAX_REQUIREMENTS_IMG (1 << 0) 1450 #define CL_MEM_ALLOC_GPU_WRITE_COMBINE_IMG (1 << 1) 1451 #define CL_MEM_ALLOC_GPU_CACHED_IMG (1 << 2) 1452 #define CL_MEM_ALLOC_CPU_LOCAL_IMG (1 << 3) 1453 #define CL_MEM_ALLOC_GPU_LOCAL_IMG (1 << 4) 1454 #define CL_MEM_ALLOC_GPU_PRIVATE_IMG (1 << 5) 1455 1456 /* cl_device_info */ 1457 #define CL_DEVICE_MEMORY_CAPABILITIES_IMG 0x40D8 1458 1459 /*************************************************************** 1460 * cl_khr_subgroups 1461 ***************************************************************/ 1462 #define cl_khr_subgroups 1 1463 #define CL_KHR_SUBGROUPS_EXTENSION_NAME \ 1464 "cl_khr_subgroups" 1465 1466 #if !defined(CL_VERSION_2_1) 1467 /* defined in CL.h for OpenCL 2.1 and newer */ 1468 typedef cl_uint cl_kernel_sub_group_info; 1469 1470 #endif /* !defined(CL_VERSION_2_1) */ 1471 1472 /* cl_kernel_sub_group_info */ 1473 #define CL_KERNEL_MAX_SUB_GROUP_SIZE_FOR_NDRANGE_KHR 0x2033 1474 #define CL_KERNEL_SUB_GROUP_COUNT_FOR_NDRANGE_KHR 0x2034 1475 1476 1477 typedef cl_int CL_API_CALL 1478 clGetKernelSubGroupInfoKHR_t( 1479 cl_kernel in_kernel, 1480 cl_device_id in_device, 1481 cl_kernel_sub_group_info param_name, 1482 size_t input_value_size, 1483 const void* input_value, 1484 size_t param_value_size, 1485 void* param_value, 1486 size_t* param_value_size_ret); 1487 1488 typedef clGetKernelSubGroupInfoKHR_t * 1489 clGetKernelSubGroupInfoKHR_fn CL_API_SUFFIX__VERSION_2_0_DEPRECATED; 1490 1491 #if !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) 1492 1493 extern CL_API_ENTRY cl_int CL_API_CALL 1494 clGetKernelSubGroupInfoKHR( 1495 cl_kernel in_kernel, 1496 cl_device_id in_device, 1497 cl_kernel_sub_group_info param_name, 1498 size_t input_value_size, 1499 const void* input_value, 1500 size_t param_value_size, 1501 void* param_value, 1502 size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_2_0_DEPRECATED; 1503 1504 #endif /* !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ 1505 1506 /*************************************************************** 1507 * cl_khr_mipmap_image 1508 ***************************************************************/ 1509 #define cl_khr_mipmap_image 1 1510 #define CL_KHR_MIPMAP_IMAGE_EXTENSION_NAME \ 1511 "cl_khr_mipmap_image" 1512 1513 /* cl_sampler_properties */ 1514 #define CL_SAMPLER_MIP_FILTER_MODE_KHR 0x1155 1515 #define CL_SAMPLER_LOD_MIN_KHR 0x1156 1516 #define CL_SAMPLER_LOD_MAX_KHR 0x1157 1517 1518 /*************************************************************** 1519 * cl_khr_priority_hints 1520 ***************************************************************/ 1521 #define cl_khr_priority_hints 1 1522 #define CL_KHR_PRIORITY_HINTS_EXTENSION_NAME \ 1523 "cl_khr_priority_hints" 1524 1525 /* To be used by clGetEventInfo */ 1526 typedef cl_uint cl_queue_priority_khr; 1527 1528 /* cl_queue_properties */ 1529 #define CL_QUEUE_PRIORITY_KHR 0x1096 1530 1531 /* cl_queue_priority_khr */ 1532 #define CL_QUEUE_PRIORITY_HIGH_KHR (1 << 0) 1533 #define CL_QUEUE_PRIORITY_MED_KHR (1 << 1) 1534 #define CL_QUEUE_PRIORITY_LOW_KHR (1 << 2) 1535 1536 /*************************************************************** 1537 * cl_khr_throttle_hints 1538 ***************************************************************/ 1539 #define cl_khr_throttle_hints 1 1540 #define CL_KHR_THROTTLE_HINTS_EXTENSION_NAME \ 1541 "cl_khr_throttle_hints" 1542 1543 /* To be used by clGetEventInfo */ 1544 typedef cl_uint cl_queue_throttle_khr; 1545 1546 /* cl_queue_properties */ 1547 #define CL_QUEUE_THROTTLE_KHR 0x1097 1548 1549 /* cl_queue_throttle_khr */ 1550 #define CL_QUEUE_THROTTLE_HIGH_KHR (1 << 0) 1551 #define CL_QUEUE_THROTTLE_MED_KHR (1 << 1) 1552 #define CL_QUEUE_THROTTLE_LOW_KHR (1 << 2) 1553 1554 /*************************************************************** 1555 * cl_khr_subgroup_named_barrier 1556 ***************************************************************/ 1557 #define cl_khr_subgroup_named_barrier 1 1558 #define CL_KHR_SUBGROUP_NAMED_BARRIER_EXTENSION_NAME \ 1559 "cl_khr_subgroup_named_barrier" 1560 1561 /* cl_device_info */ 1562 #define CL_DEVICE_MAX_NAMED_BARRIER_COUNT_KHR 0x2035 1563 1564 /*************************************************************** 1565 * cl_khr_extended_versioning 1566 ***************************************************************/ 1567 #define cl_khr_extended_versioning 1 1568 #define CL_KHR_EXTENDED_VERSIONING_EXTENSION_NAME \ 1569 "cl_khr_extended_versioning" 1570 1571 #define CL_VERSION_MAJOR_BITS_KHR 10 1572 #define CL_VERSION_MINOR_BITS_KHR 10 1573 #define CL_VERSION_PATCH_BITS_KHR 12 1574 1575 #define CL_VERSION_MAJOR_MASK_KHR ((1 << CL_VERSION_MAJOR_BITS_KHR) - 1) 1576 #define CL_VERSION_MINOR_MASK_KHR ((1 << CL_VERSION_MINOR_BITS_KHR) - 1) 1577 #define CL_VERSION_PATCH_MASK_KHR ((1 << CL_VERSION_PATCH_BITS_KHR) - 1) 1578 1579 #define CL_VERSION_MAJOR_KHR(version) ((version) >> (CL_VERSION_MINOR_BITS_KHR + CL_VERSION_PATCH_BITS_KHR)) 1580 #define CL_VERSION_MINOR_KHR(version) (((version) >> CL_VERSION_PATCH_BITS_KHR) & CL_VERSION_MINOR_MASK_KHR) 1581 #define CL_VERSION_PATCH_KHR(version) ((version) & CL_VERSION_PATCH_MASK_KHR) 1582 1583 #define CL_MAKE_VERSION_KHR(major, minor, patch) \ 1584 ((((major) & CL_VERSION_MAJOR_MASK_KHR) << (CL_VERSION_MINOR_BITS_KHR + CL_VERSION_PATCH_BITS_KHR)) | \ 1585 (((minor) & CL_VERSION_MINOR_MASK_KHR) << CL_VERSION_PATCH_BITS_KHR) | \ 1586 ((patch) & CL_VERSION_PATCH_MASK_KHR)) 1587 1588 #define CL_NAME_VERSION_MAX_NAME_SIZE_KHR 64 1589 1590 typedef cl_uint cl_version_khr; 1591 typedef struct _cl_name_version_khr { 1592 cl_version_khr version; 1593 char name[CL_NAME_VERSION_MAX_NAME_SIZE_KHR]; 1594 } cl_name_version_khr; 1595 1596 /* cl_platform_info */ 1597 #define CL_PLATFORM_NUMERIC_VERSION_KHR 0x0906 1598 #define CL_PLATFORM_EXTENSIONS_WITH_VERSION_KHR 0x0907 1599 1600 /* cl_device_info */ 1601 #define CL_DEVICE_NUMERIC_VERSION_KHR 0x105E 1602 #define CL_DEVICE_OPENCL_C_NUMERIC_VERSION_KHR 0x105F 1603 #define CL_DEVICE_EXTENSIONS_WITH_VERSION_KHR 0x1060 1604 #define CL_DEVICE_ILS_WITH_VERSION_KHR 0x1061 1605 #define CL_DEVICE_BUILT_IN_KERNELS_WITH_VERSION_KHR 0x1062 1606 1607 /*************************************************************** 1608 * cl_khr_device_uuid 1609 ***************************************************************/ 1610 #define cl_khr_device_uuid 1 1611 #define CL_KHR_DEVICE_UUID_EXTENSION_NAME \ 1612 "cl_khr_device_uuid" 1613 1614 /* Size Constants */ 1615 #define CL_UUID_SIZE_KHR 16 1616 #define CL_LUID_SIZE_KHR 8 1617 1618 /* cl_device_info */ 1619 #define CL_DEVICE_UUID_KHR 0x106A 1620 #define CL_DRIVER_UUID_KHR 0x106B 1621 #define CL_DEVICE_LUID_VALID_KHR 0x106C 1622 #define CL_DEVICE_LUID_KHR 0x106D 1623 #define CL_DEVICE_NODE_MASK_KHR 0x106E 1624 1625 /*************************************************************** 1626 * cl_khr_pci_bus_info 1627 ***************************************************************/ 1628 #define cl_khr_pci_bus_info 1 1629 #define CL_KHR_PCI_BUS_INFO_EXTENSION_NAME \ 1630 "cl_khr_pci_bus_info" 1631 1632 typedef struct _cl_device_pci_bus_info_khr { 1633 cl_uint pci_domain; 1634 cl_uint pci_bus; 1635 cl_uint pci_device; 1636 cl_uint pci_function; 1637 } cl_device_pci_bus_info_khr; 1638 1639 /* cl_device_info */ 1640 #define CL_DEVICE_PCI_BUS_INFO_KHR 0x410F 1641 1642 /*************************************************************** 1643 * cl_khr_suggested_local_work_size 1644 ***************************************************************/ 1645 #define cl_khr_suggested_local_work_size 1 1646 #define CL_KHR_SUGGESTED_LOCAL_WORK_SIZE_EXTENSION_NAME \ 1647 "cl_khr_suggested_local_work_size" 1648 1649 1650 typedef cl_int CL_API_CALL 1651 clGetKernelSuggestedLocalWorkSizeKHR_t( 1652 cl_command_queue command_queue, 1653 cl_kernel kernel, 1654 cl_uint work_dim, 1655 const size_t* global_work_offset, 1656 const size_t* global_work_size, 1657 size_t* suggested_local_work_size); 1658 1659 typedef clGetKernelSuggestedLocalWorkSizeKHR_t * 1660 clGetKernelSuggestedLocalWorkSizeKHR_fn CL_API_SUFFIX__VERSION_3_0; 1661 1662 #if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) 1663 1664 extern CL_API_ENTRY cl_int CL_API_CALL 1665 clGetKernelSuggestedLocalWorkSizeKHR( 1666 cl_command_queue command_queue, 1667 cl_kernel kernel, 1668 cl_uint work_dim, 1669 const size_t* global_work_offset, 1670 const size_t* global_work_size, 1671 size_t* suggested_local_work_size) CL_API_SUFFIX__VERSION_3_0; 1672 1673 #endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ 1674 1675 /*************************************************************** 1676 * cl_khr_integer_dot_product 1677 ***************************************************************/ 1678 #define cl_khr_integer_dot_product 1 1679 #define CL_KHR_INTEGER_DOT_PRODUCT_EXTENSION_NAME \ 1680 "cl_khr_integer_dot_product" 1681 1682 typedef cl_bitfield cl_device_integer_dot_product_capabilities_khr; 1683 typedef struct _cl_device_integer_dot_product_acceleration_properties_khr { 1684 cl_bool signed_accelerated; 1685 cl_bool unsigned_accelerated; 1686 cl_bool mixed_signedness_accelerated; 1687 cl_bool accumulating_saturating_signed_accelerated; 1688 cl_bool accumulating_saturating_unsigned_accelerated; 1689 cl_bool accumulating_saturating_mixed_signedness_accelerated; 1690 } cl_device_integer_dot_product_acceleration_properties_khr; 1691 1692 /* cl_device_integer_dot_product_capabilities_khr */ 1693 #define CL_DEVICE_INTEGER_DOT_PRODUCT_INPUT_4x8BIT_PACKED_KHR (1 << 0) 1694 #define CL_DEVICE_INTEGER_DOT_PRODUCT_INPUT_4x8BIT_KHR (1 << 1) 1695 1696 /* cl_device_info */ 1697 #define CL_DEVICE_INTEGER_DOT_PRODUCT_CAPABILITIES_KHR 0x1073 1698 #define CL_DEVICE_INTEGER_DOT_PRODUCT_ACCELERATION_PROPERTIES_8BIT_KHR 0x1074 1699 #define CL_DEVICE_INTEGER_DOT_PRODUCT_ACCELERATION_PROPERTIES_4x8BIT_PACKED_KHR 0x1075 1700 1701 /*************************************************************** 1702 * cl_khr_external_memory 1703 ***************************************************************/ 1704 #define cl_khr_external_memory 1 1705 #define CL_KHR_EXTERNAL_MEMORY_EXTENSION_NAME \ 1706 "cl_khr_external_memory" 1707 1708 typedef cl_uint cl_external_memory_handle_type_khr; 1709 1710 /* cl_platform_info */ 1711 #define CL_PLATFORM_EXTERNAL_MEMORY_IMPORT_HANDLE_TYPES_KHR 0x2044 1712 1713 /* cl_device_info */ 1714 #define CL_DEVICE_EXTERNAL_MEMORY_IMPORT_HANDLE_TYPES_KHR 0x204F 1715 #define CL_DEVICE_EXTERNAL_MEMORY_IMPORT_ASSUME_LINEAR_IMAGES_HANDLE_TYPES_KHR 0x2052 1716 1717 /* cl_mem_properties */ 1718 #define CL_MEM_DEVICE_HANDLE_LIST_KHR 0x2051 1719 #define CL_MEM_DEVICE_HANDLE_LIST_END_KHR 0 1720 1721 /* cl_command_type */ 1722 #define CL_COMMAND_ACQUIRE_EXTERNAL_MEM_OBJECTS_KHR 0x2047 1723 #define CL_COMMAND_RELEASE_EXTERNAL_MEM_OBJECTS_KHR 0x2048 1724 1725 1726 typedef cl_int CL_API_CALL 1727 clEnqueueAcquireExternalMemObjectsKHR_t( 1728 cl_command_queue command_queue, 1729 cl_uint num_mem_objects, 1730 const cl_mem* mem_objects, 1731 cl_uint num_events_in_wait_list, 1732 const cl_event* event_wait_list, 1733 cl_event* event); 1734 1735 typedef clEnqueueAcquireExternalMemObjectsKHR_t * 1736 clEnqueueAcquireExternalMemObjectsKHR_fn CL_API_SUFFIX__VERSION_3_0; 1737 1738 typedef cl_int CL_API_CALL 1739 clEnqueueReleaseExternalMemObjectsKHR_t( 1740 cl_command_queue command_queue, 1741 cl_uint num_mem_objects, 1742 const cl_mem* mem_objects, 1743 cl_uint num_events_in_wait_list, 1744 const cl_event* event_wait_list, 1745 cl_event* event); 1746 1747 typedef clEnqueueReleaseExternalMemObjectsKHR_t * 1748 clEnqueueReleaseExternalMemObjectsKHR_fn CL_API_SUFFIX__VERSION_3_0; 1749 1750 #if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) 1751 1752 extern CL_API_ENTRY cl_int CL_API_CALL 1753 clEnqueueAcquireExternalMemObjectsKHR( 1754 cl_command_queue command_queue, 1755 cl_uint num_mem_objects, 1756 const cl_mem* mem_objects, 1757 cl_uint num_events_in_wait_list, 1758 const cl_event* event_wait_list, 1759 cl_event* event) CL_API_SUFFIX__VERSION_3_0; 1760 1761 extern CL_API_ENTRY cl_int CL_API_CALL 1762 clEnqueueReleaseExternalMemObjectsKHR( 1763 cl_command_queue command_queue, 1764 cl_uint num_mem_objects, 1765 const cl_mem* mem_objects, 1766 cl_uint num_events_in_wait_list, 1767 const cl_event* event_wait_list, 1768 cl_event* event) CL_API_SUFFIX__VERSION_3_0; 1769 1770 #endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ 1771 1772 /*************************************************************** 1773 * cl_khr_external_memory_dma_buf 1774 ***************************************************************/ 1775 #define cl_khr_external_memory_dma_buf 1 1776 #define CL_KHR_EXTERNAL_MEMORY_DMA_BUF_EXTENSION_NAME \ 1777 "cl_khr_external_memory_dma_buf" 1778 1779 /* cl_external_memory_handle_type_khr */ 1780 #define CL_EXTERNAL_MEMORY_HANDLE_DMA_BUF_KHR 0x2067 1781 1782 /*************************************************************** 1783 * cl_khr_external_memory_dx 1784 ***************************************************************/ 1785 #define cl_khr_external_memory_dx 1 1786 #define CL_KHR_EXTERNAL_MEMORY_DX_EXTENSION_NAME \ 1787 "cl_khr_external_memory_dx" 1788 1789 /* cl_external_memory_handle_type_khr */ 1790 #define CL_EXTERNAL_MEMORY_HANDLE_D3D11_TEXTURE_KHR 0x2063 1791 #define CL_EXTERNAL_MEMORY_HANDLE_D3D11_TEXTURE_KMT_KHR 0x2064 1792 #define CL_EXTERNAL_MEMORY_HANDLE_D3D12_HEAP_KHR 0x2065 1793 #define CL_EXTERNAL_MEMORY_HANDLE_D3D12_RESOURCE_KHR 0x2066 1794 1795 /*************************************************************** 1796 * cl_khr_external_memory_opaque_fd 1797 ***************************************************************/ 1798 #define cl_khr_external_memory_opaque_fd 1 1799 #define CL_KHR_EXTERNAL_MEMORY_OPAQUE_FD_EXTENSION_NAME \ 1800 "cl_khr_external_memory_opaque_fd" 1801 1802 /* cl_external_memory_handle_type_khr */ 1803 #define CL_EXTERNAL_MEMORY_HANDLE_OPAQUE_FD_KHR 0x2060 1804 1805 /*************************************************************** 1806 * cl_khr_external_memory_win32 1807 ***************************************************************/ 1808 #define cl_khr_external_memory_win32 1 1809 #define CL_KHR_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME \ 1810 "cl_khr_external_memory_win32" 1811 1812 /* cl_external_memory_handle_type_khr */ 1813 #define CL_EXTERNAL_MEMORY_HANDLE_OPAQUE_WIN32_KHR 0x2061 1814 #define CL_EXTERNAL_MEMORY_HANDLE_OPAQUE_WIN32_KMT_KHR 0x2062 1815 1816 /*************************************************************** 1817 * cl_khr_external_semaphore 1818 ***************************************************************/ 1819 #define cl_khr_external_semaphore 1 1820 #define CL_KHR_EXTERNAL_SEMAPHORE_EXTENSION_NAME \ 1821 "cl_khr_external_semaphore" 1822 1823 typedef struct _cl_semaphore_khr * cl_semaphore_khr; 1824 typedef cl_uint cl_external_semaphore_handle_type_khr; 1825 1826 /* cl_platform_info */ 1827 #define CL_PLATFORM_SEMAPHORE_IMPORT_HANDLE_TYPES_KHR 0x2037 1828 #define CL_PLATFORM_SEMAPHORE_EXPORT_HANDLE_TYPES_KHR 0x2038 1829 1830 /* cl_device_info */ 1831 #define CL_DEVICE_SEMAPHORE_IMPORT_HANDLE_TYPES_KHR 0x204D 1832 #define CL_DEVICE_SEMAPHORE_EXPORT_HANDLE_TYPES_KHR 0x204E 1833 1834 /* cl_semaphore_properties_khr */ 1835 #define CL_SEMAPHORE_EXPORT_HANDLE_TYPES_KHR 0x203F 1836 #define CL_SEMAPHORE_EXPORT_HANDLE_TYPES_LIST_END_KHR 0 1837 1838 /* cl_semaphore_info_khr */ 1839 #define CL_SEMAPHORE_EXPORTABLE_KHR 0x2054 1840 1841 1842 typedef cl_int CL_API_CALL 1843 clGetSemaphoreHandleForTypeKHR_t( 1844 cl_semaphore_khr sema_object, 1845 cl_device_id device, 1846 cl_external_semaphore_handle_type_khr handle_type, 1847 size_t handle_size, 1848 void* handle_ptr, 1849 size_t* handle_size_ret); 1850 1851 typedef clGetSemaphoreHandleForTypeKHR_t * 1852 clGetSemaphoreHandleForTypeKHR_fn CL_API_SUFFIX__VERSION_1_2; 1853 1854 #if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) 1855 1856 extern CL_API_ENTRY cl_int CL_API_CALL 1857 clGetSemaphoreHandleForTypeKHR( 1858 cl_semaphore_khr sema_object, 1859 cl_device_id device, 1860 cl_external_semaphore_handle_type_khr handle_type, 1861 size_t handle_size, 1862 void* handle_ptr, 1863 size_t* handle_size_ret) CL_API_SUFFIX__VERSION_1_2; 1864 1865 #endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ 1866 1867 /*************************************************************** 1868 * cl_khr_external_semaphore_dx_fence 1869 ***************************************************************/ 1870 #define cl_khr_external_semaphore_dx_fence 1 1871 #define CL_KHR_EXTERNAL_SEMAPHORE_DX_FENCE_EXTENSION_NAME \ 1872 "cl_khr_external_semaphore_dx_fence" 1873 1874 /* cl_external_semaphore_handle_type_khr */ 1875 #define CL_SEMAPHORE_HANDLE_D3D12_FENCE_KHR 0x2059 1876 1877 /*************************************************************** 1878 * cl_khr_external_semaphore_opaque_fd 1879 ***************************************************************/ 1880 #define cl_khr_external_semaphore_opaque_fd 1 1881 #define CL_KHR_EXTERNAL_SEMAPHORE_OPAQUE_FD_EXTENSION_NAME \ 1882 "cl_khr_external_semaphore_opaque_fd" 1883 1884 /* cl_external_semaphore_handle_type_khr */ 1885 #define CL_SEMAPHORE_HANDLE_OPAQUE_FD_KHR 0x2055 1886 1887 /*************************************************************** 1888 * cl_khr_external_semaphore_sync_fd 1889 ***************************************************************/ 1890 #define cl_khr_external_semaphore_sync_fd 1 1891 #define CL_KHR_EXTERNAL_SEMAPHORE_SYNC_FD_EXTENSION_NAME \ 1892 "cl_khr_external_semaphore_sync_fd" 1893 1894 typedef cl_properties cl_semaphore_reimport_properties_khr; 1895 1896 /* cl_external_semaphore_handle_type_khr */ 1897 #define CL_SEMAPHORE_HANDLE_SYNC_FD_KHR 0x2058 1898 1899 1900 typedef cl_int CL_API_CALL 1901 clReImportSemaphoreSyncFdKHR_t( 1902 cl_semaphore_khr sema_object, 1903 cl_semaphore_reimport_properties_khr* reimport_props, 1904 int fd); 1905 1906 typedef clReImportSemaphoreSyncFdKHR_t * 1907 clReImportSemaphoreSyncFdKHR_fn CL_API_SUFFIX__VERSION_3_0; 1908 1909 #if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) 1910 1911 extern CL_API_ENTRY cl_int CL_API_CALL 1912 clReImportSemaphoreSyncFdKHR( 1913 cl_semaphore_khr sema_object, 1914 cl_semaphore_reimport_properties_khr* reimport_props, 1915 int fd) CL_API_SUFFIX__VERSION_3_0; 1916 1917 #endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ 1918 1919 /*************************************************************** 1920 * cl_khr_external_semaphore_win32 1921 ***************************************************************/ 1922 #define cl_khr_external_semaphore_win32 1 1923 #define CL_KHR_EXTERNAL_SEMAPHORE_WIN32_EXTENSION_NAME \ 1924 "cl_khr_external_semaphore_win32" 1925 1926 /* cl_external_semaphore_handle_type_khr */ 1927 #define CL_SEMAPHORE_HANDLE_OPAQUE_WIN32_KHR 0x2056 1928 #define CL_SEMAPHORE_HANDLE_OPAQUE_WIN32_KMT_KHR 0x2057 1929 1930 /*************************************************************** 1931 * cl_khr_semaphore 1932 ***************************************************************/ 1933 #define cl_khr_semaphore 1 1934 #define CL_KHR_SEMAPHORE_EXTENSION_NAME \ 1935 "cl_khr_semaphore" 1936 1937 /* type cl_semaphore_khr */ 1938 typedef cl_properties cl_semaphore_properties_khr; 1939 typedef cl_uint cl_semaphore_info_khr; 1940 typedef cl_uint cl_semaphore_type_khr; 1941 typedef cl_ulong cl_semaphore_payload_khr; 1942 1943 /* cl_semaphore_type */ 1944 #define CL_SEMAPHORE_TYPE_BINARY_KHR 1 1945 1946 /* cl_platform_info */ 1947 #define CL_PLATFORM_SEMAPHORE_TYPES_KHR 0x2036 1948 1949 /* cl_device_info */ 1950 #define CL_DEVICE_SEMAPHORE_TYPES_KHR 0x204C 1951 1952 /* cl_semaphore_info_khr */ 1953 #define CL_SEMAPHORE_CONTEXT_KHR 0x2039 1954 #define CL_SEMAPHORE_REFERENCE_COUNT_KHR 0x203A 1955 #define CL_SEMAPHORE_PROPERTIES_KHR 0x203B 1956 #define CL_SEMAPHORE_PAYLOAD_KHR 0x203C 1957 1958 /* cl_semaphore_info_khr or cl_semaphore_properties_khr */ 1959 #define CL_SEMAPHORE_TYPE_KHR 0x203D 1960 #define CL_SEMAPHORE_DEVICE_HANDLE_LIST_KHR 0x2053 1961 #define CL_SEMAPHORE_DEVICE_HANDLE_LIST_END_KHR 0 1962 1963 /* cl_command_type */ 1964 #define CL_COMMAND_SEMAPHORE_WAIT_KHR 0x2042 1965 #define CL_COMMAND_SEMAPHORE_SIGNAL_KHR 0x2043 1966 1967 /* Error codes */ 1968 #define CL_INVALID_SEMAPHORE_KHR -1142 1969 1970 1971 typedef cl_semaphore_khr CL_API_CALL 1972 clCreateSemaphoreWithPropertiesKHR_t( 1973 cl_context context, 1974 const cl_semaphore_properties_khr* sema_props, 1975 cl_int* errcode_ret); 1976 1977 typedef clCreateSemaphoreWithPropertiesKHR_t * 1978 clCreateSemaphoreWithPropertiesKHR_fn CL_API_SUFFIX__VERSION_1_2; 1979 1980 typedef cl_int CL_API_CALL 1981 clEnqueueWaitSemaphoresKHR_t( 1982 cl_command_queue command_queue, 1983 cl_uint num_sema_objects, 1984 const cl_semaphore_khr* sema_objects, 1985 const cl_semaphore_payload_khr* sema_payload_list, 1986 cl_uint num_events_in_wait_list, 1987 const cl_event* event_wait_list, 1988 cl_event* event); 1989 1990 typedef clEnqueueWaitSemaphoresKHR_t * 1991 clEnqueueWaitSemaphoresKHR_fn CL_API_SUFFIX__VERSION_1_2; 1992 1993 typedef cl_int CL_API_CALL 1994 clEnqueueSignalSemaphoresKHR_t( 1995 cl_command_queue command_queue, 1996 cl_uint num_sema_objects, 1997 const cl_semaphore_khr* sema_objects, 1998 const cl_semaphore_payload_khr* sema_payload_list, 1999 cl_uint num_events_in_wait_list, 2000 const cl_event* event_wait_list, 2001 cl_event* event); 2002 2003 typedef clEnqueueSignalSemaphoresKHR_t * 2004 clEnqueueSignalSemaphoresKHR_fn CL_API_SUFFIX__VERSION_1_2; 2005 2006 typedef cl_int CL_API_CALL 2007 clGetSemaphoreInfoKHR_t( 2008 cl_semaphore_khr sema_object, 2009 cl_semaphore_info_khr param_name, 2010 size_t param_value_size, 2011 void* param_value, 2012 size_t* param_value_size_ret); 2013 2014 typedef clGetSemaphoreInfoKHR_t * 2015 clGetSemaphoreInfoKHR_fn CL_API_SUFFIX__VERSION_1_2; 2016 2017 typedef cl_int CL_API_CALL 2018 clReleaseSemaphoreKHR_t( 2019 cl_semaphore_khr sema_object); 2020 2021 typedef clReleaseSemaphoreKHR_t * 2022 clReleaseSemaphoreKHR_fn CL_API_SUFFIX__VERSION_1_2; 2023 2024 typedef cl_int CL_API_CALL 2025 clRetainSemaphoreKHR_t( 2026 cl_semaphore_khr sema_object); 2027 2028 typedef clRetainSemaphoreKHR_t * 2029 clRetainSemaphoreKHR_fn CL_API_SUFFIX__VERSION_1_2; 2030 2031 #if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) 2032 2033 extern CL_API_ENTRY cl_semaphore_khr CL_API_CALL 2034 clCreateSemaphoreWithPropertiesKHR( 2035 cl_context context, 2036 const cl_semaphore_properties_khr* sema_props, 2037 cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; 2038 2039 extern CL_API_ENTRY cl_int CL_API_CALL 2040 clEnqueueWaitSemaphoresKHR( 2041 cl_command_queue command_queue, 2042 cl_uint num_sema_objects, 2043 const cl_semaphore_khr* sema_objects, 2044 const cl_semaphore_payload_khr* sema_payload_list, 2045 cl_uint num_events_in_wait_list, 2046 const cl_event* event_wait_list, 2047 cl_event* event) CL_API_SUFFIX__VERSION_1_2; 2048 2049 extern CL_API_ENTRY cl_int CL_API_CALL 2050 clEnqueueSignalSemaphoresKHR( 2051 cl_command_queue command_queue, 2052 cl_uint num_sema_objects, 2053 const cl_semaphore_khr* sema_objects, 2054 const cl_semaphore_payload_khr* sema_payload_list, 2055 cl_uint num_events_in_wait_list, 2056 const cl_event* event_wait_list, 2057 cl_event* event) CL_API_SUFFIX__VERSION_1_2; 2058 2059 extern CL_API_ENTRY cl_int CL_API_CALL 2060 clGetSemaphoreInfoKHR( 2061 cl_semaphore_khr sema_object, 2062 cl_semaphore_info_khr param_name, 2063 size_t param_value_size, 2064 void* param_value, 2065 size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_1_2; 2066 2067 extern CL_API_ENTRY cl_int CL_API_CALL 2068 clReleaseSemaphoreKHR( 2069 cl_semaphore_khr sema_object) CL_API_SUFFIX__VERSION_1_2; 2070 2071 extern CL_API_ENTRY cl_int CL_API_CALL 2072 clRetainSemaphoreKHR( 2073 cl_semaphore_khr sema_object) CL_API_SUFFIX__VERSION_1_2; 2074 2075 #endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ 2076 2077 /*************************************************************** 2078 * cl_arm_import_memory 2079 ***************************************************************/ 2080 #define cl_arm_import_memory 1 2081 #define CL_ARM_IMPORT_MEMORY_EXTENSION_NAME \ 2082 "cl_arm_import_memory" 2083 2084 typedef intptr_t cl_import_properties_arm; 2085 2086 /* cl_import_properties_arm */ 2087 #define CL_IMPORT_TYPE_ARM 0x40B2 2088 #define CL_IMPORT_TYPE_HOST_ARM 0x40B3 2089 #define CL_IMPORT_TYPE_DMA_BUF_ARM 0x40B4 2090 #define CL_IMPORT_TYPE_PROTECTED_ARM 0x40B5 2091 #define CL_IMPORT_TYPE_ANDROID_HARDWARE_BUFFER_ARM 0x41E2 2092 #define CL_IMPORT_DMA_BUF_DATA_CONSISTENCY_WITH_HOST_ARM 0x41E3 2093 #define CL_IMPORT_MEMORY_WHOLE_ALLOCATION_ARM SIZE_MAX 2094 #define CL_IMPORT_ANDROID_HARDWARE_BUFFER_PLANE_INDEX_ARM 0x41EF 2095 #define CL_IMPORT_ANDROID_HARDWARE_BUFFER_LAYER_INDEX_ARM 0x41F0 2096 2097 2098 typedef cl_mem CL_API_CALL 2099 clImportMemoryARM_t( 2100 cl_context context, 2101 cl_mem_flags flags, 2102 const cl_import_properties_arm* properties, 2103 void* memory, 2104 size_t size, 2105 cl_int* errcode_ret); 2106 2107 typedef clImportMemoryARM_t * 2108 clImportMemoryARM_fn CL_API_SUFFIX__VERSION_1_0; 2109 2110 #if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) 2111 2112 extern CL_API_ENTRY cl_mem CL_API_CALL 2113 clImportMemoryARM( 2114 cl_context context, 2115 cl_mem_flags flags, 2116 const cl_import_properties_arm* properties, 2117 void* memory, 2118 size_t size, 2119 cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0; 2120 2121 #endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ 2122 2123 /*************************************************************** 2124 * cl_arm_shared_virtual_memory 2125 ***************************************************************/ 2126 #define cl_arm_shared_virtual_memory 1 2127 #define CL_ARM_SHARED_VIRTUAL_MEMORY_EXTENSION_NAME \ 2128 "cl_arm_shared_virtual_memory" 2129 2130 typedef cl_bitfield cl_svm_mem_flags_arm; 2131 typedef cl_uint cl_kernel_exec_info_arm; 2132 typedef cl_bitfield cl_device_svm_capabilities_arm; 2133 2134 /* cl_device_info */ 2135 #define CL_DEVICE_SVM_CAPABILITIES_ARM 0x40B6 2136 2137 /* cl_mem_info */ 2138 #define CL_MEM_USES_SVM_POINTER_ARM 0x40B7 2139 2140 /* cl_kernel_exec_info_arm */ 2141 #define CL_KERNEL_EXEC_INFO_SVM_PTRS_ARM 0x40B8 2142 #define CL_KERNEL_EXEC_INFO_SVM_FINE_GRAIN_SYSTEM_ARM 0x40B9 2143 2144 /* cl_command_type */ 2145 #define CL_COMMAND_SVM_FREE_ARM 0x40BA 2146 #define CL_COMMAND_SVM_MEMCPY_ARM 0x40BB 2147 #define CL_COMMAND_SVM_MEMFILL_ARM 0x40BC 2148 #define CL_COMMAND_SVM_MAP_ARM 0x40BD 2149 #define CL_COMMAND_SVM_UNMAP_ARM 0x40BE 2150 2151 /* cl_device_svm_capabilities_arm */ 2152 #define CL_DEVICE_SVM_COARSE_GRAIN_BUFFER_ARM (1 << 0) 2153 #define CL_DEVICE_SVM_FINE_GRAIN_BUFFER_ARM (1 << 1) 2154 #define CL_DEVICE_SVM_FINE_GRAIN_SYSTEM_ARM (1 << 2) 2155 #define CL_DEVICE_SVM_ATOMICS_ARM (1 << 3) 2156 2157 /* cl_svm_mem_flags_arm */ 2158 #define CL_MEM_SVM_FINE_GRAIN_BUFFER_ARM (1 << 10) 2159 #define CL_MEM_SVM_ATOMICS_ARM (1 << 11) 2160 2161 2162 typedef void* CL_API_CALL 2163 clSVMAllocARM_t( 2164 cl_context context, 2165 cl_svm_mem_flags_arm flags, 2166 size_t size, 2167 cl_uint alignment); 2168 2169 typedef clSVMAllocARM_t * 2170 clSVMAllocARM_fn CL_API_SUFFIX__VERSION_1_2; 2171 2172 typedef void CL_API_CALL 2173 clSVMFreeARM_t( 2174 cl_context context, 2175 void* svm_pointer); 2176 2177 typedef clSVMFreeARM_t * 2178 clSVMFreeARM_fn CL_API_SUFFIX__VERSION_1_2; 2179 2180 typedef cl_int CL_API_CALL 2181 clEnqueueSVMFreeARM_t( 2182 cl_command_queue command_queue, 2183 cl_uint num_svm_pointers, 2184 void* svm_pointers[], 2185 void (CL_CALLBACK* pfn_free_func)(cl_command_queue queue, cl_uint num_svm_pointers, void * svm_pointers[], void *user_data), 2186 void* user_data, 2187 cl_uint num_events_in_wait_list, 2188 const cl_event* event_wait_list, 2189 cl_event* event); 2190 2191 typedef clEnqueueSVMFreeARM_t * 2192 clEnqueueSVMFreeARM_fn CL_API_SUFFIX__VERSION_1_2; 2193 2194 typedef cl_int CL_API_CALL 2195 clEnqueueSVMMemcpyARM_t( 2196 cl_command_queue command_queue, 2197 cl_bool blocking_copy, 2198 void* dst_ptr, 2199 const void* src_ptr, 2200 size_t size, 2201 cl_uint num_events_in_wait_list, 2202 const cl_event* event_wait_list, 2203 cl_event* event); 2204 2205 typedef clEnqueueSVMMemcpyARM_t * 2206 clEnqueueSVMMemcpyARM_fn CL_API_SUFFIX__VERSION_1_2; 2207 2208 typedef cl_int CL_API_CALL 2209 clEnqueueSVMMemFillARM_t( 2210 cl_command_queue command_queue, 2211 void* svm_ptr, 2212 const void* pattern, 2213 size_t pattern_size, 2214 size_t size, 2215 cl_uint num_events_in_wait_list, 2216 const cl_event* event_wait_list, 2217 cl_event* event); 2218 2219 typedef clEnqueueSVMMemFillARM_t * 2220 clEnqueueSVMMemFillARM_fn CL_API_SUFFIX__VERSION_1_2; 2221 2222 typedef cl_int CL_API_CALL 2223 clEnqueueSVMMapARM_t( 2224 cl_command_queue command_queue, 2225 cl_bool blocking_map, 2226 cl_map_flags flags, 2227 void* svm_ptr, 2228 size_t size, 2229 cl_uint num_events_in_wait_list, 2230 const cl_event* event_wait_list, 2231 cl_event* event); 2232 2233 typedef clEnqueueSVMMapARM_t * 2234 clEnqueueSVMMapARM_fn CL_API_SUFFIX__VERSION_1_2; 2235 2236 typedef cl_int CL_API_CALL 2237 clEnqueueSVMUnmapARM_t( 2238 cl_command_queue command_queue, 2239 void* svm_ptr, 2240 cl_uint num_events_in_wait_list, 2241 const cl_event* event_wait_list, 2242 cl_event* event); 2243 2244 typedef clEnqueueSVMUnmapARM_t * 2245 clEnqueueSVMUnmapARM_fn CL_API_SUFFIX__VERSION_1_2; 2246 2247 typedef cl_int CL_API_CALL 2248 clSetKernelArgSVMPointerARM_t( 2249 cl_kernel kernel, 2250 cl_uint arg_index, 2251 const void* arg_value); 2252 2253 typedef clSetKernelArgSVMPointerARM_t * 2254 clSetKernelArgSVMPointerARM_fn CL_API_SUFFIX__VERSION_1_2; 2255 2256 typedef cl_int CL_API_CALL 2257 clSetKernelExecInfoARM_t( 2258 cl_kernel kernel, 2259 cl_kernel_exec_info_arm param_name, 2260 size_t param_value_size, 2261 const void* param_value); 2262 2263 typedef clSetKernelExecInfoARM_t * 2264 clSetKernelExecInfoARM_fn CL_API_SUFFIX__VERSION_1_2; 2265 2266 #if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) 2267 2268 extern CL_API_ENTRY void* CL_API_CALL 2269 clSVMAllocARM( 2270 cl_context context, 2271 cl_svm_mem_flags_arm flags, 2272 size_t size, 2273 cl_uint alignment) CL_API_SUFFIX__VERSION_1_2; 2274 2275 extern CL_API_ENTRY void CL_API_CALL 2276 clSVMFreeARM( 2277 cl_context context, 2278 void* svm_pointer) CL_API_SUFFIX__VERSION_1_2; 2279 2280 extern CL_API_ENTRY cl_int CL_API_CALL 2281 clEnqueueSVMFreeARM( 2282 cl_command_queue command_queue, 2283 cl_uint num_svm_pointers, 2284 void* svm_pointers[], 2285 void (CL_CALLBACK* pfn_free_func)(cl_command_queue queue, cl_uint num_svm_pointers, void * svm_pointers[], void *user_data), 2286 void* user_data, 2287 cl_uint num_events_in_wait_list, 2288 const cl_event* event_wait_list, 2289 cl_event* event) CL_API_SUFFIX__VERSION_1_2; 2290 2291 extern CL_API_ENTRY cl_int CL_API_CALL 2292 clEnqueueSVMMemcpyARM( 2293 cl_command_queue command_queue, 2294 cl_bool blocking_copy, 2295 void* dst_ptr, 2296 const void* src_ptr, 2297 size_t size, 2298 cl_uint num_events_in_wait_list, 2299 const cl_event* event_wait_list, 2300 cl_event* event) CL_API_SUFFIX__VERSION_1_2; 2301 2302 extern CL_API_ENTRY cl_int CL_API_CALL 2303 clEnqueueSVMMemFillARM( 2304 cl_command_queue command_queue, 2305 void* svm_ptr, 2306 const void* pattern, 2307 size_t pattern_size, 2308 size_t size, 2309 cl_uint num_events_in_wait_list, 2310 const cl_event* event_wait_list, 2311 cl_event* event) CL_API_SUFFIX__VERSION_1_2; 2312 2313 extern CL_API_ENTRY cl_int CL_API_CALL 2314 clEnqueueSVMMapARM( 2315 cl_command_queue command_queue, 2316 cl_bool blocking_map, 2317 cl_map_flags flags, 2318 void* svm_ptr, 2319 size_t size, 2320 cl_uint num_events_in_wait_list, 2321 const cl_event* event_wait_list, 2322 cl_event* event) CL_API_SUFFIX__VERSION_1_2; 2323 2324 extern CL_API_ENTRY cl_int CL_API_CALL 2325 clEnqueueSVMUnmapARM( 2326 cl_command_queue command_queue, 2327 void* svm_ptr, 2328 cl_uint num_events_in_wait_list, 2329 const cl_event* event_wait_list, 2330 cl_event* event) CL_API_SUFFIX__VERSION_1_2; 2331 2332 extern CL_API_ENTRY cl_int CL_API_CALL 2333 clSetKernelArgSVMPointerARM( 2334 cl_kernel kernel, 2335 cl_uint arg_index, 2336 const void* arg_value) CL_API_SUFFIX__VERSION_1_2; 2337 2338 extern CL_API_ENTRY cl_int CL_API_CALL 2339 clSetKernelExecInfoARM( 2340 cl_kernel kernel, 2341 cl_kernel_exec_info_arm param_name, 2342 size_t param_value_size, 2343 const void* param_value) CL_API_SUFFIX__VERSION_1_2; 2344 2345 #endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ 2346 2347 /*************************************************************** 2348 * cl_arm_get_core_id 2349 ***************************************************************/ 2350 #if defined(CL_VERSION_1_2) 2351 2352 #define cl_arm_get_core_id 1 2353 #define CL_ARM_GET_CORE_ID_EXTENSION_NAME \ 2354 "cl_arm_get_core_id" 2355 2356 /* cl_device_info */ 2357 #define CL_DEVICE_COMPUTE_UNITS_BITFIELD_ARM 0x40BF 2358 2359 #endif /* defined(CL_VERSION_1_2) */ 2360 2361 /*************************************************************** 2362 * cl_arm_job_slot_selection 2363 ***************************************************************/ 2364 #define cl_arm_job_slot_selection 1 2365 #define CL_ARM_JOB_SLOT_SELECTION_EXTENSION_NAME \ 2366 "cl_arm_job_slot_selection" 2367 2368 /* cl_device_info */ 2369 #define CL_DEVICE_JOB_SLOTS_ARM 0x41E0 2370 2371 /* cl_queue_properties */ 2372 #define CL_QUEUE_JOB_SLOT_ARM 0x41E1 2373 2374 /*************************************************************** 2375 * cl_arm_scheduling_controls 2376 ***************************************************************/ 2377 #define cl_arm_scheduling_controls 1 2378 #define CL_ARM_SCHEDULING_CONTROLS_EXTENSION_NAME \ 2379 "cl_arm_scheduling_controls" 2380 2381 /* Types */ 2382 typedef cl_bitfield cl_device_scheduling_controls_capabilities_arm; 2383 2384 /* cl_device_scheduling_controls_capabilities_arm */ 2385 #define CL_DEVICE_SCHEDULING_KERNEL_BATCHING_ARM (1 << 0) 2386 #define CL_DEVICE_SCHEDULING_WORKGROUP_BATCH_SIZE_ARM (1 << 1) 2387 #define CL_DEVICE_SCHEDULING_WORKGROUP_BATCH_SIZE_MODIFIER_ARM (1 << 2) 2388 #define CL_DEVICE_SCHEDULING_DEFERRED_FLUSH_ARM (1 << 3) 2389 #define CL_DEVICE_SCHEDULING_REGISTER_ALLOCATION_ARM (1 << 4) 2390 #define CL_DEVICE_SCHEDULING_WARP_THROTTLING_ARM (1 << 5) 2391 #define CL_DEVICE_SCHEDULING_COMPUTE_UNIT_BATCH_QUEUE_SIZE_ARM (1 << 6) 2392 #define CL_DEVICE_SCHEDULING_COMPUTE_UNIT_LIMIT_ARM (1 << 7) 2393 2394 /* cl_device_info */ 2395 #define CL_DEVICE_SCHEDULING_CONTROLS_CAPABILITIES_ARM 0x41E4 2396 #define CL_DEVICE_SUPPORTED_REGISTER_ALLOCATIONS_ARM 0x41EB 2397 #define CL_DEVICE_MAX_WARP_COUNT_ARM 0x41EA 2398 2399 /* cl_kernel_exec_info */ 2400 #define CL_KERNEL_EXEC_INFO_WORKGROUP_BATCH_SIZE_ARM 0x41E5 2401 #define CL_KERNEL_EXEC_INFO_WORKGROUP_BATCH_SIZE_MODIFIER_ARM 0x41E6 2402 #define CL_KERNEL_EXEC_INFO_WARP_COUNT_LIMIT_ARM 0x41E8 2403 #define CL_KERNEL_EXEC_INFO_COMPUTE_UNIT_MAX_QUEUED_BATCHES_ARM 0x41F1 2404 2405 /* cl_kernel_info */ 2406 #define CL_KERNEL_MAX_WARP_COUNT_ARM 0x41E9 2407 2408 /* cl_queue_properties */ 2409 #define CL_QUEUE_KERNEL_BATCHING_ARM 0x41E7 2410 #define CL_QUEUE_DEFERRED_FLUSH_ARM 0x41EC 2411 #define CL_QUEUE_COMPUTE_UNIT_LIMIT_ARM 0x41F3 2412 2413 /*************************************************************** 2414 * cl_arm_controlled_kernel_termination 2415 ***************************************************************/ 2416 #define cl_arm_controlled_kernel_termination 1 2417 #define CL_ARM_CONTROLLED_KERNEL_TERMINATION_EXTENSION_NAME \ 2418 "cl_arm_controlled_kernel_termination" 2419 2420 /* Types */ 2421 typedef cl_bitfield cl_device_controlled_termination_capabilities_arm; 2422 2423 /* Error codes */ 2424 #define CL_COMMAND_TERMINATED_ITSELF_WITH_FAILURE_ARM -1108 2425 2426 /* cl_device_controlled_termination_capabilities_arm */ 2427 #define CL_DEVICE_CONTROLLED_TERMINATION_SUCCESS_ARM (1 << 0) 2428 #define CL_DEVICE_CONTROLLED_TERMINATION_FAILURE_ARM (1 << 1) 2429 #define CL_DEVICE_CONTROLLED_TERMINATION_QUERY_ARM (1 << 2) 2430 2431 /* cl_device_info */ 2432 #define CL_DEVICE_CONTROLLED_TERMINATION_CAPABILITIES_ARM 0x41EE 2433 2434 /* cl_event_info */ 2435 #define CL_EVENT_COMMAND_TERMINATION_REASON_ARM 0x41ED 2436 2437 /* cl_command_termination_reason_arm */ 2438 #define CL_COMMAND_TERMINATION_COMPLETION_ARM 0 2439 #define CL_COMMAND_TERMINATION_CONTROLLED_SUCCESS_ARM 1 2440 #define CL_COMMAND_TERMINATION_CONTROLLED_FAILURE_ARM 2 2441 #define CL_COMMAND_TERMINATION_ERROR_ARM 3 2442 2443 /*************************************************************** 2444 * cl_arm_protected_memory_allocation 2445 ***************************************************************/ 2446 #define cl_arm_protected_memory_allocation 1 2447 #define CL_ARM_PROTECTED_MEMORY_ALLOCATION_EXTENSION_NAME \ 2448 "cl_arm_protected_memory_allocation" 2449 2450 #define CL_MEM_PROTECTED_ALLOC_ARM ((cl_bitfield)1 << 36) 2451 2452 /*************************************************************** 2453 * cl_intel_exec_by_local_thread 2454 ***************************************************************/ 2455 #define cl_intel_exec_by_local_thread 1 2456 #define CL_INTEL_EXEC_BY_LOCAL_THREAD_EXTENSION_NAME \ 2457 "cl_intel_exec_by_local_thread" 2458 2459 /* cl_command_queue_properties - bitfield */ 2460 #define CL_QUEUE_THREAD_LOCAL_EXEC_ENABLE_INTEL ((cl_bitfield)1 << 31) 2461 2462 /*************************************************************** 2463 * cl_intel_device_attribute_query 2464 ***************************************************************/ 2465 #define cl_intel_device_attribute_query 1 2466 #define CL_INTEL_DEVICE_ATTRIBUTE_QUERY_EXTENSION_NAME \ 2467 "cl_intel_device_attribute_query" 2468 2469 typedef cl_bitfield cl_device_feature_capabilities_intel; 2470 2471 /* cl_device_feature_capabilities_intel */ 2472 #define CL_DEVICE_FEATURE_FLAG_DP4A_INTEL (1 << 0) 2473 #define CL_DEVICE_FEATURE_FLAG_DPAS_INTEL (1 << 1) 2474 2475 /* cl_device_info */ 2476 #define CL_DEVICE_IP_VERSION_INTEL 0x4250 2477 #define CL_DEVICE_ID_INTEL 0x4251 2478 #define CL_DEVICE_NUM_SLICES_INTEL 0x4252 2479 #define CL_DEVICE_NUM_SUB_SLICES_PER_SLICE_INTEL 0x4253 2480 #define CL_DEVICE_NUM_EUS_PER_SUB_SLICE_INTEL 0x4254 2481 #define CL_DEVICE_NUM_THREADS_PER_EU_INTEL 0x4255 2482 #define CL_DEVICE_FEATURE_CAPABILITIES_INTEL 0x4256 2483 2484 /*************************************************************** 2485 * cl_intel_device_partition_by_names 2486 ***************************************************************/ 2487 #define cl_intel_device_partition_by_names 1 2488 #define CL_INTEL_DEVICE_PARTITION_BY_NAMES_EXTENSION_NAME \ 2489 "cl_intel_device_partition_by_names" 2490 2491 #define CL_DEVICE_PARTITION_BY_NAMES_INTEL 0x4052 2492 #define CL_PARTITION_BY_NAMES_LIST_END_INTEL -1 2493 2494 /*************************************************************** 2495 * cl_intel_accelerator 2496 ***************************************************************/ 2497 #define cl_intel_accelerator 1 2498 #define CL_INTEL_ACCELERATOR_EXTENSION_NAME \ 2499 "cl_intel_accelerator" 2500 2501 typedef struct _cl_accelerator_intel* cl_accelerator_intel; 2502 typedef cl_uint cl_accelerator_type_intel; 2503 typedef cl_uint cl_accelerator_info_intel; 2504 2505 /* cl_accelerator_info_intel */ 2506 #define CL_ACCELERATOR_DESCRIPTOR_INTEL 0x4090 2507 #define CL_ACCELERATOR_REFERENCE_COUNT_INTEL 0x4091 2508 #define CL_ACCELERATOR_CONTEXT_INTEL 0x4092 2509 #define CL_ACCELERATOR_TYPE_INTEL 0x4093 2510 2511 /* Error codes */ 2512 #define CL_INVALID_ACCELERATOR_INTEL -1094 2513 #define CL_INVALID_ACCELERATOR_TYPE_INTEL -1095 2514 #define CL_INVALID_ACCELERATOR_DESCRIPTOR_INTEL -1096 2515 #define CL_ACCELERATOR_TYPE_NOT_SUPPORTED_INTEL -1097 2516 2517 2518 typedef cl_accelerator_intel CL_API_CALL 2519 clCreateAcceleratorINTEL_t( 2520 cl_context context, 2521 cl_accelerator_type_intel accelerator_type, 2522 size_t descriptor_size, 2523 const void* descriptor, 2524 cl_int* errcode_ret); 2525 2526 typedef clCreateAcceleratorINTEL_t * 2527 clCreateAcceleratorINTEL_fn CL_API_SUFFIX__VERSION_1_2; 2528 2529 typedef cl_int CL_API_CALL 2530 clGetAcceleratorInfoINTEL_t( 2531 cl_accelerator_intel accelerator, 2532 cl_accelerator_info_intel param_name, 2533 size_t param_value_size, 2534 void* param_value, 2535 size_t* param_value_size_ret); 2536 2537 typedef clGetAcceleratorInfoINTEL_t * 2538 clGetAcceleratorInfoINTEL_fn CL_API_SUFFIX__VERSION_1_2; 2539 2540 typedef cl_int CL_API_CALL 2541 clRetainAcceleratorINTEL_t( 2542 cl_accelerator_intel accelerator); 2543 2544 typedef clRetainAcceleratorINTEL_t * 2545 clRetainAcceleratorINTEL_fn CL_API_SUFFIX__VERSION_1_2; 2546 2547 typedef cl_int CL_API_CALL 2548 clReleaseAcceleratorINTEL_t( 2549 cl_accelerator_intel accelerator); 2550 2551 typedef clReleaseAcceleratorINTEL_t * 2552 clReleaseAcceleratorINTEL_fn CL_API_SUFFIX__VERSION_1_2; 2553 2554 #if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) 2555 2556 extern CL_API_ENTRY cl_accelerator_intel CL_API_CALL 2557 clCreateAcceleratorINTEL( 2558 cl_context context, 2559 cl_accelerator_type_intel accelerator_type, 2560 size_t descriptor_size, 2561 const void* descriptor, 2562 cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; 2563 2564 extern CL_API_ENTRY cl_int CL_API_CALL 2565 clGetAcceleratorInfoINTEL( 2566 cl_accelerator_intel accelerator, 2567 cl_accelerator_info_intel param_name, 2568 size_t param_value_size, 2569 void* param_value, 2570 size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_1_2; 2571 2572 extern CL_API_ENTRY cl_int CL_API_CALL 2573 clRetainAcceleratorINTEL( 2574 cl_accelerator_intel accelerator) CL_API_SUFFIX__VERSION_1_2; 2575 2576 extern CL_API_ENTRY cl_int CL_API_CALL 2577 clReleaseAcceleratorINTEL( 2578 cl_accelerator_intel accelerator) CL_API_SUFFIX__VERSION_1_2; 2579 2580 #endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ 2581 2582 /*************************************************************** 2583 * cl_intel_motion_estimation 2584 ***************************************************************/ 2585 #define cl_intel_motion_estimation 1 2586 #define CL_INTEL_MOTION_ESTIMATION_EXTENSION_NAME \ 2587 "cl_intel_motion_estimation" 2588 2589 typedef struct _cl_motion_estimation_desc_intel { 2590 cl_uint mb_block_type; 2591 cl_uint subpixel_mode; 2592 cl_uint sad_adjust_mode; 2593 cl_uint search_path_type; 2594 } cl_motion_estimation_desc_intel; 2595 2596 /* cl_accelerator_type_intel */ 2597 #define CL_ACCELERATOR_TYPE_MOTION_ESTIMATION_INTEL 0x0 2598 2599 /* cl_uint mb_block_type */ 2600 #define CL_ME_MB_TYPE_16x16_INTEL 0x0 2601 #define CL_ME_MB_TYPE_8x8_INTEL 0x1 2602 #define CL_ME_MB_TYPE_4x4_INTEL 0x2 2603 2604 /* cl_uint subpixel_mode */ 2605 #define CL_ME_SUBPIXEL_MODE_INTEGER_INTEL 0x0 2606 #define CL_ME_SUBPIXEL_MODE_HPEL_INTEL 0x1 2607 #define CL_ME_SUBPIXEL_MODE_QPEL_INTEL 0x2 2608 2609 /* cl_uint sad_adjust_mode */ 2610 #define CL_ME_SAD_ADJUST_MODE_NONE_INTEL 0x0 2611 #define CL_ME_SAD_ADJUST_MODE_HAAR_INTEL 0x1 2612 2613 /* cl_uint search_path_type */ 2614 #define CL_ME_SEARCH_PATH_RADIUS_2_2_INTEL 0x0 2615 #define CL_ME_SEARCH_PATH_RADIUS_4_4_INTEL 0x1 2616 #define CL_ME_SEARCH_PATH_RADIUS_16_12_INTEL 0x5 2617 2618 /*************************************************************** 2619 * cl_intel_advanced_motion_estimation 2620 ***************************************************************/ 2621 #define cl_intel_advanced_motion_estimation 1 2622 #define CL_INTEL_ADVANCED_MOTION_ESTIMATION_EXTENSION_NAME \ 2623 "cl_intel_advanced_motion_estimation" 2624 2625 /* cl_device_info */ 2626 #define CL_DEVICE_ME_VERSION_INTEL 0x407E 2627 2628 #define CL_ME_VERSION_LEGACY_INTEL 0x0 2629 #define CL_ME_VERSION_ADVANCED_VER_1_INTEL 0x1 2630 #define CL_ME_VERSION_ADVANCED_VER_2_INTEL 0x2 2631 2632 #define CL_ME_CHROMA_INTRA_PREDICT_ENABLED_INTEL 0x1 2633 #define CL_ME_LUMA_INTRA_PREDICT_ENABLED_INTEL 0x2 2634 2635 #define CL_ME_SKIP_BLOCK_TYPE_16x16_INTEL 0x0 2636 #define CL_ME_SKIP_BLOCK_TYPE_8x8_INTEL 0x4 2637 2638 #define CL_ME_COST_PENALTY_NONE_INTEL 0x0 2639 #define CL_ME_COST_PENALTY_LOW_INTEL 0x1 2640 #define CL_ME_COST_PENALTY_NORMAL_INTEL 0x2 2641 #define CL_ME_COST_PENALTY_HIGH_INTEL 0x3 2642 2643 #define CL_ME_COST_PRECISION_QPEL_INTEL 0x0 2644 #define CL_ME_COST_PRECISION_HPEL_INTEL 0x1 2645 #define CL_ME_COST_PRECISION_PEL_INTEL 0x2 2646 #define CL_ME_COST_PRECISION_DPEL_INTEL 0x3 2647 2648 #define CL_ME_LUMA_PREDICTOR_MODE_VERTICAL_INTEL 0x0 2649 #define CL_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_INTEL 0x1 2650 #define CL_ME_LUMA_PREDICTOR_MODE_DC_INTEL 0x2 2651 #define CL_ME_LUMA_PREDICTOR_MODE_DIAGONAL_DOWN_LEFT_INTEL 0x3 2652 #define CL_ME_LUMA_PREDICTOR_MODE_DIAGONAL_DOWN_RIGHT_INTEL 0x4 2653 #define CL_ME_LUMA_PREDICTOR_MODE_PLANE_INTEL 0x4 2654 #define CL_ME_LUMA_PREDICTOR_MODE_VERTICAL_RIGHT_INTEL 0x5 2655 #define CL_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_DOWN_INTEL 0x6 2656 #define CL_ME_LUMA_PREDICTOR_MODE_VERTICAL_LEFT_INTEL 0x7 2657 #define CL_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_UP_INTEL 0x8 2658 2659 #define CL_ME_CHROMA_PREDICTOR_MODE_DC_INTEL 0x0 2660 #define CL_ME_CHROMA_PREDICTOR_MODE_HORIZONTAL_INTEL 0x1 2661 #define CL_ME_CHROMA_PREDICTOR_MODE_VERTICAL_INTEL 0x2 2662 #define CL_ME_CHROMA_PREDICTOR_MODE_PLANE_INTEL 0x3 2663 2664 #define CL_ME_FORWARD_INPUT_MODE_INTEL 0x1 2665 #define CL_ME_BACKWARD_INPUT_MODE_INTEL 0x2 2666 #define CL_ME_BIDIRECTION_INPUT_MODE_INTEL 0x3 2667 2668 #define CL_ME_BIDIR_WEIGHT_QUARTER_INTEL 16 2669 #define CL_ME_BIDIR_WEIGHT_THIRD_INTEL 21 2670 #define CL_ME_BIDIR_WEIGHT_HALF_INTEL 32 2671 #define CL_ME_BIDIR_WEIGHT_TWO_THIRD_INTEL 43 2672 #define CL_ME_BIDIR_WEIGHT_THREE_QUARTER_INTEL 48 2673 2674 /*************************************************************** 2675 * cl_intel_simultaneous_sharing 2676 ***************************************************************/ 2677 #define cl_intel_simultaneous_sharing 1 2678 #define CL_INTEL_SIMULTANEOUS_SHARING_EXTENSION_NAME \ 2679 "cl_intel_simultaneous_sharing" 2680 2681 /* cl_device_info */ 2682 #define CL_DEVICE_SIMULTANEOUS_INTEROPS_INTEL 0x4104 2683 #define CL_DEVICE_NUM_SIMULTANEOUS_INTEROPS_INTEL 0x4105 2684 2685 /*************************************************************** 2686 * cl_intel_egl_image_yuv 2687 ***************************************************************/ 2688 #define cl_intel_egl_image_yuv 1 2689 #define CL_INTEL_EGL_IMAGE_YUV_EXTENSION_NAME \ 2690 "cl_intel_egl_image_yuv" 2691 2692 /* cl_egl_image_properties_khr */ 2693 #define CL_EGL_YUV_PLANE_INTEL 0x4107 2694 2695 /*************************************************************** 2696 * cl_intel_packed_yuv 2697 ***************************************************************/ 2698 #define cl_intel_packed_yuv 1 2699 #define CL_INTEL_PACKED_YUV_EXTENSION_NAME \ 2700 "cl_intel_packed_yuv" 2701 2702 /* cl_channel_order */ 2703 #define CL_YUYV_INTEL 0x4076 2704 #define CL_UYVY_INTEL 0x4077 2705 #define CL_YVYU_INTEL 0x4078 2706 #define CL_VYUY_INTEL 0x4079 2707 2708 /*************************************************************** 2709 * cl_intel_required_subgroup_size 2710 ***************************************************************/ 2711 #define cl_intel_required_subgroup_size 1 2712 #define CL_INTEL_REQUIRED_SUBGROUP_SIZE_EXTENSION_NAME \ 2713 "cl_intel_required_subgroup_size" 2714 2715 /* cl_device_info */ 2716 #define CL_DEVICE_SUB_GROUP_SIZES_INTEL 0x4108 2717 2718 /* cl_kernel_work_group_info */ 2719 #define CL_KERNEL_SPILL_MEM_SIZE_INTEL 0x4109 2720 2721 /* cl_kernel_sub_group_info */ 2722 #define CL_KERNEL_COMPILE_SUB_GROUP_SIZE_INTEL 0x410A 2723 2724 /*************************************************************** 2725 * cl_intel_driver_diagnostics 2726 ***************************************************************/ 2727 #define cl_intel_driver_diagnostics 1 2728 #define CL_INTEL_DRIVER_DIAGNOSTICS_EXTENSION_NAME \ 2729 "cl_intel_driver_diagnostics" 2730 2731 typedef cl_uint cl_diagnostics_verbose_level; 2732 2733 /* cl_context_properties */ 2734 #define CL_CONTEXT_SHOW_DIAGNOSTICS_INTEL 0x4106 2735 #define CL_CONTEXT_DIAGNOSTICS_LEVEL_ALL_INTEL 0xff 2736 #define CL_CONTEXT_DIAGNOSTICS_LEVEL_GOOD_INTEL (1 << 0) 2737 #define CL_CONTEXT_DIAGNOSTICS_LEVEL_BAD_INTEL (1 << 1) 2738 #define CL_CONTEXT_DIAGNOSTICS_LEVEL_NEUTRAL_INTEL (1 << 2) 2739 2740 /*************************************************************** 2741 * cl_intel_planar_yuv 2742 ***************************************************************/ 2743 #define cl_intel_planar_yuv 1 2744 #define CL_INTEL_PLANAR_YUV_EXTENSION_NAME \ 2745 "cl_intel_planar_yuv" 2746 2747 /* cl_channel_order */ 2748 #define CL_NV12_INTEL 0x410E 2749 2750 /* cl_mem_flags */ 2751 #define CL_MEM_NO_ACCESS_INTEL (1 << 24) 2752 #define CL_MEM_ACCESS_FLAGS_UNRESTRICTED_INTEL (1 << 25) 2753 2754 /* cl_device_info */ 2755 #define CL_DEVICE_PLANAR_YUV_MAX_WIDTH_INTEL 0x417E 2756 #define CL_DEVICE_PLANAR_YUV_MAX_HEIGHT_INTEL 0x417F 2757 2758 /*************************************************************** 2759 * cl_intel_device_side_avc_motion_estimation 2760 ***************************************************************/ 2761 #define cl_intel_device_side_avc_motion_estimation 1 2762 #define CL_INTEL_DEVICE_SIDE_AVC_MOTION_ESTIMATION_EXTENSION_NAME \ 2763 "cl_intel_device_side_avc_motion_estimation" 2764 2765 /* cl_device_info */ 2766 #define CL_DEVICE_AVC_ME_VERSION_INTEL 0x410B 2767 #define CL_DEVICE_AVC_ME_SUPPORTS_TEXTURE_SAMPLER_USE_INTEL 0x410C 2768 #define CL_DEVICE_AVC_ME_SUPPORTS_PREEMPTION_INTEL 0x410D 2769 2770 /* returned by CL_DEVICE_AVC_ME_VERSION_INTEL */ 2771 #define CL_AVC_ME_VERSION_0_INTEL 0x0 2772 #define CL_AVC_ME_VERSION_1_INTEL 0x1 2773 2774 /* Inter macro-block major shape values */ 2775 #define CL_AVC_ME_MAJOR_16x16_INTEL 0x0 2776 #define CL_AVC_ME_MAJOR_16x8_INTEL 0x1 2777 #define CL_AVC_ME_MAJOR_8x16_INTEL 0x2 2778 #define CL_AVC_ME_MAJOR_8x8_INTEL 0x3 2779 2780 /* Inter macro-block minor shape values */ 2781 #define CL_AVC_ME_MINOR_8x8_INTEL 0x0 2782 #define CL_AVC_ME_MINOR_8x4_INTEL 0x1 2783 #define CL_AVC_ME_MINOR_4x8_INTEL 0x2 2784 #define CL_AVC_ME_MINOR_4x4_INTEL 0x3 2785 2786 /* Inter macro-block major direction values */ 2787 #define CL_AVC_ME_MAJOR_FORWARD_INTEL 0x0 2788 #define CL_AVC_ME_MAJOR_BACKWARD_INTEL 0x1 2789 #define CL_AVC_ME_MAJOR_BIDIRECTIONAL_INTEL 0x2 2790 2791 /* Inter (IME) partition mask values */ 2792 #define CL_AVC_ME_PARTITION_MASK_ALL_INTEL 0x0 2793 #define CL_AVC_ME_PARTITION_MASK_16x16_INTEL 0x7E 2794 #define CL_AVC_ME_PARTITION_MASK_16x8_INTEL 0x7D 2795 #define CL_AVC_ME_PARTITION_MASK_8x16_INTEL 0x7B 2796 #define CL_AVC_ME_PARTITION_MASK_8x8_INTEL 0x77 2797 #define CL_AVC_ME_PARTITION_MASK_8x4_INTEL 0x6F 2798 #define CL_AVC_ME_PARTITION_MASK_4x8_INTEL 0x5F 2799 #define CL_AVC_ME_PARTITION_MASK_4x4_INTEL 0x3F 2800 2801 /* Search window configuration */ 2802 #define CL_AVC_ME_SEARCH_WINDOW_EXHAUSTIVE_INTEL 0x0 2803 #define CL_AVC_ME_SEARCH_WINDOW_SMALL_INTEL 0x1 2804 #define CL_AVC_ME_SEARCH_WINDOW_TINY_INTEL 0x2 2805 #define CL_AVC_ME_SEARCH_WINDOW_EXTRA_TINY_INTEL 0x3 2806 #define CL_AVC_ME_SEARCH_WINDOW_DIAMOND_INTEL 0x4 2807 #define CL_AVC_ME_SEARCH_WINDOW_LARGE_DIAMOND_INTEL 0x5 2808 #define CL_AVC_ME_SEARCH_WINDOW_RESERVED0_INTEL 0x6 2809 #define CL_AVC_ME_SEARCH_WINDOW_RESERVED1_INTEL 0x7 2810 #define CL_AVC_ME_SEARCH_WINDOW_CUSTOM_INTEL 0x8 2811 #define CL_AVC_ME_SEARCH_WINDOW_16x12_RADIUS_INTEL 0x9 2812 #define CL_AVC_ME_SEARCH_WINDOW_4x4_RADIUS_INTEL 0x2 2813 #define CL_AVC_ME_SEARCH_WINDOW_2x2_RADIUS_INTEL 0xa 2814 2815 /* SAD adjustment mode */ 2816 #define CL_AVC_ME_SAD_ADJUST_MODE_NONE_INTEL 0x0 2817 #define CL_AVC_ME_SAD_ADJUST_MODE_HAAR_INTEL 0x2 2818 2819 /* Pixel resolution */ 2820 #define CL_AVC_ME_SUBPIXEL_MODE_INTEGER_INTEL 0x0 2821 #define CL_AVC_ME_SUBPIXEL_MODE_HPEL_INTEL 0x1 2822 #define CL_AVC_ME_SUBPIXEL_MODE_QPEL_INTEL 0x3 2823 2824 /* Cost precision values */ 2825 #define CL_AVC_ME_COST_PRECISION_QPEL_INTEL 0x0 2826 #define CL_AVC_ME_COST_PRECISION_HPEL_INTEL 0x1 2827 #define CL_AVC_ME_COST_PRECISION_PEL_INTEL 0x2 2828 #define CL_AVC_ME_COST_PRECISION_DPEL_INTEL 0x3 2829 2830 /* Inter bidirectional weights */ 2831 #define CL_AVC_ME_BIDIR_WEIGHT_QUARTER_INTEL 0x10 2832 #define CL_AVC_ME_BIDIR_WEIGHT_THIRD_INTEL 0x15 2833 #define CL_AVC_ME_BIDIR_WEIGHT_HALF_INTEL 0x20 2834 #define CL_AVC_ME_BIDIR_WEIGHT_TWO_THIRD_INTEL 0x2B 2835 #define CL_AVC_ME_BIDIR_WEIGHT_THREE_QUARTER_INTEL 0x30 2836 2837 /* Inter border reached values */ 2838 #define CL_AVC_ME_BORDER_REACHED_LEFT_INTEL 0x0 2839 #define CL_AVC_ME_BORDER_REACHED_RIGHT_INTEL 0x2 2840 #define CL_AVC_ME_BORDER_REACHED_TOP_INTEL 0x4 2841 #define CL_AVC_ME_BORDER_REACHED_BOTTOM_INTEL 0x8 2842 2843 /* Inter skip block partition type */ 2844 #define CL_AVC_ME_SKIP_BLOCK_PARTITION_16x16_INTEL 0x0 2845 #define CL_AVC_ME_SKIP_BLOCK_PARTITION_8x8_INTEL 0x4000 2846 2847 /* Inter skip motion vector mask */ 2848 #define CL_AVC_ME_SKIP_BLOCK_16x16_FORWARD_ENABLE_INTEL (0x1 << 24) 2849 #define CL_AVC_ME_SKIP_BLOCK_16x16_BACKWARD_ENABLE_INTEL (0x2 << 24) 2850 #define CL_AVC_ME_SKIP_BLOCK_16x16_DUAL_ENABLE_INTEL (0x3 << 24) 2851 #define CL_AVC_ME_SKIP_BLOCK_8x8_FORWARD_ENABLE_INTEL (0x55 << 24) 2852 #define CL_AVC_ME_SKIP_BLOCK_8x8_BACKWARD_ENABLE_INTEL (0xAA << 24) 2853 #define CL_AVC_ME_SKIP_BLOCK_8x8_DUAL_ENABLE_INTEL (0xFF << 24) 2854 #define CL_AVC_ME_SKIP_BLOCK_8x8_0_FORWARD_ENABLE_INTEL (0x1 << 24) 2855 #define CL_AVC_ME_SKIP_BLOCK_8x8_0_BACKWARD_ENABLE_INTEL (0x2 << 24) 2856 #define CL_AVC_ME_SKIP_BLOCK_8x8_1_FORWARD_ENABLE_INTEL (0x1 << 26) 2857 #define CL_AVC_ME_SKIP_BLOCK_8x8_1_BACKWARD_ENABLE_INTEL (0x2 << 26) 2858 #define CL_AVC_ME_SKIP_BLOCK_8x8_2_FORWARD_ENABLE_INTEL (0x1 << 28) 2859 #define CL_AVC_ME_SKIP_BLOCK_8x8_2_BACKWARD_ENABLE_INTEL (0x2 << 28) 2860 #define CL_AVC_ME_SKIP_BLOCK_8x8_3_FORWARD_ENABLE_INTEL (0x1 << 30) 2861 #define CL_AVC_ME_SKIP_BLOCK_8x8_3_BACKWARD_ENABLE_INTEL (0x2 << 30) 2862 2863 /* Block based skip type values */ 2864 #define CL_AVC_ME_BLOCK_BASED_SKIP_4x4_INTEL 0x00 2865 #define CL_AVC_ME_BLOCK_BASED_SKIP_8x8_INTEL 0x80 2866 2867 /* cl_intel_device_side_avc_motion_estimation.?? */ 2868 #define CL_AVC_ME_INTRA_16x16_INTEL 0x0 2869 #define CL_AVC_ME_INTRA_8x8_INTEL 0x1 2870 #define CL_AVC_ME_INTRA_4x4_INTEL 0x2 2871 2872 /* Luma intra partition mask values */ 2873 #define CL_AVC_ME_INTRA_LUMA_PARTITION_MASK_16x16_INTEL 0x6 2874 #define CL_AVC_ME_INTRA_LUMA_PARTITION_MASK_8x8_INTEL 0x5 2875 #define CL_AVC_ME_INTRA_LUMA_PARTITION_MASK_4x4_INTEL 0x3 2876 2877 /* Intra neighbor availability mask values */ 2878 #define CL_AVC_ME_INTRA_NEIGHBOR_LEFT_MASK_ENABLE_INTEL 0x60 2879 #define CL_AVC_ME_INTRA_NEIGHBOR_UPPER_MASK_ENABLE_INTEL 0x10 2880 #define CL_AVC_ME_INTRA_NEIGHBOR_UPPER_RIGHT_MASK_ENABLE_INTEL 0x8 2881 #define CL_AVC_ME_INTRA_NEIGHBOR_UPPER_LEFT_MASK_ENABLE_INTEL 0x4 2882 2883 /* Luma intra modes */ 2884 #define CL_AVC_ME_LUMA_PREDICTOR_MODE_VERTICAL_INTEL 0x0 2885 #define CL_AVC_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_INTEL 0x1 2886 #define CL_AVC_ME_LUMA_PREDICTOR_MODE_DC_INTEL 0x2 2887 #define CL_AVC_ME_LUMA_PREDICTOR_MODE_DIAGONAL_DOWN_LEFT_INTEL 0x3 2888 #define CL_AVC_ME_LUMA_PREDICTOR_MODE_DIAGONAL_DOWN_RIGHT_INTEL 0x4 2889 #define CL_AVC_ME_LUMA_PREDICTOR_MODE_PLANE_INTEL 0x4 2890 #define CL_AVC_ME_LUMA_PREDICTOR_MODE_VERTICAL_RIGHT_INTEL 0x5 2891 #define CL_AVC_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_DOWN_INTEL 0x6 2892 #define CL_AVC_ME_LUMA_PREDICTOR_MODE_VERTICAL_LEFT_INTEL 0x7 2893 #define CL_AVC_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_UP_INTEL 0x8 2894 2895 /* Chroma intra modes */ 2896 #define CL_AVC_ME_CHROMA_PREDICTOR_MODE_DC_INTEL 0x0 2897 #define CL_AVC_ME_CHROMA_PREDICTOR_MODE_HORIZONTAL_INTEL 0x1 2898 #define CL_AVC_ME_CHROMA_PREDICTOR_MODE_VERTICAL_INTEL 0x2 2899 #define CL_AVC_ME_CHROMA_PREDICTOR_MODE_PLANE_INTEL 0x3 2900 2901 /* Reference image select values */ 2902 #define CL_AVC_ME_FRAME_FORWARD_INTEL 0x1 2903 #define CL_AVC_ME_FRAME_BACKWARD_INTEL 0x2 2904 #define CL_AVC_ME_FRAME_DUAL_INTEL 0x3 2905 2906 /* Slice type values */ 2907 #define CL_AVC_ME_SLICE_TYPE_PRED_INTEL 0x0 2908 #define CL_AVC_ME_SLICE_TYPE_BPRED_INTEL 0x1 2909 #define CL_AVC_ME_SLICE_TYPE_INTRA_INTEL 0x2 2910 2911 /* Interlaced image field polarity values */ 2912 #define CL_AVC_ME_INTERLACED_SCAN_TOP_FIELD_INTEL 0x0 2913 #define CL_AVC_ME_INTERLACED_SCAN_BOTTOM_FIELD_INTEL 0x1 2914 2915 /*************************************************************** 2916 * cl_intel_unified_shared_memory 2917 ***************************************************************/ 2918 #define cl_intel_unified_shared_memory 1 2919 #define CL_INTEL_UNIFIED_SHARED_MEMORY_EXTENSION_NAME \ 2920 "cl_intel_unified_shared_memory" 2921 2922 typedef cl_bitfield cl_device_unified_shared_memory_capabilities_intel; 2923 typedef cl_properties cl_mem_properties_intel; 2924 typedef cl_bitfield cl_mem_alloc_flags_intel; 2925 typedef cl_uint cl_mem_info_intel; 2926 typedef cl_uint cl_unified_shared_memory_type_intel; 2927 typedef cl_uint cl_mem_advice_intel; 2928 2929 /* cl_device_info */ 2930 #define CL_DEVICE_HOST_MEM_CAPABILITIES_INTEL 0x4190 2931 #define CL_DEVICE_DEVICE_MEM_CAPABILITIES_INTEL 0x4191 2932 #define CL_DEVICE_SINGLE_DEVICE_SHARED_MEM_CAPABILITIES_INTEL 0x4192 2933 #define CL_DEVICE_CROSS_DEVICE_SHARED_MEM_CAPABILITIES_INTEL 0x4193 2934 #define CL_DEVICE_SHARED_SYSTEM_MEM_CAPABILITIES_INTEL 0x4194 2935 2936 /* cl_unified_shared_memory_capabilities_intel - bitfield */ 2937 #define CL_UNIFIED_SHARED_MEMORY_ACCESS_INTEL (1 << 0) 2938 #define CL_UNIFIED_SHARED_MEMORY_ATOMIC_ACCESS_INTEL (1 << 1) 2939 #define CL_UNIFIED_SHARED_MEMORY_CONCURRENT_ACCESS_INTEL (1 << 2) 2940 #define CL_UNIFIED_SHARED_MEMORY_CONCURRENT_ATOMIC_ACCESS_INTEL (1 << 3) 2941 2942 /* cl_mem_properties_intel */ 2943 #define CL_MEM_ALLOC_FLAGS_INTEL 0x4195 2944 2945 /* cl_mem_alloc_flags_intel - bitfield */ 2946 #define CL_MEM_ALLOC_WRITE_COMBINED_INTEL (1 << 0) 2947 #define CL_MEM_ALLOC_INITIAL_PLACEMENT_DEVICE_INTEL (1 << 1) 2948 #define CL_MEM_ALLOC_INITIAL_PLACEMENT_HOST_INTEL (1 << 2) 2949 2950 /* cl_mem_alloc_info_intel */ 2951 #define CL_MEM_ALLOC_TYPE_INTEL 0x419A 2952 #define CL_MEM_ALLOC_BASE_PTR_INTEL 0x419B 2953 #define CL_MEM_ALLOC_SIZE_INTEL 0x419C 2954 #define CL_MEM_ALLOC_DEVICE_INTEL 0x419D 2955 2956 /* cl_unified_shared_memory_type_intel */ 2957 #define CL_MEM_TYPE_UNKNOWN_INTEL 0x4196 2958 #define CL_MEM_TYPE_HOST_INTEL 0x4197 2959 #define CL_MEM_TYPE_DEVICE_INTEL 0x4198 2960 #define CL_MEM_TYPE_SHARED_INTEL 0x4199 2961 2962 /* cl_kernel_exec_info */ 2963 #define CL_KERNEL_EXEC_INFO_INDIRECT_HOST_ACCESS_INTEL 0x4200 2964 #define CL_KERNEL_EXEC_INFO_INDIRECT_DEVICE_ACCESS_INTEL 0x4201 2965 #define CL_KERNEL_EXEC_INFO_INDIRECT_SHARED_ACCESS_INTEL 0x4202 2966 #define CL_KERNEL_EXEC_INFO_USM_PTRS_INTEL 0x4203 2967 2968 /* cl_command_type */ 2969 #define CL_COMMAND_MEMFILL_INTEL 0x4204 2970 #define CL_COMMAND_MEMCPY_INTEL 0x4205 2971 #define CL_COMMAND_MIGRATEMEM_INTEL 0x4206 2972 #define CL_COMMAND_MEMADVISE_INTEL 0x4207 2973 2974 2975 typedef void* CL_API_CALL 2976 clHostMemAllocINTEL_t( 2977 cl_context context, 2978 const cl_mem_properties_intel* properties, 2979 size_t size, 2980 cl_uint alignment, 2981 cl_int* errcode_ret); 2982 2983 typedef clHostMemAllocINTEL_t * 2984 clHostMemAllocINTEL_fn ; 2985 2986 typedef void* CL_API_CALL 2987 clDeviceMemAllocINTEL_t( 2988 cl_context context, 2989 cl_device_id device, 2990 const cl_mem_properties_intel* properties, 2991 size_t size, 2992 cl_uint alignment, 2993 cl_int* errcode_ret); 2994 2995 typedef clDeviceMemAllocINTEL_t * 2996 clDeviceMemAllocINTEL_fn ; 2997 2998 typedef void* CL_API_CALL 2999 clSharedMemAllocINTEL_t( 3000 cl_context context, 3001 cl_device_id device, 3002 const cl_mem_properties_intel* properties, 3003 size_t size, 3004 cl_uint alignment, 3005 cl_int* errcode_ret); 3006 3007 typedef clSharedMemAllocINTEL_t * 3008 clSharedMemAllocINTEL_fn ; 3009 3010 typedef cl_int CL_API_CALL 3011 clMemFreeINTEL_t( 3012 cl_context context, 3013 void* ptr); 3014 3015 typedef clMemFreeINTEL_t * 3016 clMemFreeINTEL_fn ; 3017 3018 typedef cl_int CL_API_CALL 3019 clMemBlockingFreeINTEL_t( 3020 cl_context context, 3021 void* ptr); 3022 3023 typedef clMemBlockingFreeINTEL_t * 3024 clMemBlockingFreeINTEL_fn ; 3025 3026 typedef cl_int CL_API_CALL 3027 clGetMemAllocInfoINTEL_t( 3028 cl_context context, 3029 const void* ptr, 3030 cl_mem_info_intel param_name, 3031 size_t param_value_size, 3032 void* param_value, 3033 size_t* param_value_size_ret); 3034 3035 typedef clGetMemAllocInfoINTEL_t * 3036 clGetMemAllocInfoINTEL_fn ; 3037 3038 typedef cl_int CL_API_CALL 3039 clSetKernelArgMemPointerINTEL_t( 3040 cl_kernel kernel, 3041 cl_uint arg_index, 3042 const void* arg_value); 3043 3044 typedef clSetKernelArgMemPointerINTEL_t * 3045 clSetKernelArgMemPointerINTEL_fn ; 3046 3047 typedef cl_int CL_API_CALL 3048 clEnqueueMemFillINTEL_t( 3049 cl_command_queue command_queue, 3050 void* dst_ptr, 3051 const void* pattern, 3052 size_t pattern_size, 3053 size_t size, 3054 cl_uint num_events_in_wait_list, 3055 const cl_event* event_wait_list, 3056 cl_event* event); 3057 3058 typedef clEnqueueMemFillINTEL_t * 3059 clEnqueueMemFillINTEL_fn ; 3060 3061 typedef cl_int CL_API_CALL 3062 clEnqueueMemcpyINTEL_t( 3063 cl_command_queue command_queue, 3064 cl_bool blocking, 3065 void* dst_ptr, 3066 const void* src_ptr, 3067 size_t size, 3068 cl_uint num_events_in_wait_list, 3069 const cl_event* event_wait_list, 3070 cl_event* event); 3071 3072 typedef clEnqueueMemcpyINTEL_t * 3073 clEnqueueMemcpyINTEL_fn ; 3074 3075 typedef cl_int CL_API_CALL 3076 clEnqueueMemAdviseINTEL_t( 3077 cl_command_queue command_queue, 3078 const void* ptr, 3079 size_t size, 3080 cl_mem_advice_intel advice, 3081 cl_uint num_events_in_wait_list, 3082 const cl_event* event_wait_list, 3083 cl_event* event); 3084 3085 typedef clEnqueueMemAdviseINTEL_t * 3086 clEnqueueMemAdviseINTEL_fn ; 3087 3088 #if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) 3089 3090 extern CL_API_ENTRY void* CL_API_CALL 3091 clHostMemAllocINTEL( 3092 cl_context context, 3093 const cl_mem_properties_intel* properties, 3094 size_t size, 3095 cl_uint alignment, 3096 cl_int* errcode_ret) ; 3097 3098 extern CL_API_ENTRY void* CL_API_CALL 3099 clDeviceMemAllocINTEL( 3100 cl_context context, 3101 cl_device_id device, 3102 const cl_mem_properties_intel* properties, 3103 size_t size, 3104 cl_uint alignment, 3105 cl_int* errcode_ret) ; 3106 3107 extern CL_API_ENTRY void* CL_API_CALL 3108 clSharedMemAllocINTEL( 3109 cl_context context, 3110 cl_device_id device, 3111 const cl_mem_properties_intel* properties, 3112 size_t size, 3113 cl_uint alignment, 3114 cl_int* errcode_ret) ; 3115 3116 extern CL_API_ENTRY cl_int CL_API_CALL 3117 clMemFreeINTEL( 3118 cl_context context, 3119 void* ptr) ; 3120 3121 extern CL_API_ENTRY cl_int CL_API_CALL 3122 clMemBlockingFreeINTEL( 3123 cl_context context, 3124 void* ptr) ; 3125 3126 extern CL_API_ENTRY cl_int CL_API_CALL 3127 clGetMemAllocInfoINTEL( 3128 cl_context context, 3129 const void* ptr, 3130 cl_mem_info_intel param_name, 3131 size_t param_value_size, 3132 void* param_value, 3133 size_t* param_value_size_ret) ; 3134 3135 extern CL_API_ENTRY cl_int CL_API_CALL 3136 clSetKernelArgMemPointerINTEL( 3137 cl_kernel kernel, 3138 cl_uint arg_index, 3139 const void* arg_value) ; 3140 3141 extern CL_API_ENTRY cl_int CL_API_CALL 3142 clEnqueueMemFillINTEL( 3143 cl_command_queue command_queue, 3144 void* dst_ptr, 3145 const void* pattern, 3146 size_t pattern_size, 3147 size_t size, 3148 cl_uint num_events_in_wait_list, 3149 const cl_event* event_wait_list, 3150 cl_event* event) ; 3151 3152 extern CL_API_ENTRY cl_int CL_API_CALL 3153 clEnqueueMemcpyINTEL( 3154 cl_command_queue command_queue, 3155 cl_bool blocking, 3156 void* dst_ptr, 3157 const void* src_ptr, 3158 size_t size, 3159 cl_uint num_events_in_wait_list, 3160 const cl_event* event_wait_list, 3161 cl_event* event) ; 3162 3163 extern CL_API_ENTRY cl_int CL_API_CALL 3164 clEnqueueMemAdviseINTEL( 3165 cl_command_queue command_queue, 3166 const void* ptr, 3167 size_t size, 3168 cl_mem_advice_intel advice, 3169 cl_uint num_events_in_wait_list, 3170 const cl_event* event_wait_list, 3171 cl_event* event) ; 3172 3173 #endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ 3174 3175 #if defined(CL_VERSION_1_2) 3176 /* Requires OpenCL 1.2 for cl_mem_migration_flags: */ 3177 3178 typedef cl_int CL_API_CALL 3179 clEnqueueMigrateMemINTEL_t( 3180 cl_command_queue command_queue, 3181 const void* ptr, 3182 size_t size, 3183 cl_mem_migration_flags flags, 3184 cl_uint num_events_in_wait_list, 3185 const cl_event* event_wait_list, 3186 cl_event* event); 3187 3188 typedef clEnqueueMigrateMemINTEL_t * 3189 clEnqueueMigrateMemINTEL_fn ; 3190 3191 #if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) 3192 3193 extern CL_API_ENTRY cl_int CL_API_CALL 3194 clEnqueueMigrateMemINTEL( 3195 cl_command_queue command_queue, 3196 const void* ptr, 3197 size_t size, 3198 cl_mem_migration_flags flags, 3199 cl_uint num_events_in_wait_list, 3200 const cl_event* event_wait_list, 3201 cl_event* event) ; 3202 3203 #endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ 3204 3205 #endif /* defined(CL_VERSION_1_2) */ 3206 3207 /* deprecated, use clEnqueueMemFillINTEL instead */ 3208 3209 typedef cl_int CL_API_CALL 3210 clEnqueueMemsetINTEL_t( 3211 cl_command_queue command_queue, 3212 void* dst_ptr, 3213 cl_int value, 3214 size_t size, 3215 cl_uint num_events_in_wait_list, 3216 const cl_event* event_wait_list, 3217 cl_event* event); 3218 3219 typedef clEnqueueMemsetINTEL_t * 3220 clEnqueueMemsetINTEL_fn ; 3221 3222 #if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) 3223 3224 extern CL_API_ENTRY cl_int CL_API_CALL 3225 clEnqueueMemsetINTEL( 3226 cl_command_queue command_queue, 3227 void* dst_ptr, 3228 cl_int value, 3229 size_t size, 3230 cl_uint num_events_in_wait_list, 3231 const cl_event* event_wait_list, 3232 cl_event* event) ; 3233 3234 #endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ 3235 3236 /*************************************************************** 3237 * cl_intel_mem_alloc_buffer_location 3238 ***************************************************************/ 3239 #define cl_intel_mem_alloc_buffer_location 1 3240 #define CL_INTEL_MEM_ALLOC_BUFFER_LOCATION_EXTENSION_NAME \ 3241 "cl_intel_mem_alloc_buffer_location" 3242 3243 /* cl_mem_properties_intel */ 3244 #define CL_MEM_ALLOC_BUFFER_LOCATION_INTEL 0x419E 3245 3246 /* cl_mem_alloc_info_intel */ 3247 /* enum CL_MEM_ALLOC_BUFFER_LOCATION_INTEL */ 3248 3249 /*************************************************************** 3250 * cl_intel_create_buffer_with_properties 3251 ***************************************************************/ 3252 #define cl_intel_create_buffer_with_properties 1 3253 #define CL_INTEL_CREATE_BUFFER_WITH_PROPERTIES_EXTENSION_NAME \ 3254 "cl_intel_create_buffer_with_properties" 3255 3256 /* type cl_mem_properties_intel */ 3257 3258 3259 typedef cl_mem CL_API_CALL 3260 clCreateBufferWithPropertiesINTEL_t( 3261 cl_context context, 3262 const cl_mem_properties_intel* properties, 3263 cl_mem_flags flags, 3264 size_t size, 3265 void* host_ptr, 3266 cl_int* errcode_ret); 3267 3268 typedef clCreateBufferWithPropertiesINTEL_t * 3269 clCreateBufferWithPropertiesINTEL_fn CL_API_SUFFIX__VERSION_1_0; 3270 3271 #if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) 3272 3273 extern CL_API_ENTRY cl_mem CL_API_CALL 3274 clCreateBufferWithPropertiesINTEL( 3275 cl_context context, 3276 const cl_mem_properties_intel* properties, 3277 cl_mem_flags flags, 3278 size_t size, 3279 void* host_ptr, 3280 cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0; 3281 3282 #endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ 3283 3284 /*************************************************************** 3285 * cl_intel_program_scope_host_pipe 3286 ***************************************************************/ 3287 #define cl_intel_program_scope_host_pipe 1 3288 #define CL_INTEL_PROGRAM_SCOPE_HOST_PIPE_EXTENSION_NAME \ 3289 "cl_intel_program_scope_host_pipe" 3290 3291 /* clGetEventInfo response when param_name is CL_EVENT_COMMAND_TYPE */ 3292 #define CL_COMMAND_READ_HOST_PIPE_INTEL 0x4214 3293 #define CL_COMMAND_WRITE_HOST_PIPE_INTEL 0x4215 3294 3295 /* clGetProgramInfo param_name */ 3296 #define CL_PROGRAM_NUM_HOST_PIPES_INTEL 0x4216 3297 #define CL_PROGRAM_HOST_PIPE_NAMES_INTEL 0x4217 3298 3299 3300 typedef cl_int CL_API_CALL 3301 clEnqueueReadHostPipeINTEL_t( 3302 cl_command_queue command_queue, 3303 cl_program program, 3304 const char* pipe_symbol, 3305 cl_bool blocking_read, 3306 void* ptr, 3307 size_t size, 3308 cl_uint num_events_in_wait_list, 3309 const cl_event* event_wait_list, 3310 cl_event* event); 3311 3312 typedef clEnqueueReadHostPipeINTEL_t * 3313 clEnqueueReadHostPipeINTEL_fn CL_API_SUFFIX__VERSION_1_0; 3314 3315 typedef cl_int CL_API_CALL 3316 clEnqueueWriteHostPipeINTEL_t( 3317 cl_command_queue command_queue, 3318 cl_program program, 3319 const char* pipe_symbol, 3320 cl_bool blocking_write, 3321 const void* ptr, 3322 size_t size, 3323 cl_uint num_events_in_wait_list, 3324 const cl_event* event_wait_list, 3325 cl_event* event); 3326 3327 typedef clEnqueueWriteHostPipeINTEL_t * 3328 clEnqueueWriteHostPipeINTEL_fn CL_API_SUFFIX__VERSION_1_0; 3329 3330 #if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) 3331 3332 extern CL_API_ENTRY cl_int CL_API_CALL 3333 clEnqueueReadHostPipeINTEL( 3334 cl_command_queue command_queue, 3335 cl_program program, 3336 const char* pipe_symbol, 3337 cl_bool blocking_read, 3338 void* ptr, 3339 size_t size, 3340 cl_uint num_events_in_wait_list, 3341 const cl_event* event_wait_list, 3342 cl_event* event) CL_API_SUFFIX__VERSION_1_0; 3343 3344 extern CL_API_ENTRY cl_int CL_API_CALL 3345 clEnqueueWriteHostPipeINTEL( 3346 cl_command_queue command_queue, 3347 cl_program program, 3348 const char* pipe_symbol, 3349 cl_bool blocking_write, 3350 const void* ptr, 3351 size_t size, 3352 cl_uint num_events_in_wait_list, 3353 const cl_event* event_wait_list, 3354 cl_event* event) CL_API_SUFFIX__VERSION_1_0; 3355 3356 #endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ 3357 3358 /*************************************************************** 3359 * cl_intel_mem_channel_property 3360 ***************************************************************/ 3361 #define cl_intel_mem_channel_property 1 3362 #define CL_INTEL_MEM_CHANNEL_PROPERTY_EXTENSION_NAME \ 3363 "cl_intel_mem_channel_property" 3364 3365 /* cl_mem_properties_intel */ 3366 #define CL_MEM_CHANNEL_INTEL 0x4213 3367 3368 /*************************************************************** 3369 * cl_intel_mem_force_host_memory 3370 ***************************************************************/ 3371 #define cl_intel_mem_force_host_memory 1 3372 #define CL_INTEL_MEM_FORCE_HOST_MEMORY_EXTENSION_NAME \ 3373 "cl_intel_mem_force_host_memory" 3374 3375 /* cl_mem_flags */ 3376 #define CL_MEM_FORCE_HOST_MEMORY_INTEL (1 << 20) 3377 3378 /*************************************************************** 3379 * cl_intel_command_queue_families 3380 ***************************************************************/ 3381 #define cl_intel_command_queue_families 1 3382 #define CL_INTEL_COMMAND_QUEUE_FAMILIES_EXTENSION_NAME \ 3383 "cl_intel_command_queue_families" 3384 3385 typedef cl_bitfield cl_command_queue_capabilities_intel; 3386 3387 #define CL_QUEUE_FAMILY_MAX_NAME_SIZE_INTEL 64 3388 3389 typedef struct _cl_queue_family_properties_intel { 3390 cl_command_queue_properties properties; 3391 cl_command_queue_capabilities_intel capabilities; 3392 cl_uint count; 3393 char name[CL_QUEUE_FAMILY_MAX_NAME_SIZE_INTEL]; 3394 } cl_queue_family_properties_intel; 3395 3396 /* cl_device_info */ 3397 #define CL_DEVICE_QUEUE_FAMILY_PROPERTIES_INTEL 0x418B 3398 3399 /* cl_queue_properties */ 3400 #define CL_QUEUE_FAMILY_INTEL 0x418C 3401 #define CL_QUEUE_INDEX_INTEL 0x418D 3402 3403 /* cl_command_queue_capabilities_intel */ 3404 #define CL_QUEUE_DEFAULT_CAPABILITIES_INTEL 0 3405 #define CL_QUEUE_CAPABILITY_CREATE_SINGLE_QUEUE_EVENTS_INTEL (1 << 0) 3406 #define CL_QUEUE_CAPABILITY_CREATE_CROSS_QUEUE_EVENTS_INTEL (1 << 1) 3407 #define CL_QUEUE_CAPABILITY_SINGLE_QUEUE_EVENT_WAIT_LIST_INTEL (1 << 2) 3408 #define CL_QUEUE_CAPABILITY_CROSS_QUEUE_EVENT_WAIT_LIST_INTEL (1 << 3) 3409 #define CL_QUEUE_CAPABILITY_TRANSFER_BUFFER_INTEL (1 << 8) 3410 #define CL_QUEUE_CAPABILITY_TRANSFER_BUFFER_RECT_INTEL (1 << 9) 3411 #define CL_QUEUE_CAPABILITY_MAP_BUFFER_INTEL (1 << 10) 3412 #define CL_QUEUE_CAPABILITY_FILL_BUFFER_INTEL (1 << 11) 3413 #define CL_QUEUE_CAPABILITY_TRANSFER_IMAGE_INTEL (1 << 12) 3414 #define CL_QUEUE_CAPABILITY_MAP_IMAGE_INTEL (1 << 13) 3415 #define CL_QUEUE_CAPABILITY_FILL_IMAGE_INTEL (1 << 14) 3416 #define CL_QUEUE_CAPABILITY_TRANSFER_BUFFER_IMAGE_INTEL (1 << 15) 3417 #define CL_QUEUE_CAPABILITY_TRANSFER_IMAGE_BUFFER_INTEL (1 << 16) 3418 #define CL_QUEUE_CAPABILITY_MARKER_INTEL (1 << 24) 3419 #define CL_QUEUE_CAPABILITY_BARRIER_INTEL (1 << 25) 3420 #define CL_QUEUE_CAPABILITY_KERNEL_INTEL (1 << 26) 3421 3422 /*************************************************************** 3423 * cl_intel_queue_no_sync_operations 3424 ***************************************************************/ 3425 #define cl_intel_queue_no_sync_operations 1 3426 #define CL_INTEL_QUEUE_NO_SYNC_OPERATIONS_EXTENSION_NAME \ 3427 "cl_intel_queue_no_sync_operations" 3428 3429 /* cl_command_queue_properties */ 3430 #define CL_QUEUE_NO_SYNC_OPERATIONS_INTEL (1 << 29) 3431 3432 /*************************************************************** 3433 * cl_intel_sharing_format_query 3434 ***************************************************************/ 3435 #define cl_intel_sharing_format_query 1 3436 #define CL_INTEL_SHARING_FORMAT_QUERY_EXTENSION_NAME \ 3437 "cl_intel_sharing_format_query" 3438 3439 /*************************************************************** 3440 * cl_ext_image_requirements_info 3441 ***************************************************************/ 3442 #if defined(CL_VERSION_3_0) 3443 3444 #define cl_ext_image_requirements_info 1 3445 #define CL_EXT_IMAGE_REQUIREMENTS_INFO_EXTENSION_NAME \ 3446 "cl_ext_image_requirements_info" 3447 3448 /* Types */ 3449 typedef cl_uint cl_image_requirements_info_ext; 3450 3451 /* cl_image_requirements_info_ext */ 3452 #define CL_IMAGE_REQUIREMENTS_BASE_ADDRESS_ALIGNMENT_EXT 0x1292 3453 #define CL_IMAGE_REQUIREMENTS_ROW_PITCH_ALIGNMENT_EXT 0x1290 3454 #define CL_IMAGE_REQUIREMENTS_SIZE_EXT 0x12B2 3455 #define CL_IMAGE_REQUIREMENTS_MAX_WIDTH_EXT 0x12B3 3456 #define CL_IMAGE_REQUIREMENTS_MAX_HEIGHT_EXT 0x12B4 3457 #define CL_IMAGE_REQUIREMENTS_MAX_DEPTH_EXT 0x12B5 3458 #define CL_IMAGE_REQUIREMENTS_MAX_ARRAY_SIZE_EXT 0x12B6 3459 3460 /* Enqueued Commands APIs */ 3461 3462 typedef cl_int CL_API_CALL 3463 clGetImageRequirementsInfoEXT_t( 3464 cl_context context, 3465 const cl_mem_properties* properties, 3466 cl_mem_flags flags, 3467 const cl_image_format* image_format, 3468 const cl_image_desc* image_desc, 3469 cl_image_requirements_info_ext param_name, 3470 size_t param_value_size, 3471 void* param_value, 3472 size_t* param_value_size_ret); 3473 3474 typedef clGetImageRequirementsInfoEXT_t * 3475 clGetImageRequirementsInfoEXT_fn CL_API_SUFFIX__VERSION_3_0; 3476 3477 #if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) 3478 3479 extern CL_API_ENTRY cl_int CL_API_CALL 3480 clGetImageRequirementsInfoEXT( 3481 cl_context context, 3482 const cl_mem_properties* properties, 3483 cl_mem_flags flags, 3484 const cl_image_format* image_format, 3485 const cl_image_desc* image_desc, 3486 cl_image_requirements_info_ext param_name, 3487 size_t param_value_size, 3488 void* param_value, 3489 size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_3_0; 3490 3491 #endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ 3492 3493 #endif /* defined(CL_VERSION_3_0) */ 3494 3495 /*************************************************************** 3496 * cl_ext_image_from_buffer 3497 ***************************************************************/ 3498 #if defined(CL_VERSION_3_0) 3499 3500 #define cl_ext_image_from_buffer 1 3501 #define CL_EXT_IMAGE_FROM_BUFFER_EXTENSION_NAME \ 3502 "cl_ext_image_from_buffer" 3503 3504 /* cl_image_requirements_info_ext */ 3505 #define CL_IMAGE_REQUIREMENTS_SLICE_PITCH_ALIGNMENT_EXT 0x1291 3506 3507 #endif /* defined(CL_VERSION_3_0) */ 3508 3509 /*************************************************************** 3510 * cl_loader_info 3511 ***************************************************************/ 3512 #define cl_loader_info 1 3513 #define CL_LOADER_INFO_EXTENSION_NAME \ 3514 "cl_loader_info" 3515 3516 typedef cl_uint cl_icdl_info; 3517 3518 /* cl_icdl_info */ 3519 #define CL_ICDL_OCL_VERSION 1 3520 #define CL_ICDL_VERSION 2 3521 #define CL_ICDL_NAME 3 3522 #define CL_ICDL_VENDOR 4 3523 3524 3525 typedef cl_int CL_API_CALL 3526 clGetICDLoaderInfoOCLICD_t( 3527 cl_icdl_info param_name, 3528 size_t param_value_size, 3529 void* param_value, 3530 size_t* param_value_size_ret); 3531 3532 typedef clGetICDLoaderInfoOCLICD_t * 3533 clGetICDLoaderInfoOCLICD_fn ; 3534 3535 #if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) 3536 3537 extern CL_API_ENTRY cl_int CL_API_CALL 3538 clGetICDLoaderInfoOCLICD( 3539 cl_icdl_info param_name, 3540 size_t param_value_size, 3541 void* param_value, 3542 size_t* param_value_size_ret) ; 3543 3544 #endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ 3545 3546 /*************************************************************** 3547 * cl_khr_depth_images 3548 ***************************************************************/ 3549 #define cl_khr_depth_images 1 3550 #define CL_KHR_DEPTH_IMAGES_EXTENSION_NAME \ 3551 "cl_khr_depth_images" 3552 3553 #if !defined(CL_VERSION_2_0) 3554 /* cl_channel_order - defined in CL.h for OpenCL 2.0 and newer */ 3555 #define CL_DEPTH 0x10BD 3556 3557 #endif /* !defined(CL_VERSION_2_0) */ 3558 3559 /*************************************************************** 3560 * cl_ext_float_atomics 3561 ***************************************************************/ 3562 #define cl_ext_float_atomics 1 3563 #define CL_EXT_FLOAT_ATOMICS_EXTENSION_NAME \ 3564 "cl_ext_float_atomics" 3565 3566 typedef cl_bitfield cl_device_fp_atomic_capabilities_ext; 3567 3568 /* cl_device_fp_atomic_capabilities_ext */ 3569 #define CL_DEVICE_GLOBAL_FP_ATOMIC_LOAD_STORE_EXT (1 << 0) 3570 #define CL_DEVICE_GLOBAL_FP_ATOMIC_ADD_EXT (1 << 1) 3571 #define CL_DEVICE_GLOBAL_FP_ATOMIC_MIN_MAX_EXT (1 << 2) 3572 #define CL_DEVICE_LOCAL_FP_ATOMIC_LOAD_STORE_EXT (1 << 16) 3573 #define CL_DEVICE_LOCAL_FP_ATOMIC_ADD_EXT (1 << 17) 3574 #define CL_DEVICE_LOCAL_FP_ATOMIC_MIN_MAX_EXT (1 << 18) 3575 3576 /* cl_device_info */ 3577 #define CL_DEVICE_SINGLE_FP_ATOMIC_CAPABILITIES_EXT 0x4231 3578 #define CL_DEVICE_DOUBLE_FP_ATOMIC_CAPABILITIES_EXT 0x4232 3579 #define CL_DEVICE_HALF_FP_ATOMIC_CAPABILITIES_EXT 0x4233 3580 3581 /*************************************************************** 3582 * cl_intel_create_mem_object_properties 3583 ***************************************************************/ 3584 #define cl_intel_create_mem_object_properties 1 3585 #define CL_INTEL_CREATE_MEM_OBJECT_PROPERTIES_EXTENSION_NAME \ 3586 "cl_intel_create_mem_object_properties" 3587 3588 /* cl_mem_properties */ 3589 #define CL_MEM_LOCALLY_UNCACHED_RESOURCE_INTEL 0x4218 3590 #define CL_MEM_DEVICE_ID_INTEL 0x4219 3591 3592 /*************************************************************** 3593 * cl_pocl_content_size 3594 ***************************************************************/ 3595 #define cl_pocl_content_size 1 3596 #define CL_POCL_CONTENT_SIZE_EXTENSION_NAME \ 3597 "cl_pocl_content_size" 3598 3599 3600 typedef cl_int CL_API_CALL 3601 clSetContentSizeBufferPoCL_t( 3602 cl_mem buffer, 3603 cl_mem content_size_buffer); 3604 3605 typedef clSetContentSizeBufferPoCL_t * 3606 clSetContentSizeBufferPoCL_fn CL_API_SUFFIX__VERSION_1_0; 3607 3608 #if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) 3609 3610 extern CL_API_ENTRY cl_int CL_API_CALL 3611 clSetContentSizeBufferPoCL( 3612 cl_mem buffer, 3613 cl_mem content_size_buffer) CL_API_SUFFIX__VERSION_1_0; 3614 3615 #endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ 3616 3617 /*************************************************************** 3618 * cl_ext_image_raw10_raw12 3619 ***************************************************************/ 3620 #define cl_ext_image_raw10_raw12 1 3621 #define CL_EXT_IMAGE_RAW10_RAW12_EXTENSION_NAME \ 3622 "cl_ext_image_raw10_raw12" 3623 3624 /* cl_channel_type */ 3625 #define CL_UNSIGNED_INT_RAW10_EXT 0x10E3 3626 #define CL_UNSIGNED_INT_RAW12_EXT 0x10E4 3627 3628 /*************************************************************** 3629 * cl_khr_3d_image_writes 3630 ***************************************************************/ 3631 #define cl_khr_3d_image_writes 1 3632 #define CL_KHR_3D_IMAGE_WRITES_EXTENSION_NAME \ 3633 "cl_khr_3d_image_writes" 3634 3635 /*************************************************************** 3636 * cl_khr_async_work_group_copy_fence 3637 ***************************************************************/ 3638 #define cl_khr_async_work_group_copy_fence 1 3639 #define CL_KHR_ASYNC_WORK_GROUP_COPY_FENCE_EXTENSION_NAME \ 3640 "cl_khr_async_work_group_copy_fence" 3641 3642 /*************************************************************** 3643 * cl_khr_byte_addressable_store 3644 ***************************************************************/ 3645 #define cl_khr_byte_addressable_store 1 3646 #define CL_KHR_BYTE_ADDRESSABLE_STORE_EXTENSION_NAME \ 3647 "cl_khr_byte_addressable_store" 3648 3649 /*************************************************************** 3650 * cl_khr_device_enqueue_local_arg_types 3651 ***************************************************************/ 3652 #define cl_khr_device_enqueue_local_arg_types 1 3653 #define CL_KHR_DEVICE_ENQUEUE_LOCAL_ARG_TYPES_EXTENSION_NAME \ 3654 "cl_khr_device_enqueue_local_arg_types" 3655 3656 /*************************************************************** 3657 * cl_khr_expect_assume 3658 ***************************************************************/ 3659 #define cl_khr_expect_assume 1 3660 #define CL_KHR_EXPECT_ASSUME_EXTENSION_NAME \ 3661 "cl_khr_expect_assume" 3662 3663 /*************************************************************** 3664 * cl_khr_extended_async_copies 3665 ***************************************************************/ 3666 #define cl_khr_extended_async_copies 1 3667 #define CL_KHR_EXTENDED_ASYNC_COPIES_EXTENSION_NAME \ 3668 "cl_khr_extended_async_copies" 3669 3670 /*************************************************************** 3671 * cl_khr_extended_bit_ops 3672 ***************************************************************/ 3673 #define cl_khr_extended_bit_ops 1 3674 #define CL_KHR_EXTENDED_BIT_OPS_EXTENSION_NAME \ 3675 "cl_khr_extended_bit_ops" 3676 3677 /*************************************************************** 3678 * cl_khr_global_int32_base_atomics 3679 ***************************************************************/ 3680 #define cl_khr_global_int32_base_atomics 1 3681 #define CL_KHR_GLOBAL_INT32_BASE_ATOMICS_EXTENSION_NAME \ 3682 "cl_khr_global_int32_base_atomics" 3683 3684 /*************************************************************** 3685 * cl_khr_global_int32_extended_atomics 3686 ***************************************************************/ 3687 #define cl_khr_global_int32_extended_atomics 1 3688 #define CL_KHR_GLOBAL_INT32_EXTENDED_ATOMICS_EXTENSION_NAME \ 3689 "cl_khr_global_int32_extended_atomics" 3690 3691 /*************************************************************** 3692 * cl_khr_int64_base_atomics 3693 ***************************************************************/ 3694 #define cl_khr_int64_base_atomics 1 3695 #define CL_KHR_INT64_BASE_ATOMICS_EXTENSION_NAME \ 3696 "cl_khr_int64_base_atomics" 3697 3698 /*************************************************************** 3699 * cl_khr_int64_extended_atomics 3700 ***************************************************************/ 3701 #define cl_khr_int64_extended_atomics 1 3702 #define CL_KHR_INT64_EXTENDED_ATOMICS_EXTENSION_NAME \ 3703 "cl_khr_int64_extended_atomics" 3704 3705 /*************************************************************** 3706 * cl_khr_kernel_clock 3707 ***************************************************************/ 3708 #define cl_khr_kernel_clock 1 3709 #define CL_KHR_KERNEL_CLOCK_EXTENSION_NAME \ 3710 "cl_khr_kernel_clock" 3711 3712 /* cl_device_info */ 3713 #define CL_DEVICE_KERNEL_CLOCK_CAPABILITIES_KHR 0x1076 3714 3715 typedef cl_bitfield cl_device_kernel_clock_capabilities_khr; 3716 3717 /* cl_device_kernel_clock_capabilities_khr */ 3718 #define CL_DEVICE_KERNEL_CLOCK_SCOPE_DEVICE_KHR (1 << 0) 3719 #define CL_DEVICE_KERNEL_CLOCK_SCOPE_WORK_GROUP_KHR (1 << 1) 3720 #define CL_DEVICE_KERNEL_CLOCK_SCOPE_SUB_GROUP_KHR (1 << 2) 3721 3722 /*************************************************************** 3723 * cl_khr_local_int32_base_atomics 3724 ***************************************************************/ 3725 #define cl_khr_local_int32_base_atomics 1 3726 #define CL_KHR_LOCAL_INT32_BASE_ATOMICS_EXTENSION_NAME \ 3727 "cl_khr_local_int32_base_atomics" 3728 3729 /*************************************************************** 3730 * cl_khr_local_int32_extended_atomics 3731 ***************************************************************/ 3732 #define cl_khr_local_int32_extended_atomics 1 3733 #define CL_KHR_LOCAL_INT32_EXTENDED_ATOMICS_EXTENSION_NAME \ 3734 "cl_khr_local_int32_extended_atomics" 3735 3736 /*************************************************************** 3737 * cl_khr_mipmap_image_writes 3738 ***************************************************************/ 3739 #define cl_khr_mipmap_image_writes 1 3740 #define CL_KHR_MIPMAP_IMAGE_WRITES_EXTENSION_NAME \ 3741 "cl_khr_mipmap_image_writes" 3742 3743 /*************************************************************** 3744 * cl_khr_select_fprounding_mode 3745 ***************************************************************/ 3746 #define cl_khr_select_fprounding_mode 1 3747 #define CL_KHR_SELECT_FPROUNDING_MODE_EXTENSION_NAME \ 3748 "cl_khr_select_fprounding_mode" 3749 3750 /*************************************************************** 3751 * cl_khr_spirv_extended_debug_info 3752 ***************************************************************/ 3753 #define cl_khr_spirv_extended_debug_info 1 3754 #define CL_KHR_SPIRV_EXTENDED_DEBUG_INFO_EXTENSION_NAME \ 3755 "cl_khr_spirv_extended_debug_info" 3756 3757 /*************************************************************** 3758 * cl_khr_spirv_linkonce_odr 3759 ***************************************************************/ 3760 #define cl_khr_spirv_linkonce_odr 1 3761 #define CL_KHR_SPIRV_LINKONCE_ODR_EXTENSION_NAME \ 3762 "cl_khr_spirv_linkonce_odr" 3763 3764 /*************************************************************** 3765 * cl_khr_spirv_no_integer_wrap_decoration 3766 ***************************************************************/ 3767 #define cl_khr_spirv_no_integer_wrap_decoration 1 3768 #define CL_KHR_SPIRV_NO_INTEGER_WRAP_DECORATION_EXTENSION_NAME \ 3769 "cl_khr_spirv_no_integer_wrap_decoration" 3770 3771 /*************************************************************** 3772 * cl_khr_srgb_image_writes 3773 ***************************************************************/ 3774 #define cl_khr_srgb_image_writes 1 3775 #define CL_KHR_SRGB_IMAGE_WRITES_EXTENSION_NAME \ 3776 "cl_khr_srgb_image_writes" 3777 3778 /*************************************************************** 3779 * cl_khr_subgroup_ballot 3780 ***************************************************************/ 3781 #define cl_khr_subgroup_ballot 1 3782 #define CL_KHR_SUBGROUP_BALLOT_EXTENSION_NAME \ 3783 "cl_khr_subgroup_ballot" 3784 3785 /*************************************************************** 3786 * cl_khr_subgroup_clustered_reduce 3787 ***************************************************************/ 3788 #define cl_khr_subgroup_clustered_reduce 1 3789 #define CL_KHR_SUBGROUP_CLUSTERED_REDUCE_EXTENSION_NAME \ 3790 "cl_khr_subgroup_clustered_reduce" 3791 3792 /*************************************************************** 3793 * cl_khr_subgroup_extended_types 3794 ***************************************************************/ 3795 #define cl_khr_subgroup_extended_types 1 3796 #define CL_KHR_SUBGROUP_EXTENDED_TYPES_EXTENSION_NAME \ 3797 "cl_khr_subgroup_extended_types" 3798 3799 /*************************************************************** 3800 * cl_khr_subgroup_non_uniform_arithmetic 3801 ***************************************************************/ 3802 #define cl_khr_subgroup_non_uniform_arithmetic 1 3803 #define CL_KHR_SUBGROUP_NON_UNIFORM_ARITHMETIC_EXTENSION_NAME \ 3804 "cl_khr_subgroup_non_uniform_arithmetic" 3805 3806 /*************************************************************** 3807 * cl_khr_subgroup_non_uniform_vote 3808 ***************************************************************/ 3809 #define cl_khr_subgroup_non_uniform_vote 1 3810 #define CL_KHR_SUBGROUP_NON_UNIFORM_VOTE_EXTENSION_NAME \ 3811 "cl_khr_subgroup_non_uniform_vote" 3812 3813 /*************************************************************** 3814 * cl_khr_subgroup_rotate 3815 ***************************************************************/ 3816 #define cl_khr_subgroup_rotate 1 3817 #define CL_KHR_SUBGROUP_ROTATE_EXTENSION_NAME \ 3818 "cl_khr_subgroup_rotate" 3819 3820 /*************************************************************** 3821 * cl_khr_subgroup_shuffle 3822 ***************************************************************/ 3823 #define cl_khr_subgroup_shuffle 1 3824 #define CL_KHR_SUBGROUP_SHUFFLE_EXTENSION_NAME \ 3825 "cl_khr_subgroup_shuffle" 3826 3827 /*************************************************************** 3828 * cl_khr_subgroup_shuffle_relative 3829 ***************************************************************/ 3830 #define cl_khr_subgroup_shuffle_relative 1 3831 #define CL_KHR_SUBGROUP_SHUFFLE_RELATIVE_EXTENSION_NAME \ 3832 "cl_khr_subgroup_shuffle_relative" 3833 3834 /*************************************************************** 3835 * cl_khr_work_group_uniform_arithmetic 3836 ***************************************************************/ 3837 #define cl_khr_work_group_uniform_arithmetic 1 3838 #define CL_KHR_WORK_GROUP_UNIFORM_ARITHMETIC_EXTENSION_NAME \ 3839 "cl_khr_work_group_uniform_arithmetic" 3840 3841 /*************************************************************** 3842 * cl_img_cancel_command 3843 ***************************************************************/ 3844 #define cl_img_cancel_command 1 3845 #define CL_IMG_CANCEL_COMMAND_EXTENSION_NAME \ 3846 "cl_img_cancel_command" 3847 3848 /* Error codes */ 3849 #define CL_CANCELLED_IMG -1126 3850 3851 3852 typedef cl_int CL_API_CALL 3853 clCancelCommandsIMG_t( 3854 const cl_event* event_list, 3855 size_t num_events_in_list); 3856 3857 typedef clCancelCommandsIMG_t * 3858 clCancelCommandsIMG_fn ; 3859 3860 #if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) 3861 3862 extern CL_API_ENTRY cl_int CL_API_CALL 3863 clCancelCommandsIMG( 3864 const cl_event* event_list, 3865 size_t num_events_in_list) ; 3866 3867 #endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ 3868 3869 #ifdef __cplusplus 3870 } 3871 #endif 3872 3873 #endif /* OPENCL_CL_EXT_H_ */ 3874