tests/gl: make sure all GL commands are executed on the GL thread
authorMatthew Waters <matthew@centricular.com>
Thu, 29 Sep 2016 01:45:57 +0000 (11:45 +1000)
committerTim-Philipp Müller <tim@centricular.com>
Sat, 9 Dec 2017 19:32:22 +0000 (19:32 +0000)
e.g. the final glGetError() must also be completed on the GL thread

tests/check/libs/gstglcolorconvert.c
tests/check/libs/gstglupload.c

index d891c8b..98ec48f 100644 (file)
@@ -85,14 +85,21 @@ setup (void)
 }
 
 static void
-teardown (void)
+_check_gl_error (GstGLContext * context, gpointer data)
 {
   GLuint error = context->gl_vtable->GetError ();
   fail_if (error != GL_NONE, "GL error 0x%x encountered during processing\n",
       error);
+}
 
+static void
+teardown (void)
+{
   gst_object_unref (convert);
   gst_object_unref (window);
+
+  gst_gl_context_thread_add (context, (GstGLContextThreadFunc) _check_gl_error,
+      NULL);
   gst_object_unref (context);
   gst_object_unref (display);
 }
index 7c52a85..707adb6 100644 (file)
@@ -86,14 +86,21 @@ setup (void)
 }
 
 static void
-teardown (void)
+_check_gl_error (GstGLContext * context, gpointer data)
 {
   GLuint error = context->gl_vtable->GetError ();
   fail_if (error != GL_NONE, "GL error 0x%x encountered during processing\n",
       error);
+}
 
+static void
+teardown (void)
+{
   gst_object_unref (upload);
   gst_object_unref (window);
+
+  gst_gl_context_thread_add (context, (GstGLContextThreadFunc) _check_gl_error,
+      NULL);
   gst_object_unref (context);
   gst_object_unref (display);
   if (shader)