[Beignet] [PATCH 2/2] add [opencl 1.2] API clEnqueueMarkerWithWaitList.
Yang, Rong R
rong.r.yang at intel.com
Mon Apr 28 19:30:11 PDT 2014
One comment.
-----Original Message-----
From: Beignet [mailto:beignet-bounces at lists.freedesktop.org] On Behalf Of xionghu.luo at intel.com
Sent: Tuesday, April 29, 2014 4:27 AM
To: beignet at lists.freedesktop.org
Cc: Luo, Xionghu
Subject: [Beignet] [PATCH 2/2] add [opencl 1.2] API clEnqueueMarkerWithWaitList.
From: Luo <xionghu.luo at intel.com>
---
src/cl_api.c | 25 ++++++++++++++++++++++---
src/cl_event.c | 11 ++++++++++-
src/cl_event.h | 2 +-
3 files changed, 33 insertions(+), 5 deletions(-)
diff --git a/src/cl_api.c b/src/cl_api.c index 1543ff4..b5c42e7 100644
--- a/src/cl_api.c
+++ b/src/cl_api.c
@@ -2623,8 +2623,8 @@ error:
}
cl_int
-clEnqueueMarker(cl_command_queue command_queue,
- cl_event * event)
+clEnqueueMarker(cl_command_queue command_queue,
+ cl_event *event)
{
cl_int err = CL_SUCCESS;
CHECK_QUEUE(command_queue);
@@ -2633,7 +2633,26 @@ clEnqueueMarker(cl_command_queue command_queue,
goto error;
}
- cl_event_marker(command_queue, event);
+ cl_event_marker_with_wait_list(command_queue, 0, NULL, event);
+error:
+ return err;
+}
+
+cl_int
+clEnqueueMarkerWithWaitList(cl_command_queue command_queue,
+ cl_uint num_events_in_wait_list,
+ const cl_event *event_wait_list,
+ cl_event *event)
+{
+ cl_int err = CL_SUCCESS;
+ CHECK_QUEUE(command_queue);
+ if(event == NULL) {
+ err = CL_INVALID_VALUE;
+ goto error;
+ }
+ TRY(cl_event_check_waitlist, num_events_in_wait_list,
+event_wait_list, event, command_queue->ctx);
+
+ cl_event_marker_with_wait_list(command_queue,
+ num_events_in_wait_list, event_wait_list, event);
error:
return err;
}
diff --git a/src/cl_event.c b/src/cl_event.c index 85e4041..46006ce 100644
--- a/src/cl_event.c
+++ b/src/cl_event.c
@@ -486,14 +486,23 @@ void cl_event_update_status(cl_event event)
cl_event_set_status(event, CL_COMPLETE); }
-cl_int cl_event_marker(cl_command_queue queue, cl_event* event)
+cl_int cl_event_marker_with_wait_list(cl_command_queue queue,
+ cl_uint num_events_in_wait_list,
+ const cl_event *event_wait_list,
+ cl_event* event)
{
enqueue_data data;
+ cl_uint i = 0;
*event = cl_event_new(queue->ctx, queue, CL_COMMAND_MARKER, CL_TRUE);
if(event == NULL)
return CL_OUT_OF_HOST_MEMORY;
+ //insert the input events to queue
+ for(i=0; i<num_events_in_wait_list; i++) {
+ cl_command_queue_insert_event(queue, event_wait_list[i]); }
>>>>>>>Only insert user event to queue.
+
//if wait_events_num>0, the marker event need wait queue->wait_events
if(queue->wait_events_num > 0) {
data.type = EnqueueMarker;
diff --git a/src/cl_event.h b/src/cl_event.h index 3c61110..5a78a8d 100644
--- a/src/cl_event.h
+++ b/src/cl_event.h
@@ -90,7 +90,7 @@ void cl_event_set_status(cl_event, cl_int);
/* Check and update event status */
void cl_event_update_status(cl_event);
/* Create the marker event */
-cl_int cl_event_marker(cl_command_queue, cl_event*);
+cl_int cl_event_marker_with_wait_list(cl_command_queue, cl_uint, const
+cl_event *, cl_event*);
/* Do the event profiling */
cl_int cl_event_get_timestamp(cl_event event, cl_profiling_info param_name); #endif /* __CL_EVENT_H__ */
--
1.8.1.2
_______________________________________________
Beignet mailing list
Beignet at lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/beignet
More information about the Beignet
mailing list