summaryrefslogtreecommitdiff
path: root/gst-libs
diff options
context:
space:
mode:
authorMatthew Waters <matthew@centricular.com>2015-05-19 16:14:39 +1000
committerMatthew Waters <matthew@centricular.com>2015-05-20 00:36:48 +1000
commit81e46e8b75ead396b4fcc1a155f027a33979c821 (patch)
treeb1185d94d9d07897b2e6455f05e4af3a9738efbc /gst-libs
parent2747eb123284ac359e00ae71246566f2a508454c (diff)
downloadgstreamer-plugins-bad-81e46e8b75ead396b4fcc1a155f027a33979c821.tar.gz
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.
Diffstat (limited to 'gst-libs')
-rw-r--r--gst-libs/gst/gl/gstglsyncmeta.c6
1 files changed, 1 insertions, 5 deletions
diff --git a/gst-libs/gst/gl/gstglsyncmeta.c b/gst-libs/gst/gl/gstglsyncmeta.c
index db48f02cf..be275da81 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);