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