diff --git a/api/cl_khr_unified_svm.asciidoc b/api/cl_khr_unified_svm.asciidoc
new file mode 100644
index 000000000..0754b6501
--- /dev/null
+++ b/api/cl_khr_unified_svm.asciidoc
@@ -0,0 +1,101 @@
+// Copyright 2025 The Khronos Group Inc.
+// SPDX-License-Identifier: CC-BY-4.0
+
+include::{generated}/meta/{refprefix}cl_khr_unified_svm.txt[]
+
+=== Other Extension Metadata
+
+*Last Modified Date*::
+ 2025-08-30
+*IP Status*::
+ No known IP claims.
+*Contributors*::
+ - Brice Videau, Argonne National Laboratory
+ - Kévin Petit, Arm Ltd.
+ - Ewan Crawford, Codeplay Software Ltd.
+ - Paul Fradgley, Imagination Technologies
+ - Ben Ashbaugh, Intel
+ - Pekka Jääskeläinen, Intel
+ - Nikhil Joshi, NVIDIA
+ - Balaji Calidas, Qualcomm Technologies Inc.
+
+=== Description
+
+This extension adds additional types of Shared Virtual Memory (SVM) to OpenCL.
+
+The extension is still under development.
+To learn more about the APIs proposed for this extension, or to provide feedback, please visit:
+
+https://github.com/KhronosGroup/OpenCL-Docs/pull/1282
+
+=== New Commands
+
+ * {clSVMAllocWithPropertiesKHR}[[clSVMAllocWithPropertiesKHR]]
+ * {clSVMFreeWithPropertiesKHR}[[clSVMFreeWithPropertiesKHR]]
+ * {clGetSVMPointerInfoKHR}[[clGetSVMPointerInfoKHR]]
+ * {clGetSVMSuggestedTypeIndexKHR}[[clGetSVMSuggestedTypeIndexKHR]]
+
+=== New Types
+
+ * {cl_svm_capabilities_khr_TYPE}
+ * {cl_svm_alloc_properties_khr_TYPE}
+ * {cl_svm_alloc_access_flags_khr_TYPE}
+ * {cl_svm_free_properties_khr_TYPE}
+ * {cl_svm_free_flags_khr_TYPE}
+ * {cl_svm_pointer_info_khr_TYPE}
+
+=== New Enums
+
+ * {cl_platform_info_TYPE}
+ ** {CL_PLATFORM_SVM_TYPE_CAPABILITIES_KHR_ANCHOR}
+ * {cl_device_info_TYPE}
+ ** {CL_DEVICE_SVM_TYPE_CAPABILITIES_KHR_ANCHOR}
+ * {cl_svm_capabilities_khr_TYPE}
+ ** {CL_SVM_CAPABILITY_SINGLE_ADDRESS_SPACE_KHR_ANCHOR}
+ ** {CL_SVM_CAPABILITY_SYSTEM_ALLOCATED_KHR_ANCHOR}
+ ** {CL_SVM_CAPABILITY_DEVICE_OWNED_KHR_ANCHOR}
+ ** {CL_SVM_CAPABILITY_DEVICE_UNASSOCIATED_KHR_ANCHOR}
+ ** {CL_SVM_CAPABILITY_CONTEXT_ACCESS_KHR_ANCHOR}
+ ** {CL_SVM_CAPABILITY_HOST_OWNED_KHR_ANCHOR}
+ ** {CL_SVM_CAPABILITY_HOST_READ_KHR_ANCHOR}
+ ** {CL_SVM_CAPABILITY_HOST_WRITE_KHR_ANCHOR}
+ ** {CL_SVM_CAPABILITY_HOST_MAP_KHR_ANCHOR}
+ ** {CL_SVM_CAPABILITY_DEVICE_READ_KHR_ANCHOR}
+ ** {CL_SVM_CAPABILITY_DEVICE_WRITE_KHR_ANCHOR}
+ ** {CL_SVM_CAPABILITY_DEVICE_ATOMIC_ACCESS_KHR_ANCHOR}
+ ** {CL_SVM_CAPABILITY_CONCURRENT_ACCESS_KHR_ANCHOR}
+ ** {CL_SVM_CAPABILITY_CONCURRENT_ATOMIC_ACCESS_KHR_ANCHOR}
+ ** {CL_SVM_CAPABILITY_INDIRECT_ACCESS_KHR_ANCHOR}
+ * {cl_svm_alloc_properties_khr_TYPE}
+ ** {CL_SVM_ALLOC_ASSOCIATED_DEVICE_HANDLE_KHR_ANCHOR}
+ ** {CL_SVM_ALLOC_ACCESS_FLAGS_KHR_ANCHOR}
+ ** {CL_SVM_ALLOC_ALIGNMENT_KHR_ANCHOR}
+ * {cl_svm_alloc_access_flags_khr_TYPE}
+ ** {CL_SVM_ALLOC_ACCESS_HOST_NOREAD_KHR_ANCHOR}
+ ** {CL_SVM_ALLOC_ACCESS_HOST_NOWRITE_KHR_ANCHOR}
+ ** {CL_SVM_ALLOC_ACCESS_DEVICE_NOREAD_KHR_ANCHOR}
+ ** {CL_SVM_ALLOC_ACCESS_DEVICE_NOWRITE_KHR_ANCHOR}
+ * {cl_svm_pointer_info_khr_TYPE}
+ ** {CL_SVM_INFO_TYPE_INDEX_KHR_ANCHOR}
+ ** {CL_SVM_INFO_CAPABILITIES_KHR_ANCHOR}
+ ** {CL_SVM_INFO_PROPERTIES_KHR_ANCHOR}
+ ** {CL_SVM_INFO_ACCESS_FLAGS_KHR_ANCHOR}
+ ** {CL_SVM_INFO_BASE_PTR_KHR_ANCHOR}
+ ** {CL_SVM_INFO_SIZE_KHR_ANCHOR}
+ ** {CL_SVM_INFO_ASSOCIATED_DEVICE_HANDLE_KHR_ANCHOR}
+ * {cl_kernel_exec_info_TYPE}
+ ** {CL_KERNEL_EXEC_INFO_SVM_INDIRECT_ACCESS_KHR_ANCHOR}
+
+=== SVM Type Convenience Macros
+
+ * {CL_SVM_TYPE_MACRO_COARSE_GRAIN_BUFFER_KHR_ANCHOR}
+ * {CL_SVM_TYPE_MACRO_FINE_GRAIN_BUFFER_KHR_ANCHOR}
+ * {CL_SVM_TYPE_MACRO_DEVICE_KHR_ANCHOR}
+ * {CL_SVM_TYPE_MACRO_HOST_KHR_ANCHOR}
+ * {CL_SVM_TYPE_MACRO_SINGLE_DEVICE_SHARED_KHR_ANCHOR}
+ * {CL_SVM_TYPE_MACRO_SYSTEM_KHR_ANCHOR}
+
+=== Version History
+
+ * Revision 0.9.0, 2025-08-30
+ ** Initial revision incorporated into the main specification (experimental).
diff --git a/xml/cl.xml b/xml/cl.xml
index 66210fcc9..4b83de45d 100644
--- a/xml/cl.xml
+++ b/xml/cl.xml
@@ -258,6 +258,12 @@ server's OpenCL/api-docs repository.
typedef cl_bitfield cl_device_kernel_clock_capabilities_khr;
typedef cl_ulong cl_mem_device_address_ext;
typedef cl_uint cl_perf_hint_qcom;
+ typedef cl_bitfield cl_svm_capabilities_khr;
+ typedef cl_properties cl_svm_alloc_properties_khr;
+ typedef cl_bitfield cl_svm_alloc_access_flags_khr;
+ typedef cl_properties cl_svm_free_properties_khr;
+ typedef cl_bitfield cl_svm_free_flags_khr;
+ typedef cl_uint cl_svm_pointer_info_khr;
Structure types
@@ -394,6 +400,69 @@ server's OpenCL/api-docs repository.
#endif
+ #define CL_SVM_TYPE_MACRO_COARSE_GRAIN_BUFFER_KHR \
+ (CL_SVM_CAPABILITY_SINGLE_ADDRESS_SPACE_KHR | \
+ CL_SVM_CAPABILITY_DEVICE_UNASSOCIATED_KHR | \
+ CL_SVM_CAPABILITY_CONTEXT_ACCESS_KHR | \
+ CL_SVM_CAPABILITY_HOST_MAP_KHR | \
+ CL_SVM_CAPABILITY_DEVICE_READ_KHR | \
+ CL_SVM_CAPABILITY_DEVICE_WRITE_KHR | \
+ CL_SVM_CAPABILITY_DEVICE_ATOMIC_ACCESS_KHR)
+
+ #define CL_SVM_TYPE_MACRO_FINE_GRAIN_BUFFER_KHR \
+ (CL_SVM_CAPABILITY_SINGLE_ADDRESS_SPACE_KHR | \
+ CL_SVM_CAPABILITY_DEVICE_UNASSOCIATED_KHR | \
+ CL_SVM_CAPABILITY_CONTEXT_ACCESS_KHR | \
+ CL_SVM_CAPABILITY_HOST_READ_KHR | \
+ CL_SVM_CAPABILITY_HOST_WRITE_KHR | \
+ CL_SVM_CAPABILITY_HOST_MAP_KHR | \
+ CL_SVM_CAPABILITY_DEVICE_READ_KHR | \
+ CL_SVM_CAPABILITY_DEVICE_WRITE_KHR | \
+ CL_SVM_CAPABILITY_DEVICE_ATOMIC_ACCESS_KHR | \
+ CL_SVM_CAPABILITY_CONCURRENT_ACCESS_KHR)
+
+ #define CL_SVM_TYPE_MACRO_DEVICE_KHR \
+ (CL_SVM_CAPABILITY_SINGLE_ADDRESS_SPACE_KHR | \
+ CL_SVM_CAPABILITY_DEVICE_OWNED_KHR | \
+ CL_SVM_CAPABILITY_DEVICE_READ_KHR | \
+ CL_SVM_CAPABILITY_DEVICE_WRITE_KHR | \
+ CL_SVM_CAPABILITY_DEVICE_ATOMIC_ACCESS_KHR | \
+ CL_SVM_CAPABILITY_INDIRECT_ACCESS_KHR)
+
+ #define CL_SVM_TYPE_MACRO_HOST_KHR \
+ (CL_SVM_CAPABILITY_SINGLE_ADDRESS_SPACE_KHR | \
+ CL_SVM_CAPABILITY_DEVICE_UNASSOCIATED_KHR | \
+ CL_SVM_CAPABILITY_CONTEXT_ACCESS_KHR | \
+ CL_SVM_CAPABILITY_HOST_OWNED_KHR | \
+ CL_SVM_CAPABILITY_HOST_READ_KHR | \
+ CL_SVM_CAPABILITY_HOST_WRITE_KHR | \
+ CL_SVM_CAPABILITY_DEVICE_READ_KHR | \
+ CL_SVM_CAPABILITY_DEVICE_WRITE_KHR | \
+ CL_SVM_CAPABILITY_INDIRECT_ACCESS_KHR)
+
+ #define CL_SVM_TYPE_MACRO_SINGLE_DEVICE_SHARED_KHR \
+ (CL_SVM_CAPABILITY_SINGLE_ADDRESS_SPACE_KHR | \
+ CL_SVM_CAPABILITY_HOST_READ_KHR | \
+ CL_SVM_CAPABILITY_HOST_WRITE_KHR | \
+ CL_SVM_CAPABILITY_DEVICE_READ_KHR | \
+ CL_SVM_CAPABILITY_DEVICE_WRITE_KHR | \
+ CL_SVM_CAPABILITY_INDIRECT_ACCESS_KHR)
+
+ #define CL_SVM_TYPE_MACRO_SYSTEM_KHR \
+ (CL_SVM_CAPABILITY_SINGLE_ADDRESS_SPACE_KHR | \
+ CL_SVM_CAPABILITY_SYSTEM_ALLOCATED_KHR | \
+ CL_SVM_CAPABILITY_DEVICE_UNASSOCIATED_KHR | \
+ CL_SVM_CAPABILITY_CONTEXT_ACCESS_KHR | \
+ CL_SVM_CAPABILITY_HOST_READ_KHR | \
+ CL_SVM_CAPABILITY_HOST_WRITE_KHR | \
+ CL_SVM_CAPABILITY_HOST_MAP_KHR | \
+ CL_SVM_CAPABILITY_DEVICE_READ_KHR | \
+ CL_SVM_CAPABILITY_DEVICE_WRITE_KHR | \
+ CL_SVM_CAPABILITY_DEVICE_ATOMIC_ACCESS_KHR | \
+ CL_SVM_CAPABILITY_CONCURRENT_ACCESS_KHR | \
+ CL_SVM_CAPABILITY_CONCURRENT_ATOMIC_ACCESS_KHR | \
+ CL_SVM_CAPABILITY_INDIRECT_ACCESS_KHR)
+
@@ -1251,12 +1320,40 @@ server's OpenCL/api-docs repository.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -1407,6 +1504,10 @@ server's OpenCL/api-docs repository.
+
+
+
+
In order to synchronize vendor IDs across Khronos APIs, Vulkan's vk.xml
@@ -1434,7 +1535,8 @@ server's OpenCL/api-docs repository.
-
+
+
@@ -1567,7 +1669,8 @@ server's OpenCL/api-docs repository.
-
+
+
@@ -1752,7 +1855,8 @@ server's OpenCL/api-docs repository.
-
+
+
@@ -1922,7 +2026,17 @@ server's OpenCL/api-docs repository.
-
+
+
+
+
+
+
+
+
+
+
+
@@ -2233,8 +2347,11 @@ server's OpenCL/api-docs repository.
+
+
+
@@ -3376,6 +3493,40 @@ server's OpenCL/api-docs repository.
cl_mem buffer
cl_mem content_size_buffer
+
+ void* clSVMAllocWithPropertiesKHR
+ cl_context context
+ const cl_svm_alloc_properties_khr* properties
+ cl_uint svm_type_index
+ size_t size
+ cl_int* errcode_ret
+
+
+ cl_int clSVMFreeWithPropertiesKHR
+ cl_context context
+ const cl_svm_free_properties_khr* properties
+ cl_svm_free_flags_khr flags
+ void* ptr
+
+
+ cl_int clGetSVMPointerInfoKHR
+ cl_context context
+ cl_device_id device
+ const void* ptr
+ cl_svm_pointer_info_khr param_name
+ size_t param_value_size
+ void* param_value
+ size_t* param_value_size_ret
+
+
+ cl_int clGetSVMSuggestedTypeIndexKHR
+ cl_context context
+ cl_svm_capabilities_khr required_capabilities
+ cl_svm_capabilities_khr desired_capabilities
+ const cl_svm_alloc_properties_khr* properties
+ size_t size
+ cl_uint* suggested_svm_type_index
+
cl_int clGetPlatformIDs
cl_uint num_entries
@@ -7730,5 +7881,77 @@ server's OpenCL/api-docs repository.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+