blob: 3b47e039f7755bc984c8c9efeecbcdb2ac43fd83 [file] [edit]
// Copyright 2017-2024 The Khronos Group. This work is licensed under a
// Creative Commons Attribution 4.0 International License; see
// http://creativecommons.org/licenses/by/4.0/
// The API and C specifications are published in the same directory as the
// extension specification, so only the relative URL is required.
:APISpecURL: OpenCL_API.html
[appendix]
[[quick-reference]]
== Quick Reference
Each extension in this table includes a link to the corresponding appendix
in the OpenCL 3.0 API Specification, which provides a fuller description and
references to the actual extension specification language in the API and C
Language Specifications.
// Editors note: Please keep this table in alphabetical order!
[cols="5,4,2",options="header",]
|====
| Extension Name and Link
| Brief Description
| Status
| [[cl_khr_3d_image_writes]] link:{APISpecURL}#cl_khr_3d_image_writes[`cl_khr_3d_image_writes`]
| Write to 3D images
| Core Feature in OpenCL 2.0
| [[cl_khr_async_work_group_copy_fence]] link:{APISpecURL}#cl_khr_async_work_group_copy_fence[`cl_khr_async_work_group_copy_fence`]
| Asynchronous Copy Fences
| Extension
| [[cl_khr_byte_addressable_store]] link:{APISpecURL}#cl_khr_byte_addressable_store[`cl_khr_byte_addressable_store`]
| Read and write from 8-bit and 16-bit pointers
| Core Feature in OpenCL 1.1
| [[cl_khr_command_buffer]] link:{APISpecURL}#cl_khr_command_buffer[`cl_khr_command_buffer`]
| Record and Replay Commands
| Provisional Extension
| [[cl_khr_command_buffer_multi_device]] link:{APISpecURL}#cl_khr_command_buffer_multi_device[`cl_khr_command_buffer_multi_device`]
| Allow a command-buffer to contain commands targeting different devices
| Provisional Extension
| [[cl_khr_command_buffer_mutable_dispatch]] link:{APISpecURL}#cl_khr_command_buffer_mutable_dispatch[`cl_khr_command_buffer_mutable_dispatch`]
| Modify kernel execution commands between enqueues of a command-buffer
| Provisional Extension
| [[cl_khr_create_command_queue]] link:{APISpecURL}#cl_khr_create_command_queue[`cl_khr_create_command_queue`]
| API to Create Command-Queues with Properties
| Core Feature in OpenCL 2.0
| [[cl_khr_d3d10_sharing]] link:{APISpecURL}#cl_khr_d3d10_sharing[`cl_khr_d3d10_sharing`]
| Share Direct3D 10 Buffers and Textures with OpenCL
| Extension
| [[cl_khr_d3d11_sharing]] link:{APISpecURL}#cl_khr_d3d11_sharing[`cl_khr_d3d11_sharing`]
| Share Direct3D 11 Buffers and Textures with OpenCL
| Extension
| [[cl_khr_depth_images]] link:{APISpecURL}#cl_khr_depth_images[`cl_khr_depth_images`]
| Single Channel Depth Images
| Core Feature in OpenCL 2.0
| [[cl_khr_device_enqueue_local_arg_types]] link:{APISpecURL}#cl_khr_device_enqueue_local_arg_types[`cl_khr_device_enqueue_local_arg_types`]
| Pass Non-Void Local Pointers to Child Kernels
| Extension
| [[cl_khr_device_uuid]] link:{APISpecURL}#cl_khr_device_uuid[`cl_khr_device_uuid`]
| Unique Device and Driver Identifier Queries
| Extension
| [[cl_khr_dx9_media_sharing]] link:{APISpecURL}#cl_khr_dx9_media_sharing[`cl_khr_dx9_media_sharing`]
| Share DirectX 9 Media Surfaces with OpenCL
| Extension
| [[cl_khr_egl_event]] link:{APISpecURL}#cl_khr_egl_event[`cl_khr_egl_event`]
| Share EGL Sync Objects with OpenCL
| Extension
| [[cl_khr_egl_image]] link:{APISpecURL}#cl_khr_egl_image[`cl_khr_egl_image`]
| Share EGL Images with OpenCL
| Extension
| [[cl_khr_extended_async_copies]] link:{APISpecURL}#cl_khr_extended_async_copies[`cl_khr_extended_async_copies`]
| 2D and 3D Async Copies
| Extension
| [[cl_khr_extended_bit_ops]] link:{APISpecURL}#cl_khr_extended_bit_ops[`cl_khr_extended_bit_ops`]
| Bit Insert, Extract, and Reverse Operations
| Extension
| [[cl_khr_extended_versioning]] link:{APISpecURL}#cl_khr_extended_versioning[`cl_khr_extended_versioning`]
| Extend versioning of platform, devices, extensions, etc.
| Core Feature in OpenCL 3.0 (with minor changes)
| [[cl_khr_external_memory]] link:{APISpecURL}#cl_khr_external_memory[`cl_khr_external_memory`]
| Common Functionality for External Memory Sharing
| Provisional Extension
| [[cl_khr_external_memory_dma_buf]] link:{APISpecURL}#cl_khr_external_memory[`cl_khr_external_memory_dma_buf`]
| dma_buf External Memory Handles
| Provisional Extension
| [[cl_khr_external_memory_dx]] link:{APISpecURL}#cl_khr_external_memory[`cl_khr_external_memory_dx`]
| Direct3D 11 and 12 External Memory Handles
| Provisional Extension
| [[cl_khr_external_memory_opaque_fd]] link:{APISpecURL}#cl_khr_external_memory[`cl_khr_external_memory_opaque_fd`]
| Opaque File Descriptor External Memory Handles
| Provisional Extension
| [[cl_khr_external_memory_win32]] link:{APISpecURL}#cl_khr_external_memory[`cl_khr_external_memory_win32`]
| NT Handle External Memory Handles
| Provisional Extension
| [[cl_khr_expect_assume]] link:{APISpecURL}#cl_khr_expect_assume[`cl_khr_expect_assume`]
| Kernel Optimization Hints
| Extension
| [[cl_khr_external_semaphore]] link:{APISpecURL}#cl_khr_external_semaphore[`cl_khr_external_semaphore`]
| Common Functionality for External Semaphore Sharing
| Provisional Extension
| [[cl_khr_external_semaphore_dx_fence]] link:{APISpecURL}#cl_khr_external_semaphore[`cl_khr_external_semaphore_dx_fence`]
| Direct3D 12 External Semaphore Handles
| Provisional Extension
| [[cl_khr_external_semaphore_opaque_fd]] link:{APISpecURL}#cl_khr_external_semaphore[`cl_khr_external_semaphore_opaque_fd`]
| Opaque File Descriptor External Semaphore Handles
| Provisional Extension
| [[cl_khr_external_semaphore_sync_fd]] link:{APISpecURL}#cl_khr_external_semaphore[`cl_khr_external_semaphore_sync_fd`]
| Sync FD External Semaphore Handles
| Provisional Extension
| [[cl_khr_external_semaphore_win32]] link:{APISpecURL}#cl_khr_external_semaphore[`cl_khr_external_semaphore_win32`]
| NT Handle External Semaphore Handles
| Provisional Extension
| [[cl_khr_fp16]] link:{APISpecURL}#cl_khr_fp16[`cl_khr_fp16`]
| Operations on 16-bit Floating-Point Values
| Extension
| [[cl_khr_fp64]] link:{APISpecURL}#cl_khr_fp64[`cl_khr_fp64`]
| Operations on 64-bit Floating-Point Values
| Optional Core Feature in OpenCL 1.2
| [[cl_khr_gl_depth_images]] link:{APISpecURL}#cl_khr_gl_depth_images[`cl_khr_gl_depth_images`]
| Share OpenGL Depth Images with OpenCL
| Extension
| [[cl_khr_gl_event]] link:{APISpecURL}#cl_khr_gl_event[`cl_khr_gl_event`]
| Share OpenGL Fence Sync Objects with OpenCL
| Extension
| [[cl_khr_gl_msaa_sharing]] link:{APISpecURL}#cl_khr_gl_msaa_sharing[`cl_khr_gl_msaa_sharing`]
| Share OpenGL MSAA Textures with OpenCL
| Extension
| [[cl_khr_gl_sharing]] link:{APISpecURL}#cl_khr_gl_sharing[`cl_khr_gl_sharing`]
| Sharing OpenGL Buffers and Textures with OpenCL
| Extension
| [[cl_khr_global_int32_base_atomics]] link:{APISpecURL}#cl_khr_int32_atomics[`cl_khr_global_int32_base_atomics`]
| Basic Atomic Operations on 32-bit Integers in Global Memory
| Core Feature in OpenCL 1.1
| [[cl_khr_global_int32_extended_atomics]] link:{APISpecURL}#cl_khr_int32_atomics[`cl_khr_global_int32_extended_atomics`]
| Extended Atomic Operations on 32-bit Integers in Global Memory
| Core Feature in OpenCL 1.1
| [[cl_khr_icd]] link:{APISpecURL}#cl_khr_icd[`cl_khr_icd`]
| Installable Client Drivers
| Extension
| [[cl_khr_il_program]] link:{APISpecURL}#cl_khr_il_program[`cl_khr_il_program`]
| Support for Intermediate Language (IL) Programs (SPIR-V)
| Core Feature in OpenCL 2.1
| [[cl_khr_image2d_from_buffer]] link:{APISpecURL}#cl_khr_image2d_from_buffer[`cl_khr_image2d_from_buffer`]
| Create 2D Images from Buffers
| Core Feature in OpenCL 2.0
| [[cl_khr_initialize_memory]] link:{APISpecURL}#cl_khr_initialize_memory[`cl_khr_initialize_memory`]
| Initialize Local and Private Memory on Allocation
| Extension
| [[cl_khr_int64_base_atomics]] link:{APISpecURL}#cl_khr_int64_atomics[`cl_khr_int64_base_atomics`]
| Basic Atomic Operations on 64-bit Integers in Global and Local Memory
| Extension
| [[cl_khr_int64_extended_atomics]] link:{APISpecURL}#cl_khr_int64_atomics[`cl_khr_int64_extended_atomics`]
| Extended Atomic Operations on 64-bit Integers in Global and Local Memory
| Extension
| [[cl_khr_local_int32_base_atomics]] link:{APISpecURL}#cl_khr_int32_atomics[`cl_khr_local_int32_base_atomics`]
| Basic Atomic Operations on 32-bit Integers in Local Memory
| Core Feature in OpenCL 1.1
| [[cl_khr_local_int32_extended_atomics]] link:{APISpecURL}#cl_khr_int32_atomics[`cl_khr_local_int32_extended_atomics`]
| Extended Atomic Operations on 32-bit Integers in Local Memory
| Core Feature in OpenCL 1.1
| [[cl_khr_integer_dot_product]] link:{APISpecURL}#cl_khr_integer_dot_product[`cl_khr_integer_dot_product`]
| Integer dot product operations
| Extension
| [[cl_khr_mipmap_image]] link:{APISpecURL}#cl_khr_mipmap_image[`cl_khr_mipmap_image`]
| Create and Use Images with Mipmaps
| Extension
| [[cl_khr_pci_bus_info]] link:{APISpecURL}#cl_khr_pci_bus_info[`cl_khr_pci_bus_info`]
| Query PCI Bus Information for an OpenCL Device
| Extension
| [[cl_khr_priority_hints]] link:{APISpecURL}#cl_khr_priority_hints[`cl_khr_priority_hints`]
| Create Command-Queues with Different Priorities
| Extension
| [[cl_khr_select_fprounding_mode]] link:{APISpecURL}#cl_khr_select_fprounding_mode[`cl_khr_select_fprounding_mode`]
| Set the Current Kernel Rounding Mode
| DEPRECATED
| [[cl_khr_semaphore]] link:{APISpecURL}#cl_khr_semaphore[`cl_khr_semaphore`]
| Semaphore Synchronization Primitives
| Provisional Extension
| [[cl_khr_spir]] link:{APISpecURL}#cl_khr_spir[`cl_khr_spir`]
| Standard Portable Intermediate Representation Programs
| Extension, Superseded by IL Programs / SPIR-V
| [[cl_khr_srgb_image_writes]] link:{APISpecURL}#cl_khr_srgb_image_writes[`cl_khr_srgb_image_writes`]
| Write to sRGB Images
| Extension
| [[cl_khr_subgroups]] link:{APISpecURL}#cl_khr_subgroups[`cl_khr_subgroups`]
| Sub-Groupings of Work Items
| Core Feature in OpenCL 2.1 (with minor changes)
| [[cl_khr_subgroup_ballot]] link:{APISpecURL}#cl_khr_subgroup_ballot[`cl_khr_subgroup_ballot`]
| Exchange Ballots Among Sub-Groupings of Work Items
| Extension
| [[cl_khr_subgroup_clustered_reduce]] link:{APISpecURL}#cl_khr_subgroup_clustered_reduce[`cl_khr_subgroup_clustered_reduce`]
| Clustered Reductions for Sub-Groupings of Work Items
| Extension
| [[cl_khr_subgroup_extended_types]] link:{APISpecURL}#cl_khr_subgroup_extended_types[`cl_khr_subgroup_extended_types`]
| Additional Type Support for Sub-group Functions
| Extension
| [[cl_khr_subgroup_named_barrier]] link:{APISpecURL}#cl_khr_subgroup_named_barrier[`cl_khr_subgroup_named_barrier`]
| Barriers for Subsets of a Work-group
| Extension
| [[cl_khr_subgroup_non_uniform_arithmetic]] link:{APISpecURL}#cl_khr_subgroup_non_uniform_arithmetic[`cl_khr_subgroup_non_uniform_arithmetic`]
| Sub-group Arithmetic Functions in Non-Uniform Control Flow
| Extension
| [[cl_khr_subgroup_non_uniform_vote]] link:{APISpecURL}#cl_khr_subgroup_non_uniform_vote[`cl_khr_subgroup_non_uniform_vote`]
| Hold Votes Among Sub-Groupings of Work Items
| Extension
| [[cl_khr_subgroup_rotate]] link:{APISpecURL}#cl_khr_subgroup_rotate[`cl_khr_subgroup_rotate`]
| Rotation Among Sub-Groupings of Work Items
| Extension
| [[cl_khr_subgroup_shuffle]] link:{APISpecURL}#cl_khr_subgroup_shuffle[`cl_khr_subgroup_shuffle`]
| General-Purpose Shuffles Among Sub-Groupings of Work Items
| Extension
| [[cl_khr_subgroup_shuffle_relative]] link:{APISpecURL}#cl_khr_subgroup_shuffle_relative[`cl_khr_subgroup_shuffle_relative`]
| Relative Shuffles Among Sub-Groupings of Work Items
| Extension
| [[cl_khr_suggested_local_work_size]] link:{APISpecURL}#cl_khr_suggested_local_work_size[`cl_khr_suggested_local_work_size`]
| Query a Suggested Local Work Size
| Extension
| [[cl_khr_terminate_context]] link:{APISpecURL}#cl_khr_terminate_context[`cl_khr_terminate_context`]
| Terminate an OpenCL Context
| Extension
| [[cl_khr_throttle_hints]] link:{APISpecURL}#cl_khr_throttle_hints[`cl_khr_throttle_hints`]
| Create Command-Queues with Different Throttle Policies
| Extension
| [[cl_khr_work_group_uniform_arithmetic]] link:{APISpecURL}#cl_khr_work_group_uniform_arithmetic[`cl_khr_work_group_uniform_arithmetic`]
| Work-group Uniform Arithmetic
| Extension
|====