From 8444ba2980e3b23e91f04ee05226a6ce39bac702 Mon Sep 17 00:00:00 2001
From: foreman
Date: Wed, 28 Jan 2015 16:49:17 -0500
Subject: [PATCH] P4 to Git Change 1116207 by lmoriche@lmoriche_opencl_dev on
2015/01/28 16:35:43
ECR #304775 - SVN update 2015-01-09 (r29395).
Affected files ...
... //depot/stg/opencl/drivers/opencl/api/opencl/amdocl/cl_d3d9.cpp#27 edit
... //depot/stg/opencl/drivers/opencl/api/opencl/amdocl/cl_d3d9_amd.hpp#16 edit
... //depot/stg/opencl/drivers/opencl/api/opencl/khronos/headers/opencl2.0/CL/cl_ext.h#14 integrate
... //depot/stg/opencl/drivers/opencl/api/opencl/khronos/icd/OpenCL.rc#15 edit
... //depot/stg/opencl/drivers/opencl/api/opencl/khronos/icd/icd_dispatch.c#25 edit
... //depot/stg/opencl/drivers/opencl/api/opencl/khronos/icd/icd_dispatch.h#20 edit
[ROCm/clr commit: 928ed16c6dd249123240fb6b2b1daf9eab77e68a]
---
.../clr/opencl/api/opencl/amdocl/cl_d3d9.cpp | 2 +-
.../opencl/api/opencl/amdocl/cl_d3d9_amd.hpp | 2 +-
.../opencl/api/opencl/khronos/icd/OpenCL.rc | 6 +-
.../api/opencl/khronos/icd/icd_dispatch.c | 527 +++++++++---------
.../api/opencl/khronos/icd/icd_dispatch.h | 26 +-
5 files changed, 296 insertions(+), 267 deletions(-)
diff --git a/projects/clr/opencl/api/opencl/amdocl/cl_d3d9.cpp b/projects/clr/opencl/api/opencl/amdocl/cl_d3d9.cpp
index c26df052f5..81e9328e01 100644
--- a/projects/clr/opencl/api/opencl/amdocl/cl_d3d9.cpp
+++ b/projects/clr/opencl/api/opencl/amdocl/cl_d3d9.cpp
@@ -225,7 +225,7 @@ RUNTIME_EXIT
RUNTIME_ENTRY(cl_int, clEnqueueReleaseDX9MediaSurfacesKHR, (
cl_command_queue command_queue,
cl_uint num_objects,
- cl_mem * mem_objects,
+ const cl_mem * mem_objects,
cl_uint num_events_in_wait_list,
const cl_event * event_wait_list,
cl_event * event))
diff --git a/projects/clr/opencl/api/opencl/amdocl/cl_d3d9_amd.hpp b/projects/clr/opencl/api/opencl/amdocl/cl_d3d9_amd.hpp
index 1a83f29842..4424addb55 100644
--- a/projects/clr/opencl/api/opencl/amdocl/cl_d3d9_amd.hpp
+++ b/projects/clr/opencl/api/opencl/amdocl/cl_d3d9_amd.hpp
@@ -144,7 +144,7 @@ extern CL_API_ENTRY cl_int CL_API_CALL
clEnqueueReleaseDX9MediaSurfacesKHR(
cl_command_queue,
cl_uint,
- cl_mem *,
+ const cl_mem *,
cl_uint,
const cl_event *,
cl_event *);
diff --git a/projects/clr/opencl/api/opencl/khronos/icd/OpenCL.rc b/projects/clr/opencl/api/opencl/khronos/icd/OpenCL.rc
index 9dbe6a9fdd..3744e35bb5 100644
--- a/projects/clr/opencl/api/opencl/khronos/icd/OpenCL.rc
+++ b/projects/clr/opencl/api/opencl/khronos/icd/OpenCL.rc
@@ -43,8 +43,8 @@
#ifdef RC_INVOKED
VS_VERSION_INFO VERSIONINFO
-FILEVERSION 2,0,1,0
-PRODUCTVERSION 2,0,1,0
+FILEVERSION 2,0,3,0
+PRODUCTVERSION 2,0,3,0
FILETYPE VFT_DLL
BEGIN
@@ -55,7 +55,7 @@ BEGIN
VALUE "FileDescription" ,"OpenCL Client DLL"
VALUE "ProductName" ,"Khronos OpenCL ICD"
VALUE "LegalCopyright" ,"Copyright \251 The Khronos Group Inc 2014"
- VALUE "FileVersion" ,"2.0.1.0"
+ VALUE "FileVersion" ,"2.0.3.0"
VALUE "CompanyName" ,"Khronos Group"
VALUE "InternalName" ,"OpenCL"
diff --git a/projects/clr/opencl/api/opencl/khronos/icd/icd_dispatch.c b/projects/clr/opencl/api/opencl/khronos/icd/icd_dispatch.c
index 8340d1e9e7..174c349c4d 100644
--- a/projects/clr/opencl/api/opencl/khronos/icd/icd_dispatch.c
+++ b/projects/clr/opencl/api/opencl/khronos/icd/icd_dispatch.c
@@ -276,20 +276,6 @@ clCreateCommandQueue(cl_context context,
errcode_ret);
}
-CL_API_ENTRY cl_command_queue CL_API_CALL
-clCreateCommandQueueWithProperties(cl_context context,
- cl_device_id device,
- const cl_queue_properties * properties,
- cl_int * errcode_ret) CL_API_SUFFIX__VERSION_2_0
-{
- KHR_ICD_VALIDATE_HANDLE_RETURN_HANDLE(context, CL_INVALID_CONTEXT);
- return context->dispatch->clCreateCommandQueueWithProperties(
- context,
- device,
- properties,
- errcode_ret);
-}
-
CL_API_ENTRY cl_int CL_API_CALL
clRetainCommandQueue(cl_command_queue command_queue) CL_API_SUFFIX__VERSION_1_0
{
@@ -437,18 +423,6 @@ clCreateSampler(cl_context context,
errcode_ret);
}
-CL_API_ENTRY cl_sampler CL_API_CALL
-clCreateSamplerWithProperties(cl_context context,
- const cl_sampler_properties * properties,
- cl_int * errcode_ret) CL_API_SUFFIX__VERSION_2_0
-{
- KHR_ICD_VALIDATE_HANDLE_RETURN_HANDLE(context, CL_INVALID_CONTEXT);
- return context->dispatch->clCreateSamplerWithProperties(
- context,
- properties,
- errcode_ret);
-}
-
CL_API_ENTRY cl_int CL_API_CALL
clRetainSampler(cl_sampler sampler) CL_API_SUFFIX__VERSION_1_0
{
@@ -1440,6 +1414,11 @@ clGetExtensionFunctionAddressForPlatform(cl_platform_id platform,
/* cl_khr_egl_event */
CL_COMMON_EXTENSION_ENTRYPOINT_ADD(clCreateEventFromEGLSyncKHR);
+ /* cl_khr_sub_groups */
+ CL_COMMON_EXTENSION_ENTRYPOINT_ADD(clGetKernelSubGroupInfoKHR);
+
+ CL_COMMON_EXTENSION_ENTRYPOINT_ADD(clTerminateContextKHR);
+
// fall back to vendor extension detection
// FIXME Now that we have a platform id here, we need to validate that it isn't NULL, so shouldn't we have an errcode_ret
@@ -1643,6 +1622,11 @@ clGetExtensionFunctionAddress(const char *function_name) CL_EXT_SUFFIX__VERSION_
/* cl_khr_egl_event */
CL_COMMON_EXTENSION_ENTRYPOINT_ADD(clCreateEventFromEGLSyncKHR);
+ /* cl_khr_sub_groups */
+ CL_COMMON_EXTENSION_ENTRYPOINT_ADD(clGetKernelSubGroupInfoKHR);
+
+ CL_COMMON_EXTENSION_ENTRYPOINT_ADD(clTerminateContextKHR);
+
// fall back to vendor extension detection
for (vendor = khrIcdState.vendors; vendor; vendor = vendor->next)
{
@@ -2142,7 +2126,7 @@ CL_API_ENTRY cl_int CL_API_CALL
clEnqueueReleaseDX9MediaSurfacesKHR(
cl_command_queue command_queue,
cl_uint num_objects,
- cl_mem * mem_objects,
+ const cl_mem * mem_objects,
cl_uint num_events_in_wait_list,
const cl_event * event_wait_list,
cl_event * event)
@@ -2226,229 +2210,6 @@ clSetUserEventStatus(
execution_status);
}
-CL_API_ENTRY void * CL_API_CALL
-clSVMAlloc(cl_context context,
- cl_svm_mem_flags flags,
- size_t size,
- cl_uint alignment) CL_API_SUFFIX__VERSION_2_0
-{
- KHR_ICD_VALIDATE_HANDLE_RETURN_ERROR(context, NULL);
- return context->dispatch->clSVMAlloc(
- context,
- flags,
- size,
- alignment);
-}
-
-CL_API_ENTRY void CL_API_CALL
-clSVMFree(cl_context context,
- void * svm_pointer) CL_API_SUFFIX__VERSION_2_0
-{
- KHR_ICD_VALIDATE_HANDLE(context);
- context->dispatch->clSVMFree(
- context,
- svm_pointer);
-}
-
-CL_API_ENTRY cl_int CL_API_CALL
-clSetKernelArgSVMPointer(cl_kernel kernel,
- cl_uint arg_index,
- const void * arg_value) CL_API_SUFFIX__VERSION_2_0
-{
- KHR_ICD_VALIDATE_HANDLE_RETURN_ERROR(kernel, CL_INVALID_KERNEL);
- return kernel->dispatch->clSetKernelArgSVMPointer(
- kernel,
- arg_index,
- arg_value);
-}
-
-CL_API_ENTRY cl_int CL_API_CALL
-clSetKernelExecInfo(cl_kernel kernel,
- cl_kernel_exec_info param_name,
- size_t param_value_size,
- const void * param_value) CL_API_SUFFIX__VERSION_2_0
-{
- KHR_ICD_VALIDATE_HANDLE_RETURN_ERROR(kernel, CL_INVALID_KERNEL);
- return kernel->dispatch->clSetKernelExecInfo(
- kernel,
- param_name,
- param_value_size,
- param_value);
-}
-
-CL_API_ENTRY cl_int CL_API_CALL
-clEnqueueSVMFree(cl_command_queue command_queue,
- cl_uint num_svm_pointers,
- void * svm_pointers[],
- void (CL_CALLBACK * pfn_free_func)(cl_command_queue queue,
- cl_uint num_svm_pointers,
- void * svm_pointers[],
- void * user_data),
- void * user_data,
- cl_uint num_events_in_wait_list,
- const cl_event * event_wait_list,
- cl_event * event) CL_API_SUFFIX__VERSION_2_0
-{
- KHR_ICD_VALIDATE_HANDLE_RETURN_ERROR(command_queue, CL_INVALID_COMMAND_QUEUE);
- return command_queue->dispatch->clEnqueueSVMFree(
- command_queue,
- num_svm_pointers,
- svm_pointers,
- pfn_free_func,
- user_data,
- num_events_in_wait_list,
- event_wait_list,
- event);
-}
-
-CL_API_ENTRY cl_int CL_API_CALL
-clEnqueueSVMMemcpy(cl_command_queue command_queue,
- cl_bool blocking_copy,
- void * dst_ptr,
- const void * src_ptr,
- size_t size,
- cl_uint num_events_in_wait_list,
- const cl_event * event_wait_list,
- cl_event * event) CL_API_SUFFIX__VERSION_2_0
-{
- KHR_ICD_VALIDATE_HANDLE_RETURN_ERROR(command_queue, CL_INVALID_COMMAND_QUEUE);
- return command_queue->dispatch->clEnqueueSVMMemcpy(
- command_queue,
- blocking_copy,
- dst_ptr,
- src_ptr,
- size,
- num_events_in_wait_list,
- event_wait_list,
- event);
-}
-
-
-CL_API_ENTRY cl_int CL_API_CALL
-clEnqueueSVMMemFill(cl_command_queue command_queue,
- void * svm_ptr,
- const void * pattern,
- size_t pattern_size,
- size_t size,
- cl_uint num_events_in_wait_list,
- const cl_event * event_wait_list,
- cl_event * event) CL_API_SUFFIX__VERSION_2_0
-{
- KHR_ICD_VALIDATE_HANDLE_RETURN_ERROR(command_queue, CL_INVALID_COMMAND_QUEUE);
- return command_queue->dispatch->clEnqueueSVMMemFill(
- command_queue,
- svm_ptr,
- pattern,
- pattern_size,
- size,
- num_events_in_wait_list,
- event_wait_list,
- event);
-}
-
-CL_API_ENTRY cl_int CL_API_CALL
-clEnqueueSVMMap(cl_command_queue command_queue,
- cl_bool blocking_map,
- cl_map_flags flags,
- void * svm_ptr,
- size_t size,
- cl_uint num_events_in_wait_list,
- const cl_event * event_wait_list,
- cl_event * event) CL_API_SUFFIX__VERSION_2_0
-{
- KHR_ICD_VALIDATE_HANDLE_RETURN_ERROR(command_queue, CL_INVALID_COMMAND_QUEUE);
- return command_queue->dispatch->clEnqueueSVMMap(
- command_queue,
- blocking_map,
- flags,
- svm_ptr,
- size,
- num_events_in_wait_list,
- event_wait_list,
- event);
-}
-
-CL_API_ENTRY cl_int CL_API_CALL
-clEnqueueSVMUnmap(cl_command_queue command_queue,
- void * svm_ptr,
- cl_uint num_events_in_wait_list,
- const cl_event * event_wait_list,
- cl_event * event) CL_API_SUFFIX__VERSION_2_0
-{
- KHR_ICD_VALIDATE_HANDLE_RETURN_ERROR(command_queue, CL_INVALID_COMMAND_QUEUE);
- return command_queue->dispatch->clEnqueueSVMUnmap(
- command_queue,
- svm_ptr,
- num_events_in_wait_list,
- event_wait_list,
- event);
-}
-
-CL_API_ENTRY cl_mem CL_API_CALL
-clCreatePipe(cl_context context,
- cl_mem_flags flags,
- cl_uint pipe_packet_size,
- cl_uint pipe_max_packets,
- const cl_pipe_properties * properties,
- cl_int * errcode_ret) CL_API_SUFFIX__VERSION_2_0
-{
- KHR_ICD_VALIDATE_HANDLE_RETURN_HANDLE(context, CL_INVALID_CONTEXT);
- return context->dispatch->clCreatePipe(
- context,
- flags,
- pipe_packet_size,
- pipe_max_packets,
- properties,
- errcode_ret);
-}
-
-CL_API_ENTRY cl_int CL_API_CALL
-clGetPipeInfo(cl_mem pipe,
- cl_image_info param_name,
- size_t param_value_size,
- void * param_value,
- size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_2_0
-{
- KHR_ICD_VALIDATE_HANDLE_RETURN_ERROR(pipe, CL_INVALID_MEM_OBJECT);
- return pipe->dispatch->clGetPipeInfo(
- pipe,
- param_name,
- param_value_size,
- param_value,
- param_value_size_ret);
-}
-
-CL_API_ENTRY cl_int CL_API_CALL
-clGetKernelSubGroupInfoKHR(
- cl_kernel kernel,
- cl_device_id device,
- cl_kernel_sub_group_info param_name,
- size_t input_value_size,
- const void * input_value,
- size_t param_value_size,
- void * param_value,
- size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_2_0
-{
- KHR_ICD_VALIDATE_HANDLE_RETURN_ERROR(kernel, CL_INVALID_KERNEL);
- return kernel->dispatch->clGetKernelSubGroupInfoKHR(
- kernel,
- device,
- param_name,
- input_value_size,
- input_value,
- param_value_size,
- param_value,
- param_value_size_ret);
-}
-
-CL_API_ENTRY cl_int CL_API_CALL
-clTerminateContextKHR(
- cl_context context) CL_API_SUFFIX__VERSION_2_0
-{
- KHR_ICD_VALIDATE_HANDLE_RETURN_ERROR(context, CL_INVALID_CONTEXT);
- return context->dispatch->clTerminateContextKHR(context);
-}
-
CL_API_ENTRY cl_mem CL_API_CALL
clCreateFromEGLImageKHR(
cl_context context,
@@ -2522,3 +2283,269 @@ clCreateEventFromEGLSyncKHR(
errcode_ret);
}
+CL_API_ENTRY cl_command_queue CL_API_CALL
+clCreateCommandQueueWithProperties(
+ cl_context context,
+ cl_device_id device,
+ const cl_queue_properties * properties,
+ cl_int * errcode_ret) CL_API_SUFFIX__VERSION_2_0
+{
+ KHR_ICD_VALIDATE_HANDLE_RETURN_HANDLE(context, CL_INVALID_CONTEXT);
+ return context->dispatch->clCreateCommandQueueWithProperties(
+ context,
+ device,
+ properties,
+ errcode_ret);
+}
+
+CL_API_ENTRY cl_mem CL_API_CALL
+clCreatePipe(
+ cl_context context,
+ cl_mem_flags flags,
+ cl_uint pipe_packet_size,
+ cl_uint pipe_max_packets,
+ const cl_pipe_properties * properties,
+ cl_int * errcode_ret) CL_API_SUFFIX__VERSION_2_0
+{
+ KHR_ICD_VALIDATE_HANDLE_RETURN_HANDLE(context, CL_INVALID_CONTEXT);
+ return context->dispatch->clCreatePipe(
+ context,
+ flags,
+ pipe_packet_size,
+ pipe_max_packets,
+ properties,
+ errcode_ret);
+}
+
+CL_API_ENTRY cl_int CL_API_CALL
+clGetPipeInfo(
+ cl_mem pipe,
+ cl_pipe_info param_name,
+ size_t param_value_size,
+ void * param_value,
+ size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_2_0
+{
+ KHR_ICD_VALIDATE_HANDLE_RETURN_ERROR(pipe, CL_INVALID_MEM_OBJECT);
+ return pipe->dispatch->clGetPipeInfo(
+ pipe,
+ param_name,
+ param_value_size,
+ param_value,
+ param_value_size_ret);
+}
+
+CL_API_ENTRY void * CL_API_CALL
+clSVMAlloc(
+ cl_context context,
+ cl_svm_mem_flags flags,
+ size_t size,
+ cl_uint alignment) CL_API_SUFFIX__VERSION_2_0
+{
+ if (!context) {
+ return NULL;
+ }
+ return context->dispatch->clSVMAlloc(
+ context,
+ flags,
+ size,
+ alignment);
+}
+
+CL_API_ENTRY void CL_API_CALL
+clSVMFree(
+ cl_context context,
+ void * svm_pointer) CL_API_SUFFIX__VERSION_2_0
+{
+ if (!context || !svm_pointer) {
+ return;
+ }
+ context->dispatch->clSVMFree(
+ context,
+ svm_pointer);
+}
+
+CL_API_ENTRY cl_int CL_API_CALL
+clEnqueueSVMFree(
+ cl_command_queue command_queue,
+ cl_uint num_svm_pointers,
+ void* svm_pointers[],
+ void (CL_CALLBACK* pfn_free_func)(
+ cl_command_queue queue,
+ cl_uint num_svm_pointers,
+ void* svm_pointers[],
+ void* user_data),
+ void* user_data,
+ cl_uint num_events_in_wait_list,
+ const cl_event* event_wait_list,
+ cl_event* event) CL_API_SUFFIX__VERSION_2_0
+{
+ KHR_ICD_VALIDATE_HANDLE_RETURN_ERROR(command_queue, CL_INVALID_COMMAND_QUEUE);
+ return command_queue->dispatch->clEnqueueSVMFree(
+ command_queue,
+ num_svm_pointers,
+ svm_pointers,
+ pfn_free_func,
+ user_data,
+ num_events_in_wait_list,
+ event_wait_list,
+ event);
+}
+
+CL_API_ENTRY cl_int CL_API_CALL
+clEnqueueSVMMemcpy(
+ cl_command_queue command_queue,
+ cl_bool blocking_copy,
+ void * dst_ptr,
+ const void * src_ptr,
+ size_t size,
+ cl_uint num_events_in_wait_list,
+ const cl_event * event_wait_list,
+ cl_event * event) CL_API_SUFFIX__VERSION_2_0
+{
+ KHR_ICD_VALIDATE_HANDLE_RETURN_ERROR(command_queue, CL_INVALID_COMMAND_QUEUE);
+ return command_queue->dispatch->clEnqueueSVMMemcpy(
+ command_queue,
+ blocking_copy,
+ dst_ptr,
+ src_ptr,
+ size,
+ num_events_in_wait_list,
+ event_wait_list,
+ event);
+}
+
+CL_API_ENTRY cl_int CL_API_CALL
+clEnqueueSVMMemFill(
+ cl_command_queue command_queue,
+ void * svm_ptr,
+ const void * pattern,
+ size_t pattern_size,
+ size_t size,
+ cl_uint num_events_in_wait_list,
+ const cl_event * event_wait_list,
+ cl_event * event) CL_API_SUFFIX__VERSION_2_0
+{
+ KHR_ICD_VALIDATE_HANDLE_RETURN_ERROR(command_queue, CL_INVALID_COMMAND_QUEUE);
+ return command_queue->dispatch->clEnqueueSVMMemFill(
+ command_queue,
+ svm_ptr,
+ pattern,
+ pattern_size,
+ size,
+ num_events_in_wait_list,
+ event_wait_list,
+ event);
+}
+
+CL_API_ENTRY cl_int CL_API_CALL
+clEnqueueSVMMap(
+ cl_command_queue command_queue,
+ cl_bool blocking_map,
+ cl_map_flags flags,
+ void * svm_ptr,
+ size_t size,
+ cl_uint num_events_in_wait_list,
+ const cl_event * event_wait_list,
+ cl_event * event) CL_API_SUFFIX__VERSION_2_0
+{
+ KHR_ICD_VALIDATE_HANDLE_RETURN_ERROR(command_queue, CL_INVALID_COMMAND_QUEUE);
+ return command_queue->dispatch->clEnqueueSVMMap(
+ command_queue,
+ blocking_map,
+ flags,
+ svm_ptr,
+ size,
+ num_events_in_wait_list,
+ event_wait_list,
+ event);
+}
+
+CL_API_ENTRY cl_int CL_API_CALL
+clEnqueueSVMUnmap(
+ cl_command_queue command_queue,
+ void * svm_ptr,
+ cl_uint num_events_in_wait_list,
+ const cl_event * event_wait_list,
+ cl_event * event) CL_API_SUFFIX__VERSION_2_0
+{
+ KHR_ICD_VALIDATE_HANDLE_RETURN_ERROR(command_queue, CL_INVALID_COMMAND_QUEUE);
+ return command_queue->dispatch->clEnqueueSVMUnmap(
+ command_queue,
+ svm_ptr,
+ num_events_in_wait_list,
+ event_wait_list,
+ event);
+}
+
+CL_API_ENTRY cl_sampler CL_API_CALL
+clCreateSamplerWithProperties(
+ cl_context context,
+ const cl_sampler_properties * sampler_properties,
+ cl_int * errcode_ret) CL_API_SUFFIX__VERSION_2_0
+{
+ KHR_ICD_VALIDATE_HANDLE_RETURN_HANDLE(context, CL_INVALID_CONTEXT);
+ return context->dispatch->clCreateSamplerWithProperties(
+ context,
+ sampler_properties,
+ errcode_ret);
+}
+
+CL_API_ENTRY cl_int CL_API_CALL
+clSetKernelArgSVMPointer(
+ cl_kernel kernel,
+ cl_uint arg_index,
+ const void * arg_value) CL_API_SUFFIX__VERSION_2_0
+{
+ KHR_ICD_VALIDATE_HANDLE_RETURN_ERROR(kernel, CL_INVALID_KERNEL);
+ return kernel->dispatch->clSetKernelArgSVMPointer(
+ kernel,
+ arg_index,
+ arg_value);
+}
+
+CL_API_ENTRY cl_int CL_API_CALL
+clSetKernelExecInfo(
+ cl_kernel kernel,
+ cl_kernel_exec_info param_name,
+ size_t param_value_size,
+ const void * param_value) CL_API_SUFFIX__VERSION_2_0
+{
+ KHR_ICD_VALIDATE_HANDLE_RETURN_ERROR(kernel, CL_INVALID_KERNEL);
+ return kernel->dispatch->clSetKernelExecInfo(
+ kernel,
+ param_name,
+ param_value_size,
+ param_value);
+}
+
+CL_API_ENTRY cl_int CL_API_CALL
+clGetKernelSubGroupInfoKHR(
+ cl_kernel in_kernel,
+ cl_device_id in_device,
+ cl_kernel_sub_group_info param_name,
+ size_t input_value_size,
+ const void * input_value,
+ size_t param_value_size,
+ void * param_value,
+ size_t * param_value_size_ret) CL_EXT_SUFFIX__VERSION_2_0
+{
+ KHR_ICD_VALIDATE_HANDLE_RETURN_ERROR(in_kernel, CL_INVALID_KERNEL);
+ return in_kernel->dispatch->clGetKernelSubGroupInfoKHR(
+ in_kernel,
+ in_device,
+ param_name,
+ input_value_size,
+ input_value,
+ param_value_size,
+ param_value,
+ param_value_size_ret);
+}
+
+CL_API_ENTRY cl_int CL_API_CALL
+clTerminateContextKHR(
+ cl_context context) CL_API_SUFFIX__VERSION_2_0
+{
+ KHR_ICD_VALIDATE_HANDLE_RETURN_ERROR(context, CL_INVALID_CONTEXT);
+ return context->dispatch->clTerminateContextKHR(context);
+}
+
diff --git a/projects/clr/opencl/api/opencl/khronos/icd/icd_dispatch.h b/projects/clr/opencl/api/opencl/khronos/icd/icd_dispatch.h
index 023f4427e8..baff2b1f43 100644
--- a/projects/clr/opencl/api/opencl/khronos/icd/icd_dispatch.h
+++ b/projects/clr/opencl/api/opencl/khronos/icd/icd_dispatch.h
@@ -392,6 +392,16 @@ typedef CL_API_ENTRY cl_int (CL_API_CALL *KHRpfn_clSetKernelExecInfo)(
size_t /* param_value_size */,
const void * /* param_value */) CL_API_SUFFIX__VERSION_2_0;
+typedef CL_API_ENTRY cl_int (CL_API_CALL *KHRpfn_clGetKernelSubGroupInfoKHR)(
+ cl_kernel /* in_kernel */,
+ cl_device_id /*in_device*/,
+ cl_kernel_sub_group_info /* param_name */,
+ size_t /*input_value_size*/,
+ const void * /*input_value*/,
+ size_t /*param_value_size*/,
+ void* /*param_value*/,
+ size_t* /*param_value_size_ret*/) CL_EXT_SUFFIX__VERSION_2_0;
+
// Event Object APIs
typedef CL_API_ENTRY cl_int (CL_API_CALL *KHRpfn_clWaitForEvents)(
cl_uint num_events,
@@ -1023,7 +1033,7 @@ typedef CL_API_ENTRY cl_int (CL_API_CALL *KHRpfn_clEnqueueAcquireDX9MediaSurface
typedef CL_API_ENTRY cl_int (CL_API_CALL *KHRpfn_clEnqueueReleaseDX9MediaSurfacesKHR)(
cl_command_queue command_queue,
cl_uint num_objects,
- cl_mem * mem_objects,
+ const cl_mem * mem_objects,
cl_uint num_events_in_wait_list,
const cl_event * event_wait_list,
cl_event * event) CL_API_SUFFIX__VERSION_1_2;
@@ -1114,7 +1124,7 @@ extern CL_API_ENTRY cl_int CL_API_CALL
clEnqueueReleaseDX9MediaSurfacesKHR(
cl_command_queue command_queue,
cl_uint num_objects,
- cl_mem * mem_objects,
+ const cl_mem * mem_objects,
cl_uint num_events_in_wait_list,
const cl_event * event_wait_list,
cl_event * event);
@@ -1218,16 +1228,6 @@ typedef CL_API_ENTRY cl_event (CL_API_CALL *KHRpfn_clCreateEventFromEGLSyncKHR)(
CLeglDisplayKHR display,
cl_int *errcode_ret);
-typedef CL_API_ENTRY cl_int (CL_API_CALL * KHRpfn_clGetKernelSubGroupInfoKHR)(
- cl_kernel kernel,
- cl_device_id device,
- cl_kernel_sub_group_info param_name,
- size_t input_value_size,
- const void * input_value,
- size_t param_value_size,
- void * param_value,
- size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_2_0;
-
typedef CL_API_ENTRY cl_int (CL_API_CALL * KHRpfn_clTerminateContextKHR)(
cl_context context) CL_API_SUFFIX__VERSION_2_0;
@@ -1403,7 +1403,9 @@ struct KHRicdVendorDispatchRec
KHRpfn_clSetKernelArgSVMPointer clSetKernelArgSVMPointer;
KHRpfn_clSetKernelExecInfo clSetKernelExecInfo;
+ /* cl_khr_sub_groups */
KHRpfn_clGetKernelSubGroupInfoKHR clGetKernelSubGroupInfoKHR;
+
KHRpfn_clTerminateContextKHR clTerminateContextKHR;
};