From 18b9519a66f88d0f3fa9e684920faf4218b8a412 Mon Sep 17 00:00:00 2001 From: Matthew Waters Date: Tue, 19 May 2015 16:14:39 +1000 Subject: [PATCH] glsyncmeta: ensure that the Fence is going to be executed Otherwise it could stay client side without being submitted to the GL server resulting in another context waiting on a Fence that will never become signalled causing a deadlock. --- gst-libs/gst/gl/gstglsyncmeta.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/gst-libs/gst/gl/gstglsyncmeta.c b/gst-libs/gst/gl/gstglsyncmeta.c index db48f02..be275da 100644 --- a/gst-libs/gst/gl/gstglsyncmeta.c +++ b/gst-libs/gst/gl/gstglsyncmeta.c @@ -68,9 +68,8 @@ _set_sync_point (GstGLContext * context, GstGLSyncMeta * sync_meta) gl->DeleteSync (sync_meta->glsync); sync_meta->glsync = gl->FenceSync (GL_SYNC_GPU_COMMANDS_COMPLETE, 0); GST_LOG ("setting sync object %p", sync_meta->glsync); - } else { - gl->Flush (); } + gl->Flush (); } void @@ -100,9 +99,6 @@ _wait (GstGLContext * context, GstGLSyncMeta * sync_meta) void gst_gl_sync_meta_wait (GstGLSyncMeta * sync_meta, GstGLContext * context) { - if (sync_meta->context == context) - return; - if (sync_meta->glsync) { gst_gl_context_thread_add (context, (GstGLContextThreadFunc) _wait, sync_meta); -- 2.7.4