[Mesa-dev] [PATCH] clover: add functions up to 2.2 to ICD dispatch table

Karol Herbst kherbst at redhat.com
Mon Jan 22 11:58:17 UTC 2018


using void* for functions we need newer CL headers for.

Signed-off-by: Karol Herbst <kherbst at redhat.com>
---
 src/gallium/state_trackers/clover/api/dispatch.cpp |  29 +++++-
 src/gallium/state_trackers/clover/api/dispatch.hpp | 116 +++++++++++++++++++++
 2 files changed, 144 insertions(+), 1 deletion(-)

diff --git a/src/gallium/state_trackers/clover/api/dispatch.cpp b/src/gallium/state_trackers/clover/api/dispatch.cpp
index 8f4cfdc7fb..f362c84819 100644
--- a/src/gallium/state_trackers/clover/api/dispatch.cpp
+++ b/src/gallium/state_trackers/clover/api/dispatch.cpp
@@ -142,6 +142,33 @@ namespace clover {
       NULL, // clEnqueueReleaseD3D11ObjectsKHR
       NULL, // clGetDeviceIDsFromDX9MediaAdapterKHR
       NULL, // clEnqueueAcquireDX9MediaSurfacesKHR
-      NULL // clEnqueueReleaseDX9MediaSurfacesKHR
+      NULL, // clEnqueueReleaseDX9MediaSurfacesKHR
+      NULL, // clCreateFromEGLImageKHR
+      NULL, // clEnqueueAcquireEGLObjectsKHR
+      NULL, // clEnqueueReleaseEGLObjectsKHR
+      NULL, // clCreateEventFromEGLSyncKHR
+      NULL, // clCreateCommandQueueWithProperties
+      NULL, // clCreatePipe
+      NULL, // clGetPipeInfo
+      NULL, // clSVMAlloc
+      NULL, // clSVMFree
+      NULL, // clEnqueueSVMFree
+      NULL, // clEnqueueSVMMemcpy
+      NULL, // clEnqueueSVMMemFill
+      NULL, // clEnqueueSVMMap
+      NULL, // clEnqueueSVMUnmap
+      NULL, // clCreateSamplerWithProperties
+      NULL, // clSetKernelArgSVMPointer
+      NULL, // clSetKernelExecInfo
+      NULL, // clGetKernelSubGroupInfoKHR
+      NULL, // clCloneKernel
+      NULL, // clCreateProgramWithIL,
+      NULL, // clEnqueueSVMMigrateMem
+      NULL, // clGetDeviceAndHostTimer
+      NULL, // clGetHostTimer
+      NULL, // clGetKernelSubGroupInfo
+      NULL, // clSetDefaultDeviceCommandQueue
+      NULL, // clSetProgramReleaseCallback
+      NULL, // clSetProgramSpecializationConstant
    };
 }
diff --git a/src/gallium/state_trackers/clover/api/dispatch.hpp b/src/gallium/state_trackers/clover/api/dispatch.hpp
index 0ec1b51fa6..0910e19422 100644
--- a/src/gallium/state_trackers/clover/api/dispatch.hpp
+++ b/src/gallium/state_trackers/clover/api/dispatch.hpp
@@ -765,6 +765,122 @@ struct _cl_icd_dispatch {
    void *clGetDeviceIDsFromDX9MediaAdapterKHR;
    void *clEnqueueAcquireDX9MediaSurfacesKHR;
    void *clEnqueueReleaseDX9MediaSurfacesKHR;
+   void *clCreateFromEGLImageKHR;
+   void *clEnqueueAcquireEGLObjectsKHR;
+   void *clEnqueueReleaseEGLObjectsKHR;
+   void *clCreateEventFromEGLSyncKHR;
+   void *clCreateCommandQueueWithProperties;
+   void *clCreatePipe;
+   void *clGetPipeInfo;
+   void *clSVMAlloc;
+
+   CL_API_ENTRY void (CL_API_CALL *clSVMFree)(
+      cl_context context,
+      void *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, cl_uint, void **, void *),
+      void *user_data,
+      cl_uint num_events_in_wait_list,
+      const cl_event *event_wait_list,
+      cl_event *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_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_ENTRY cl_int (CL_API_CALL *clEnqueueSVMMap)(
+      cl_command_queue command_queue,
+      cl_bool blocking_map,
+      cl_map_flags map_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_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);
+
+   void *clCreateSamplerWithProperties;
+
+   CL_API_ENTRY cl_int (CL_API_CALL *clSetKernelArgSVMPointer)(
+      cl_kernel kernel,
+      cl_uint arg_index,
+      const void *arg_value);
+
+   void *clSetKernelExecInfo;
+   void *clGetKernelSubGroupInfoKHR;
+
+   CL_API_ENTRY cl_kernel (CL_API_CALL *clCloneKernel)(
+      cl_kernel source_kernel,
+      cl_int *errcode_ret);
+
+   CL_API_ENTRY cl_program (CL_API_CALL *clCreateProgramWithIL)(
+      cl_context context,
+      const void *il,
+      size_t length,
+      cl_int *errcode_ret);
+
+   CL_API_ENTRY cl_int (CL_API_CALL *clEnqueueSVMMigrateMem)(
+      cl_command_queue command_queue,
+      cl_uint num_svm_pointers,
+      const void **svm_pointers,
+      const size_t *sizes,
+      cl_mem_migration_flags flags,
+      cl_uint num_events_in_wait_list,
+      const cl_event *event_wait_list,
+      cl_event *event);
+
+   CL_API_ENTRY cl_int (CL_API_CALL *clGetDeviceAndHostTimer)(
+      cl_device_id device,
+      cl_ulong *device_timestamp,
+      cl_ulong *host_timestamp);
+
+   CL_API_ENTRY cl_int (CL_API_CALL *clGetHostTimer)(
+      cl_device_id device,
+      cl_ulong *host_timestamp);
+
+   void *clGetKernelSubGroupInfo;
+
+   CL_API_ENTRY cl_int (CL_API_CALL *clSetDefaultDeviceCommandQueue)(
+      cl_context context,
+      cl_device_id device,
+      cl_command_queue command_queue);
+
+   CL_API_ENTRY cl_int (CL_API_CALL *clSetProgramReleaseCallback)(
+      cl_program program,
+      void (CL_CALLBACK *pfn_notify)(cl_program program, void *user_data),
+      void *user_data);
+
+   CL_API_ENTRY cl_int (CL_API_CALL *clSetProgramSpecializationConstant)(
+      cl_program program,
+      cl_uint spec_id,
+      size_t spec_size,
+      const void *spec_value);
 };
 
 namespace clover {
-- 
2.14.3



More information about the mesa-dev mailing list