summaryrefslogtreecommitdiff
path: root/src/cl_event.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/cl_event.c')
-rw-r--r--src/cl_event.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/cl_event.c b/src/cl_event.c
index 918e245a..212f1eec 100644
--- a/src/cl_event.c
+++ b/src/cl_event.c
@@ -490,3 +490,25 @@ cl_int cl_event_marker(cl_command_queue queue, cl_event* event)
cl_event_set_status(*event, CL_COMPLETE);
return CL_SUCCESS;
}
+
+cl_int cl_event_profiling(cl_event event, cl_profiling_info param_name, cl_ulong *ret_val)
+{
+ if (!event->gpgpu_event) {
+ /* Some event like read buffer do not need GPU involved, so
+ we just return all the profiling to 0 now. */
+ *ret_val = 0;
+ return CL_SUCCESS;
+ }
+
+ if(param_name == CL_PROFILING_COMMAND_START ||
+ param_name == CL_PROFILING_COMMAND_QUEUED ||
+ param_name == CL_PROFILING_COMMAND_SUBMIT) {
+ cl_gpgpu_event_get_timestamp(event->gpgpu_event, 0, ret_val);
+ return CL_SUCCESS;
+ } else if (param_name == CL_PROFILING_COMMAND_END) {
+ cl_gpgpu_event_get_timestamp(event->gpgpu_event, 1, ret_val);
+ return CL_SUCCESS;
+ } else {
+ return CL_INVALID_VALUE;
+ }
+}