The spec only says if event is not in CL_COMPLETE status, it will
get CL_PROFILING_INFO_NOT_AVAILABLE. It doesn't mean a clFinish()
should update all events status. According to the spec, clFinish()
only need to make sure the previously enqueued task has been processed
and completed.
Form my
I think these two patches both need when application GetEventProfilingInfo.
From application view, it is make sense that all event that don't depend on
other events should have been flushed and finished when clFinish return.
The problem is the event have finished, but beignet don't update the
Beignet current uses an on-demand manner to maintain the events' status.
For those APIs which need to get current events' status, we insert a
cl_gpgpu_event_update_status(). It seems there is no need for clFinish().
If you could find any case that if we don't insert it in clFinish() then it
will
The root cause of beignet using on-demand manner is no point to update event's
status. If there have this point, I think there is no side effect to update the
status.
I just find an case:
clEnqueueNDRange(., event);
clSetEventCallback(event, );
clFinish(...);
return;
In event
For this special case, the user application has an serious bug which is
forgetting to call clReleaseEvent()
and will leak one event.
For beignet, the real problem is if an application rely on event driven
mechanism, then it may never
get a chance to move forward, here is a simple example:
From: Luo Xionghu xionghu@intel.com
if we are in if/endif fix mode, the long if/endif block need be
split to short ones, but we cannot do this in structuralized
blocks, so don't generated long if/endif structuralized blocks here.
the threshold is 1000 by estimate.
Signed-off-by: Luo Xionghu
-Original Message-
From: Beignet [mailto:beignet-boun...@lists.freedesktop.org] On Behalf Of
Yang, Rong R
Sent: Wednesday, August 5, 2015 1:05 PM
To: Zhigang Gong; Luo, Xionghu
Cc: beignet@lists.freedesktop.org
Subject: Re: [Beignet] [PATCH v2] GetEventProfilingInfo could query