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