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