[Mesa-dev] [PATCH v3 02/21] clover: update ICD table to support everything up to 2.2

Pierre Moreau pierre.morrow at free.fr
Wed Feb 21 22:50:27 UTC 2018


From: Karol Herbst <kherbst at redhat.com>

v2: add more prototypes

Signed-off-by: Karol Herbst <kherbst at redhat.com>
Signed-off-by: Pierre Moreau <pierre.morrow at free.fr>
---
 src/gallium/state_trackers/clover/api/dispatch.cpp |  29 +++-
 src/gallium/state_trackers/clover/api/dispatch.hpp | 190 +++++++++++++++++++++
 2 files changed, 218 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..8be4d3cb26 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..60fb75a146 100644
--- a/src/gallium/state_trackers/clover/api/dispatch.hpp
+++ b/src/gallium/state_trackers/clover/api/dispatch.hpp
@@ -27,6 +27,7 @@
 
 #include "CL/cl.h"
 #include "CL/cl_ext.h"
+#include "CL/cl_egl.h"
 #include "CL/cl_gl.h"
 
 ///
@@ -765,6 +766,195 @@ struct _cl_icd_dispatch {
    void *clGetDeviceIDsFromDX9MediaAdapterKHR;
    void *clEnqueueAcquireDX9MediaSurfacesKHR;
    void *clEnqueueReleaseDX9MediaSurfacesKHR;
+
+   CL_API_ENTRY void (CL_API_CALL *clCreateFromEGLImageKHR)(
+      cl_context context,
+      CLeglDisplayKHR display,
+      CLeglImageKHR image,
+      cl_mem_flags flags,
+      const cl_egl_image_properties_khr *properties,
+      cl_int *errcode_ret);
+
+   CL_API_ENTRY void (CL_API_CALL *clEnqueueAcquireEGLObjectsKHR)(
+      cl_command_queue command_queue,
+      cl_uint num_objects,
+      const cl_mem *mem_objects,
+      cl_uint num_events_in_wait_list,
+      const cl_event *event_wait_list,
+      cl_event *event);
+
+   CL_API_ENTRY void (CL_API_CALL *clEnqueueReleaseEGLObjectsKHR)(
+      cl_command_queue command_queue,
+      cl_uint num_objects,
+      const cl_mem *mem_objects,
+      cl_uint num_events_in_wait_list,
+      const cl_event *event_wait_list,
+      cl_event *event);
+
+   CL_API_ENTRY void (CL_API_CALL *clCreateEventFromEGLSyncKHR)(
+      cl_context context,
+      CLeglSyncKHR sync,
+      CLeglDisplayKHR display,
+      cl_int *errcode_ret);
+
+   CL_API_ENTRY void (CL_API_CALL *clCreateCommandQueueWithProperties)(
+      cl_context context,
+      cl_device_id device,
+      const cl_queue_properties *properties,
+      cl_int *errcode_ret);
+
+   CL_API_ENTRY void (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_ENTRY void (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_ENTRY void (CL_API_CALL *clSVMAlloc)(
+      cl_context context,
+      cl_svm_mem_flags flags,
+      size_t size,
+      unsigned int alignment);
+
+   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);
+
+   CL_API_ENTRY void (CL_API_CALL *clCreateSamplerWithProperties)(
+      cl_context context,
+      const cl_sampler_properties *sampler_properties,
+      cl_int *errcode_ret);
+
+   CL_API_ENTRY cl_int (CL_API_CALL *clSetKernelArgSVMPointer)(
+      cl_kernel kernel,
+      cl_uint arg_index,
+      const void *arg_value);
+
+   CL_API_ENTRY void (CL_API_CALL *clSetKernelExecInfo)(
+      cl_kernel kernel,
+      cl_kernel_exec_info param_name,
+      size_t param_value_size,
+      const void *param_value);
+
+   CL_API_ENTRY void (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_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);
+
+   CL_API_ENTRY void (CL_API_CALL *clGetKernelSubGroupInfo)(
+      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_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.16.2



More information about the mesa-dev mailing list