This bug is cased by event flush, we should not only run usr event but also
event made by enqueue functions.
If the event haven't been completed before it is been overwite in the
last_event, the related gpgpu buffer will not be unreference. And will cause
all related drm buffers unreference and thenw leak.

Signed-off-by: Pan Xiuli <xiuli....@intel.com>
---
 src/cl_command_queue.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/cl_command_queue.c b/src/cl_command_queue.c
index 4b92311..fd1d613 100644
--- a/src/cl_command_queue.c
+++ b/src/cl_command_queue.c
@@ -261,7 +261,7 @@ cl_command_queue_flush(cl_command_queue queue)
   // the event any more. If we don't do this here, we will leak that event
   // and all the corresponding buffers which is really bad.
   cl_event last_event = get_last_event(queue);
-  if (last_event && last_event->user_cb)
+  if (last_event)
     cl_event_update_status(last_event, 1);
   cl_event current_event = get_current_event(queue);
   if (current_event && err == CL_SUCCESS) {
-- 
2.1.4

_______________________________________________
Beignet mailing list
Beignet@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/beignet

Reply via email to