From 3042bc1f48c3485024dd435a15e0a9f91dd5dbf4 Mon Sep 17 00:00:00 2001 From: Nikhil Joshi Date: Tue, 21 May 2024 21:43:39 +0530 Subject: [PATCH 1/6] Add mechanism to specify named win32 NT handles Currently, cl_khr_external_semaphore and cl_khr_external_memory define properties to specify external win32 NT handle via pointer. Win32 NT handles can also be specified via named strings. Add properties to specify external Win32 NT handles via named strings too. Fixes #943 --- api/cl_khr_external_memory_win32.asciidoc | 1 + api/opencl_runtime_layer.asciidoc | 19 +++++++++++++++++++ xml/cl.xml | 4 +++- 3 files changed, 23 insertions(+), 1 deletion(-) diff --git a/api/cl_khr_external_memory_win32.asciidoc b/api/cl_khr_external_memory_win32.asciidoc index 005c9278f..57d012468 100644 --- a/api/cl_khr_external_memory_win32.asciidoc +++ b/api/cl_khr_external_memory_win32.asciidoc @@ -40,6 +40,7 @@ image memory object. * {cl_external_memory_handle_type_khr_TYPE} ** {CL_EXTERNAL_MEMORY_HANDLE_OPAQUE_WIN32_KHR} ** {CL_EXTERNAL_MEMORY_HANDLE_OPAQUE_WIN32_KMT_KHR} + ** {CL_EXTERNAL_MEMORY_HANDLE_OPAQUE_WIN32_NAME_KHR} === Version History diff --git a/api/opencl_runtime_layer.asciidoc b/api/opencl_runtime_layer.asciidoc index bfa16ffd1..0c499514a 100644 --- a/api/opencl_runtime_layer.asciidoc +++ b/api/opencl_runtime_layer.asciidoc @@ -5619,6 +5619,14 @@ buffer or an image memory object from an external handle: represented by its memory object, and will therefore become invalid when all memory objects associated with it are destroyed. endif::cl_khr_external_memory_win32[] + * {CL_EXTERNAL_MEMORY_HANDLE_OPAQUE_WIN32_NAME_KHR_anchor} specifies an NT handle name that + has only limited valid usage outside of OpenCL and other compatible + APIs. + It must be compatible with the functions `DuplicateHandle`, + `CloseHandle`, `CompareObjectHandles`, `GetHandleInformation`, and + `SetHandleInformation`. + It owns a reference to the underlying memory resource represented by its + memory object. For these extensions, importing memory object payloads from Windows handles does not transfer ownership of the handle to the OpenCL implementation. @@ -13127,6 +13135,13 @@ a semaphore from an external handle: It does not own a reference to the underlying synchronization primitive represented by its semaphore object, and will therefore become invalid when all semaphore objects associated with it are destroyed. + * {CL_SEMAPHORE_HANDLE_OPAQUE_WIN32_NAME_KHR} specifies an NT handle name that has + only limited valid usage outside of OpenCL and other compatible APIs. + It must be compatible with the functions `DuplicateHandle`, + `CloseHandle`, `CompareObjectHandles`, `GetHandleInformation`, and + `SetHandleInformation`. + It owns a reference to the underlying synchronization primitive + represented by its semaphore object. endif::cl_khr_external_semaphore_win32[] @@ -13146,6 +13161,10 @@ include::{generated}/api/version-notes/CL_SEMAPHORE_HANDLE_OPAQUE_WIN32_KHR.asci include::{generated}/api/version-notes/CL_SEMAPHORE_HANDLE_OPAQUE_WIN32_KMT_KHR.asciidoc[] | Reference | Temporary, Permanent + +include::{generated}/api/version-notes/CL_SEMAPHORE_HANDLE_OPAQUE_WIN32_NAME_KHR.asciidoc[] + | Reference + | Temporary, Permanent endif::cl_khr_external_semaphore_win32[] |==== diff --git a/xml/cl.xml b/xml/cl.xml index 7700355ad..61dac57d9 100644 --- a/xml/cl.xml +++ b/xml/cl.xml @@ -1894,7 +1894,9 @@ server's OpenCL/api-docs repository. - + + + From a718db6f6d4ff6c131526d0978bd30ca0923e005 Mon Sep 17 00:00:00 2001 From: Nikhil Joshi Date: Tue, 11 Jun 2024 20:08:15 +0530 Subject: [PATCH 2/6] Updates to win32 named handle type changes. (#1180) Address review comments. Fixes #943 --- api/cl_khr_external_memory_win32.asciidoc | 5 ++++- api/cl_khr_external_semaphore_win32.asciidoc | 4 +++- api/opencl_runtime_layer.asciidoc | 5 ++++- xml/cl.xml | 2 ++ 4 files changed, 13 insertions(+), 3 deletions(-) diff --git a/api/cl_khr_external_memory_win32.asciidoc b/api/cl_khr_external_memory_win32.asciidoc index 57d012468..fb18ff470 100644 --- a/api/cl_khr_external_memory_win32.asciidoc +++ b/api/cl_khr_external_memory_win32.asciidoc @@ -6,7 +6,7 @@ include::{generated}/meta/{refprefix}cl_khr_external_memory_win32.txt[] === Other Extension Metadata *Last Modified Date*:: - 2024-03-15 + 2024-06-11 *IP Status*:: No known IP claims. *Contributors*:: @@ -58,3 +58,6 @@ image memory object. (provisional). * Revision 1.0.0, 2024-03-15 ** First non-provisional version. + * Revision 1.1.0, 2024-06-11 + ** Added {CL_EXTERNAL_MEMORY_HANDLE_OPAQUE_WIN32_NAME_KHR}. + diff --git a/api/cl_khr_external_semaphore_win32.asciidoc b/api/cl_khr_external_semaphore_win32.asciidoc index 725a59966..64aadba0c 100644 --- a/api/cl_khr_external_semaphore_win32.asciidoc +++ b/api/cl_khr_external_semaphore_win32.asciidoc @@ -6,7 +6,7 @@ include::{generated}/meta/{refprefix}cl_khr_external_semaphore_win32.txt[] === Other Extension Metadata *Last Modified Date*:: - 2021-09-10 + 2024-06-11 *IP Status*:: No known IP claims. *Contributors*:: @@ -44,3 +44,5 @@ introduced by {cl_khr_external_semaphore_EXT}. * Revision 0.9.0, 2021-09-10 ** Initial version (provisional). + * Revision 0.9.1, 2024-06-11 + ** Added {CL_SEMAPHORE_HANDLE_OPAQUE_WIN32_KMT_KHR}. diff --git a/api/opencl_runtime_layer.asciidoc b/api/opencl_runtime_layer.asciidoc index 0c499514a..77cfe3e85 100644 --- a/api/opencl_runtime_layer.asciidoc +++ b/api/opencl_runtime_layer.asciidoc @@ -5618,16 +5618,18 @@ buffer or an image memory object from an external handle: It does not own a reference to the underlying memory resource represented by its memory object, and will therefore become invalid when all memory objects associated with it are destroyed. -endif::cl_khr_external_memory_win32[] * {CL_EXTERNAL_MEMORY_HANDLE_OPAQUE_WIN32_NAME_KHR_anchor} specifies an NT handle name that has only limited valid usage outside of OpenCL and other compatible APIs. + NT handle name is NULL or a null-terminated UTF-16 string naming the payload to import. It must be compatible with the functions `DuplicateHandle`, `CloseHandle`, `CompareObjectHandles`, `GetHandleInformation`, and `SetHandleInformation`. It owns a reference to the underlying memory resource represented by its memory object. +endif::cl_khr_external_memory_win32[] + For these extensions, importing memory object payloads from Windows handles does not transfer ownership of the handle to the OpenCL implementation. For handle types defined as NT handles, the application must release handle @@ -13137,6 +13139,7 @@ a semaphore from an external handle: when all semaphore objects associated with it are destroyed. * {CL_SEMAPHORE_HANDLE_OPAQUE_WIN32_NAME_KHR} specifies an NT handle name that has only limited valid usage outside of OpenCL and other compatible APIs. + NT handle name is NULL or a null-terminated UTF-16 string naming the payload to import. It must be compatible with the functions `DuplicateHandle`, `CloseHandle`, `CompareObjectHandles`, `GetHandleInformation`, and `SetHandleInformation`. diff --git a/xml/cl.xml b/xml/cl.xml index 61dac57d9..41d5e113e 100644 --- a/xml/cl.xml +++ b/xml/cl.xml @@ -7085,6 +7085,7 @@ server's OpenCL/api-docs repository. + @@ -7137,6 +7138,7 @@ server's OpenCL/api-docs repository. + From 348d8a506953dbdf31a8cd8be85821323dc18c9d Mon Sep 17 00:00:00 2001 From: Nikhil Joshi Date: Tue, 18 Jun 2024 22:27:10 +0530 Subject: [PATCH 3/6] Drop NULL from named win32 handle description (#1187) * Updates to win32 named handle type changes. Address review comments. Fixes #943 * Drop NULL from named win32 handle description. Address review comments from Ben to remove NULL from named win32 handle description. Fixes #943 --- api/opencl_runtime_layer.asciidoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/api/opencl_runtime_layer.asciidoc b/api/opencl_runtime_layer.asciidoc index 77cfe3e85..257267e74 100644 --- a/api/opencl_runtime_layer.asciidoc +++ b/api/opencl_runtime_layer.asciidoc @@ -5621,7 +5621,7 @@ buffer or an image memory object from an external handle: * {CL_EXTERNAL_MEMORY_HANDLE_OPAQUE_WIN32_NAME_KHR_anchor} specifies an NT handle name that has only limited valid usage outside of OpenCL and other compatible APIs. - NT handle name is NULL or a null-terminated UTF-16 string naming the payload to import. + NT handle name is a null-terminated UTF-16 string naming the payload to import. It must be compatible with the functions `DuplicateHandle`, `CloseHandle`, `CompareObjectHandles`, `GetHandleInformation`, and `SetHandleInformation`. @@ -13139,7 +13139,7 @@ a semaphore from an external handle: when all semaphore objects associated with it are destroyed. * {CL_SEMAPHORE_HANDLE_OPAQUE_WIN32_NAME_KHR} specifies an NT handle name that has only limited valid usage outside of OpenCL and other compatible APIs. - NT handle name is NULL or a null-terminated UTF-16 string naming the payload to import. + NT handle name is a null-terminated UTF-16 string naming the payload to import. It must be compatible with the functions `DuplicateHandle`, `CloseHandle`, `CompareObjectHandles`, `GetHandleInformation`, and `SetHandleInformation`. From ff38d4d6478972e23460080db42f113d795c5677 Mon Sep 17 00:00:00 2001 From: Nikhil Joshi Date: Thu, 27 Jun 2024 10:54:52 +0530 Subject: [PATCH 4/6] Bump up spec versions for win32 (#1193) Bump up spec versions for cl_khr_external_memory_win32 from 1.0.0 to 1.1.0 and cl_khr_external_semaphore_win32 from 0.9.0 to 0.9.1 --- OpenCL_C.txt | 2 +- api/opencl_architecture.asciidoc | 19 +++ scripts/gen_dictionaries.py | 5 +- xml/cl.xml | 256 +++++++++++++++---------------- xml/registry.rnc | 4 +- 5 files changed, 153 insertions(+), 133 deletions(-) diff --git a/OpenCL_C.txt b/OpenCL_C.txt index 5c27f1049..610b54e3c 100644 --- a/OpenCL_C.txt +++ b/OpenCL_C.txt @@ -1534,7 +1534,7 @@ For example: ---------- float8 vf; -float *f = &vf.x; m // is illegal +float *f = &vf.x; // is illegal float2 *f2 = &vf.s07; // is illegal float4 *odd = &vf.odd; // is illegal diff --git a/api/opencl_architecture.asciidoc b/api/opencl_architecture.asciidoc index 2e559530c..57cc2c17d 100644 --- a/api/opencl_architecture.asciidoc +++ b/api/opencl_architecture.asciidoc @@ -2263,6 +2263,25 @@ typedef cl_uint cl_version; ((patch) & CL_VERSION_PATCH_MASK)) ---- +[NOTE] +-- +The available version of an extension is exposed to the user via a macro +defined by the OpenCL Headers. This macro takes the format of the uppercase +extension name followed by the `_EXTENSION_VERSION` suffix. For example, +`CL_KHR_SEMAPHORE_EXTENSION_VERSION` is the macro defining the version of the +{cl_khr_semaphore_EXT} extension. + +The value of this macro is set to the {cl_version_TYPE} of the extension using +the semantic version of the extension. If no semantic version is defined for +the extension, then the value of the macro is set to `0` to represent semantic +version `0.0.0`. + +Applications can use these version macros along with the convience macros +defined in this section to guard their code against breaking changes to the API +of extensions, in particular provisional KHR extensions which have yet to +finalize an API. +-- + [[version-name-pairing]] ==== Version-Name Pairing diff --git a/scripts/gen_dictionaries.py b/scripts/gen_dictionaries.py index 142fe55a4..4f220aa14 100755 --- a/scripts/gen_dictionaries.py +++ b/scripts/gen_dictionaries.py @@ -99,7 +99,7 @@ def GetFooter(): numberOfFuncs = numberOfFuncs + 1 - # Add extension API functions without links: + # Add extension API functions with and without links: for extension in spec.findall('extensions/extension/require'): for api in extension.findall('command'): name = api.get('name') @@ -110,7 +110,8 @@ def GetFooter(): # // clGetGLObjectInfo # :clGetGLObjectInfo: pass:q[*clGetGLObjectInfo*] apiLinkFile.write('// ' + name + '\n') - apiLinkFile.write(':' + name + ': pass:q[*' + name + '*]\n') + apiLinkFile.write(':' + name + '_label: pass:q[*' + name + '*]\n') + apiLinkFile.write(':' + name + ': <<' + name + ',{' + name + '_label}>>\n') apiLinkFile.write('\n') apiNoLinkFile.write('// ' + name + '\n') diff --git a/xml/cl.xml b/xml/cl.xml index 41d5e113e..047f5572a 100644 --- a/xml/cl.xml +++ b/xml/cl.xml @@ -5391,7 +5391,7 @@ server's OpenCL/api-docs repository. - + @@ -5438,7 +5438,7 @@ server's OpenCL/api-docs repository. - + @@ -5485,7 +5485,7 @@ server's OpenCL/api-docs repository. - + @@ -5534,7 +5534,7 @@ server's OpenCL/api-docs repository. - + @@ -5562,7 +5562,7 @@ server's OpenCL/api-docs repository. - + @@ -5576,7 +5576,7 @@ server's OpenCL/api-docs repository. - + @@ -5584,7 +5584,7 @@ server's OpenCL/api-docs repository. - + @@ -5592,7 +5592,7 @@ server's OpenCL/api-docs repository. - + @@ -5600,7 +5600,7 @@ server's OpenCL/api-docs repository. - + @@ -5610,7 +5610,7 @@ server's OpenCL/api-docs repository. - + @@ -5624,7 +5624,7 @@ server's OpenCL/api-docs repository. - + @@ -5644,7 +5644,7 @@ server's OpenCL/api-docs repository. - + @@ -5661,7 +5661,7 @@ server's OpenCL/api-docs repository. - + @@ -5675,13 +5675,13 @@ server's OpenCL/api-docs repository. - + - + @@ -5696,7 +5696,7 @@ server's OpenCL/api-docs repository. - + @@ -5719,7 +5719,7 @@ server's OpenCL/api-docs repository. - + @@ -5730,7 +5730,7 @@ server's OpenCL/api-docs repository. - + @@ -5741,7 +5741,7 @@ server's OpenCL/api-docs repository. - + @@ -5755,7 +5755,7 @@ server's OpenCL/api-docs repository. - + @@ -5783,7 +5783,7 @@ server's OpenCL/api-docs repository. - + @@ -5792,7 +5792,7 @@ server's OpenCL/api-docs repository. - + @@ -5836,7 +5836,7 @@ server's OpenCL/api-docs repository. - + @@ -5853,7 +5853,7 @@ server's OpenCL/api-docs repository. - + @@ -5882,7 +5882,7 @@ server's OpenCL/api-docs repository. - + @@ -5890,7 +5890,7 @@ server's OpenCL/api-docs repository. - + @@ -5902,7 +5902,7 @@ server's OpenCL/api-docs repository. - + @@ -5914,7 +5914,7 @@ server's OpenCL/api-docs repository. - + @@ -5923,7 +5923,7 @@ server's OpenCL/api-docs repository. - + @@ -5932,7 +5932,7 @@ server's OpenCL/api-docs repository. - + @@ -5942,7 +5942,7 @@ server's OpenCL/api-docs repository. - + @@ -5962,7 +5962,7 @@ server's OpenCL/api-docs repository. - + @@ -5977,7 +5977,7 @@ server's OpenCL/api-docs repository. - + @@ -5993,7 +5993,7 @@ server's OpenCL/api-docs repository. - + @@ -6009,7 +6009,7 @@ server's OpenCL/api-docs repository. - + @@ -6017,7 +6017,7 @@ server's OpenCL/api-docs repository. - + @@ -6055,7 +6055,7 @@ server's OpenCL/api-docs repository. - + @@ -6103,7 +6103,7 @@ server's OpenCL/api-docs repository. - + @@ -6111,7 +6111,7 @@ server's OpenCL/api-docs repository. - + @@ -6120,13 +6120,13 @@ server's OpenCL/api-docs repository. - + - + @@ -6151,7 +6151,7 @@ server's OpenCL/api-docs repository. - + @@ -6178,7 +6178,7 @@ server's OpenCL/api-docs repository. - + @@ -6238,18 +6238,18 @@ server's OpenCL/api-docs repository. - + - + - + @@ -6257,7 +6257,7 @@ server's OpenCL/api-docs repository. - + @@ -6268,7 +6268,7 @@ server's OpenCL/api-docs repository. - + @@ -6280,7 +6280,7 @@ server's OpenCL/api-docs repository. - + @@ -6293,7 +6293,7 @@ server's OpenCL/api-docs repository. - + @@ -6445,7 +6445,7 @@ server's OpenCL/api-docs repository. - + @@ -6456,7 +6456,7 @@ server's OpenCL/api-docs repository. - + @@ -6497,7 +6497,7 @@ server's OpenCL/api-docs repository. - + @@ -6543,7 +6543,7 @@ server's OpenCL/api-docs repository. - + @@ -6554,7 +6554,7 @@ server's OpenCL/api-docs repository. - + @@ -6564,7 +6564,7 @@ server's OpenCL/api-docs repository. - + @@ -6625,7 +6625,7 @@ server's OpenCL/api-docs repository. - + @@ -6698,7 +6698,7 @@ server's OpenCL/api-docs repository. - + @@ -6711,7 +6711,7 @@ server's OpenCL/api-docs repository. - + @@ -6719,12 +6719,12 @@ server's OpenCL/api-docs repository. - + - + @@ -6735,7 +6735,7 @@ server's OpenCL/api-docs repository. - + @@ -6769,17 +6769,17 @@ server's OpenCL/api-docs repository. - + - + - + @@ -6787,7 +6787,7 @@ server's OpenCL/api-docs repository. - + @@ -6825,7 +6825,7 @@ server's OpenCL/api-docs repository. - + @@ -6840,7 +6840,7 @@ server's OpenCL/api-docs repository. - + @@ -6859,7 +6859,7 @@ server's OpenCL/api-docs repository. - + @@ -6884,7 +6884,7 @@ server's OpenCL/api-docs repository. - + @@ -6924,7 +6924,7 @@ server's OpenCL/api-docs repository. - + @@ -6935,7 +6935,7 @@ server's OpenCL/api-docs repository. - + @@ -6943,7 +6943,7 @@ server's OpenCL/api-docs repository. - + @@ -6982,7 +6982,7 @@ server's OpenCL/api-docs repository. - + @@ -7029,7 +7029,7 @@ server's OpenCL/api-docs repository. - + @@ -7056,7 +7056,7 @@ server's OpenCL/api-docs repository. - + @@ -7064,7 +7064,7 @@ server's OpenCL/api-docs repository. - + @@ -7078,7 +7078,7 @@ server's OpenCL/api-docs repository. - + @@ -7088,7 +7088,7 @@ server's OpenCL/api-docs repository. - + @@ -7115,7 +7115,7 @@ server's OpenCL/api-docs repository. - + @@ -7123,7 +7123,7 @@ server's OpenCL/api-docs repository. - + @@ -7131,7 +7131,7 @@ server's OpenCL/api-docs repository. - + @@ -7141,37 +7141,37 @@ server's OpenCL/api-docs repository. - + - + - + - + - + - + - + @@ -7250,12 +7250,12 @@ server's OpenCL/api-docs repository. - + - + @@ -7276,7 +7276,7 @@ server's OpenCL/api-docs repository. - + @@ -7293,7 +7293,7 @@ server's OpenCL/api-docs repository. - + @@ -7310,12 +7310,12 @@ server's OpenCL/api-docs repository. - + - + @@ -7386,12 +7386,12 @@ server's OpenCL/api-docs repository. - + - + @@ -7426,41 +7426,41 @@ server's OpenCL/api-docs repository. - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -7468,7 +7468,7 @@ server's OpenCL/api-docs repository. - + diff --git a/xml/registry.rnc b/xml/registry.rnc index 210073c24..ff85c0d1d 100644 --- a/xml/registry.rnc +++ b/xml/registry.rnc @@ -445,7 +445,7 @@ Extensions = element extensions { # exactly match an API being generated (implicit ^$ surrounding). # name - extension name string # number - extension number (positive integer, should be unique) -# revision - extension spec revision (text, usually numeric major.minor.patch) +# revision - extension spec revision, must be numeric 'major.minor.patch' # sortorder - order relative to other extensions, default 0 # protect - C preprocessor symbol to conditionally define the interface # platform - should be one of the platform names defined in the @@ -479,8 +479,8 @@ Extensions = element extensions { # Not a regular expression. Extension = element extension { Name , + attribute revision { text }, attribute number { Integer } ? , - attribute revision { text } ? , attribute sortorder { xsd:integer } ?, attribute protect { text } ? , attribute platform { text } ? , From a59a5ab5076bf5e4b8d3347eda301bcdb7697b22 Mon Sep 17 00:00:00 2001 From: Ben Ashbaugh Date: Fri, 28 Jun 2024 16:50:09 -0700 Subject: [PATCH 5/6] fix typo and add OPAQUE_WIN32_NAME_KHR to semaphore enums list --- api/cl_khr_external_semaphore_win32.asciidoc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/api/cl_khr_external_semaphore_win32.asciidoc b/api/cl_khr_external_semaphore_win32.asciidoc index 64aadba0c..543741d3c 100644 --- a/api/cl_khr_external_semaphore_win32.asciidoc +++ b/api/cl_khr_external_semaphore_win32.asciidoc @@ -39,10 +39,11 @@ introduced by {cl_khr_external_semaphore_EXT}. * {cl_external_semaphore_handle_type_khr_TYPE} ** {CL_SEMAPHORE_HANDLE_OPAQUE_WIN32_KHR} ** {CL_SEMAPHORE_HANDLE_OPAQUE_WIN32_KMT_KHR} + ** {CL_SEMAPHORE_HANDLE_OPAQUE_WIN32_NAME_KHR} === Version History * Revision 0.9.0, 2021-09-10 ** Initial version (provisional). * Revision 0.9.1, 2024-06-11 - ** Added {CL_SEMAPHORE_HANDLE_OPAQUE_WIN32_KMT_KHR}. + ** Added {CL_SEMAPHORE_HANDLE_OPAQUE_WIN32_NAME_KHR}. From e44389eebbc327c7dad897e9a135c8555943b6b3 Mon Sep 17 00:00:00 2001 From: Nikhil Joshi Date: Tue, 3 Sep 2024 21:07:42 +0530 Subject: [PATCH 6/6] Update opencl_runtime_layer.asciidoc Fix typo during conflict resolution opencl_runtime_layer.asciidoc. --- api/opencl_runtime_layer.asciidoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/opencl_runtime_layer.asciidoc b/api/opencl_runtime_layer.asciidoc index 6bda5b9d8..50a75d060 100644 --- a/api/opencl_runtime_layer.asciidoc +++ b/api/opencl_runtime_layer.asciidoc @@ -13180,7 +13180,7 @@ include::{generated}/api/version-notes/CL_SEMAPHORE_HANDLE_OPAQUE_WIN32_KHR.asci include::{generated}/api/version-notes/CL_SEMAPHORE_HANDLE_OPAQUE_WIN32_KMT_KHR.asciidoc[] | Reference -| {CL_SEMAPHORE_HANDLE_OPAQUE_WIN32_NAMET_KHR_anchor} +| {CL_SEMAPHORE_HANDLE_OPAQUE_WIN32_NAME_KHR_anchor} include::{generated}/api/version-notes/CL_SEMAPHORE_HANDLE_OPAQUE_WIN32_NAME_KHR.asciidoc[] | Reference