GNOME Bugzilla – Bug 749728
glimagesink doesn't work on nvidia OSX
Last modified: 2016-05-28 20:09:46 UTC
glimagesink doesn't work at all. gst-launch-1.0 videotestsrc ! glimagesink gives the following error message: vivia@eve ~/c/d/d/bin> ./gst-launch-1.0 videotestsrc ! glimagesink Setting pipeline to PAUSED ... Pipeline is PREROLLING ... Got context from element 'sink': gst.gl.GLDisplay=context, gst.gl.GLDisplay=(GstGLDisplay)"\(GstGLDisplayCocoa\)\ gldisplaycocoa0"; 0:00:00.516269000 43398 0x7fbc22560d60 ERROR default gstglcaopengllayer.m:130:-[GstGLCAOpenGLLayer copyCGLContextForPixelFormat:]: failed to fill wrapped context information: An opengl3 context created but the required ES2 compatibility was not found Pipeline is PREROLLED ... Setting pipeline to PLAYING ... New clock: GstSystemClock And then the image is just black.
Created attachment 303817 [details] Debug log with gl*:6
0:00:00.499664000 [331m43410[00m 0x7fba30e15c90 [37mDEBUG [00m [00m glcontext gstglcontext.c:1468:gst_gl_context_fill_info:<glwrappedcontext0>[00m GL_EXTENSIONS: Is the problem here. The context we created has all required extensions, so maybe we just have to query the wrapped context?
The wrapped context doesn't seem to have any extensions listed however the original context has the GL_ARB_ES2_compatibility extension listed :/ glcontext gstglcontext.c:1468:gst_gl_context_fill_info:<glwrappedcontext0> GL_EXTENSIONS: default gstglcaopengllayer.m:130:-[GstGLCAOpenGLLayer copyCGLContextForPixelFormat:]: failed to fill wrapped context information: An opengl3 context created but the required ES2 compatibility was not found
(In reply to Sebastian Dröge (slomo) from comment #2) > Is the problem here. The context we created has all required extensions, so > maybe we just have to query the wrapped context? That is precisely what should be happening already and is taken care of by gst_gl_context_fill_info().
This all works on my Intel OS X box.
This breaks in the same way on my 2014 MacBook Pro with NVIDIA GPU.
commit 6586d32443d7f136c598294304abd26dc333f288 Author: Matthew Waters <matthew@centricular.com> Date: Sat May 23 01:00:18 2015 +1000 gl/calayer: provide the exact GL api version for the wrapped context Otherwise we could end up being mistaken for the diference between a gl3 and a gl2 context resulting in a failure getting the list of extensions from the wrapped context due to the difference between glGetString and glGetStringi for the GL_EXTENSIONS token. https://bugzilla.gnome.org/show_bug.cgi?id=749728
Yep, I can confirm that it works :) Thanks a lot!
Created attachment 328680 [details] debug log I am getting the exact same problem as the initial bug-description, running from master. Attached is output from GST_DEBUG=*gl:6