diff --git a/api/cl_khr_icd.asciidoc b/api/cl_khr_icd.asciidoc
index 834f9ca66..fbb5ef223 100644
--- a/api/cl_khr_icd.asciidoc
+++ b/api/cl_khr_icd.asciidoc
@@ -273,11 +273,18 @@ Returned by {clGetPlatformIDs} when no platforms are found:
* {CL_PLATFORM_NOT_FOUND_KHR}
-New in version 2.0.0, used as a value in the pointer to
-`clGetPlatformIDs` in the dispatch structure:
+New in version 2.0.0.
+
+Used as a value in the pointer to `clGetPlatformIDs` in
+the dispatch structure:
* `CL_ICD2_TAG_KHR`
+Used as a parameter name to query if a platform can be unlaoded by the ICD
+Loader:
+
+ * {CL_PLATFORM_UNLOADABLE_KHR}
+
=== Issues
. Some OpenCL functions do not take an object argument from which their
diff --git a/api/opencl_platform_layer.asciidoc b/api/opencl_platform_layer.asciidoc
index e37ba3e2b..8f32e713e 100644
--- a/api/opencl_platform_layer.asciidoc
+++ b/api/opencl_platform_layer.asciidoc
@@ -337,6 +337,11 @@ include::{generated}/api/version-notes/CL_PLATFORM_ICD_SUFFIX_KHR.asciidoc[]
| {char_TYPE}[]
| The function name suffix used to identify extension functions to be
directed to this platform by the ICD Loader.
+| {CL_PLATFORM_UNLOADABLE_KHR_anchor}
+
+include::{generated}/api/version-notes/CL_PLATFORM_UNLOADABLE_KHR.asciidoc[]
+ | {cl_bool_TYPE}
+ | The platform can be unloaded by the ICD Loader.
endif::cl_khr_icd[]
|====
diff --git a/extensions/cl_loader_layers.asciidoc b/extensions/cl_loader_layers.asciidoc
index c286706de..49800c2c3 100644
--- a/extensions/cl_loader_layers.asciidoc
+++ b/extensions/cl_loader_layers.asciidoc
@@ -21,6 +21,7 @@ interception layers (Layer ICDs) for OpenCL.
|====
| *Date* | *Version* | *Description*
| 2020-11-04 | 1.0.0 | First assigned version.
+| 2024-09-04 | 2.0.0 | Deinitialization support.
|====
==== Contributors
@@ -45,6 +46,8 @@ cl_int clInitLayer(cl_uint num_entries,
const cl_icd_dispatch *target_dispatch,
cl_uint *num_entries_ret,
const cl_icd_dispatch **layer_dispatch_ret);
+
+cl_int clDeinitLayer(void);
----
[[cl_loader_layers-new-api-types]]
@@ -72,12 +75,13 @@ Accepted as _param_name_ to the function *clGetLayerInfo*:
=== New API Tokens
Returned by *clGetLayerInfo* when supplied *CL_LAYER_API_VERSION*
-and the corresponding layer implements version 1.0.0 of the layer
-API:
+and the corresponding layer implements version 1.0.0 or 2.0.0 of
+the layer API:
[source,opencl]
----
#define CL_LAYER_API_VERSION_100 100
+#define CL_LAYER_API_VERSION_200 200
----
[[cl_loader_layers-new-environment-variables]]
@@ -173,6 +177,18 @@ Otherwise, it returns one of the following errors.
_target_dispatch_ is a `NULL` value, or _num_entries_ret_ is a `NULL`
value, or _layer_dispatch_ret_ is a `NULL` value.
+==== Layer Deinitialization
+
+[open,refpage='clDeinitLayer',desc='Deinitialize an OpenCL layer',type='protos']
+Deinitilization of a layer can be achieved with the function:
+[source,opencl]
+
+----
+cl_int clInitLayer(void);
+----
+
+*clDeinitLayer* returns *CL_SUCCESS* if the function is executed successfully.
+
[[cl_loader_layers-source-code]]
=== Source Code
diff --git a/xml/cl.xml b/xml/cl.xml
index f6a8bd618..1745f724d 100644
--- a/xml/cl.xml
+++ b/xml/cl.xml
@@ -522,6 +522,7 @@ server's OpenCL/api-docs repository.
+
@@ -1422,7 +1423,8 @@ server's OpenCL/api-docs repository.
-
+
+
@@ -4246,6 +4248,9 @@ server's OpenCL/api-docs repository.
cl_uint* num_entries_ret
const cl_icd_dispatch** layer_dispatch_ret
+
+ cl_int clDeinitLayer
+
cl_int clGetICDLoaderInfoOCLICD
cl_icdl_info param_name
@@ -5625,6 +5630,7 @@ server's OpenCL/api-docs repository.
+
@@ -5638,7 +5644,7 @@ server's OpenCL/api-docs repository.
-
+
@@ -5652,10 +5658,12 @@ server's OpenCL/api-docs repository.
+
+