Headless mode for GL plugin
Matthew Waters
ystreet00 at gmail.com
Tue Mar 27 00:37:47 UTC 2018
Ah, it fails because there's no connecter. I assume there's no display
attached to the computer. Smoke test would be to connect something
there and then try.
0:00:00.019554669 20592 0x5635e42be730 ERROR gldisplay gstgldisplay_gbm.c:181:gst_gl_display_gbm_setup_drm: No connected DRM connector found
In any case, that's a bug. Could you file a bug at
https://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer&component=gst-plugins-good?
Cheers
-Matt
On 26/03/18 22:17, Alexander Yanin wrote:
> Here are the debug logs:
> https://pastebin.com/x610epZd
>
> No, I am running on a system with one GPU.
>
> 2018-03-26 13:25 GMT+03:00 Matthew Waters <ystreet00 at gmail.com
> <mailto:ystreet00 at gmail.com>>:
>
> Hmm, from your earlier log, it seems the gldisplaygbm is not being
> used
>
> Step 1 is to figure out why.
>
> Try getting some more debug logs from the gbm detection with:
>
> GST_DEBUG=gldisplay:7,gleglgbm:7,gl*:4,3 gst-launch-1.0 <pipeline>
>
> This should show what's detected and what fails for you.
>
> Random side guess. Are you running on a dual-GPU system?
>
> Cheers
> -Matt
>
>
> On 26/03/18 21:16, Alexander Yanin wrote:
>> It seems that this flag is set:
>>
>> $ cat /usr/lib/gstreamer-1.0/include/gst/gl/gstglconfig.h | grep
>> GST_GL_HAVE_WINDOW_GBM
>>
>> #define GST_GL_HAVE_WINDOW_GBM 1
>>
>> GBM platform is supported by EGL. eglinfo output:
>>
>> GBM platform:
>> EGL API version: 1.4
>> EGL vendor string: Mesa Project
>> EGL version string: 1.4 (DRI2)
>> EGL client APIs: OpenGL OpenGL_ES
>>
>> openglmixer plugin is linked against GBM and EGL:
>>
>> $ ldd /usr/lib/gstreamer-1.0/libgstopenglmixers.so
>>
>> libEGL.so.1 => /usr/lib/libEGL.so.1 (0x00007f9b28daa000)
>> libdrm.so.2 => /usr/lib/libdrm.so.2 (0x00007f9b28b98000)
>> libgbm.so.1 => /usr/lib/libgbm.so.1 (0x00007f9b28989000)
>>
>> 2018-03-26 12:53 GMT+03:00 Matthew Waters <ystreet00 at gmail.com
>> <mailto:ystreet00 at gmail.com>>:
>>
>> Arch may be missing the GBM window system.
>>
>> Check if
>>
>> #define GST_GL_HAVE_WINDOW_GBM 1
>>
>> Is true inside /usr/lib/gstreamer-1.0/gst/gl/gstglconfig.h
>>
>> Cheers
>> -Matt
>>
>>
>> On 26/03/18 19:45, Alexander Yanin wrote:
>>> Unfortunately, it doesn't work out of the box for me on
>>> Arch. Here is the output^
>>>
>>> glcontext gstglcontext.c:337:gst_gl_context_new: creating a
>>> context for display <gldisplayegl0>, user choice:(null)
>>> glwindow gstglwindow.c:251:gst_gl_window_new: creating a
>>> window, user choice:gbm
>>> glwindow gstglwindow.c:293:gst_gl_window_new: Could not
>>> create window. user specified gbm, creating dummy window
>>> glcontext
>>> gstglcontext.c:1240:gst_gl_context_create_thread:<glcontextegl23>
>>> Attempting to create opengl context. user chosen api(s)
>>> (any), compiled api support (opengl opengl3 gles2) display
>>> api (opengl opengl3 gles2)
>>> glcontext
>>> gstglcontext.c:1244:gst_gl_context_create_thread:<glcontextegl23>
>>> Failed to create context
>>> glcontext
>>> gstglcontext.c:1046:gst_gl_context_create:<glcontextegl23>
>>> gl thread created
>>> glmixer gstglbasemixer.c:176:_get_gl_context:<mixer> error:
>>> Failed to initialize egl: EGL_NOT_INITIALIZED
>>>
>>> Did Arch maintainers miss some compile-time flags or have I
>>> done something wrong?
>>>
>>> 2018-03-23 15:30 GMT+03:00 Alexander Yanin
>>> <sashayanin at gmail.com <mailto:sashayanin at gmail.com>>:
>>>
>>> Thank you, Matt. I will try, hope this should work with
>>> 1.14
>>>
>>> 2018-03-23 15:25 GMT+03:00 Matthew Waters
>>> <ystreet00 at gmail.com <mailto:ystreet00 at gmail.com>>:
>>>
>>> It should work out of the box if you don't already
>>> have an X11/Wayland display server running. It's
>>> chosen after X11/Wayland connections fail.
>>>
>>> You can also force it by setting the environment
>>> variable GST_GL_WINDOW=gbm
>>>
>>> e.g. GST_DEBUG=gl*:4 GST_GL_WINDOW=gbm
>>> gst-launch-1.0 videotestsrc ! glupload !
>>> gleffects_squeeze ! glcolorconvert ! gldownload !
>>> pngenc ! filesink location=test.png
>>>
>>> Cheers
>>> -Matt
>>>
>>>
>>> On 23/03/18 22:57, Alexander Yanin wrote:
>>>> Thanks! Fine, what I need to do to make it work on
>>>> Intel Kabylake with Mesa and without neither xorg
>>>> nor wayland? Would it work right out of the box or
>>>> should I perform some additional actions to make it
>>>> run?
>>>>
>>>> 2018-03-23 14:50 GMT+03:00 Matthew Waters
>>>> <ystreet00 at gmail.com <mailto:ystreet00 at gmail.com>>:
>>>>
>>>> Accessing the GPU without a windowing system is
>>>> something that is very specific to every
>>>> driver/hardware combination. We support (with
>>>> 1.14) one method using kms and a libgbm
>>>> compatible driver which are used by all of the
>>>> Mesa drivers. Some other embedded systems
>>>> (rpi, imx6) have other ways. That nvidia blog
>>>> post you've linked contains references to
>>>> EGL_EXT_device_query
>>>> <https://www.khronos.org/registry/EGL/extensions/EXT/EGL_EXT_device_query.txt>
>>>> which I guess is nvidia's way of performing a
>>>> similar thing and such a method could be added
>>>> to the GStreamer GL library and plugins.
>>>>
>>>> Cheers
>>>> -Matt
>>>>
>>>>
>>>> On 23/03/18 21:10, Alexander Yanin wrote:
>>>>> Hi!
>>>>>
>>>>> Is it possible to use GL elements (like
>>>>> glvideomixer, glupload, gleffects, etc)
>>>>> without anything like Wayland, Xorg, etc? In
>>>>> particular, I want to use glvideomixer instead
>>>>> of compositor on a server without any display
>>>>> attached. I heard about a possible workaround
>>>>> using frame buffer, but I didn't manage to
>>>>> find a way to use glvideomixer without xorg or
>>>>> wayland. It crushes on context initialization.
>>>>>
>>>>> Here is the output:
>>>>>
>>>>> glmixer
>>>>> gstglbasemixer.c:217:_get_gl_context:<mixer>
>>>>> error: Failed to initialize egl:
>>>>> EGL_NOT_INITIALIZED
>>>>> glwindow gstglwindow.c:285:gst_gl_window_new:
>>>>> Could not create window. user specified
>>>>> (null), creating dummy window
>>>>> glcontext
>>>>> gstglcontext.c:1235:gst_gl_context_create_thread:<glcontextegl48>
>>>>> Failed to create context
>>>>>
>>>>> So, is there a way to bypass this issue
>>>>> without using xorg or wayland? I heard that it
>>>>> is possible to initialize EGL without xorg
>>>>> [1]. Is it possible to use this approach
>>>>> within gl elements?
>>>>>
>>>>> [1]
>>>>> - https://devblogs.nvidia.com/egl-eye-opengl-visualization-without-x-server/
>>>>> <https://devblogs.nvidia.com/egl-eye-opengl-visualization-without-x-server/>
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> gstreamer-devel mailing list
>>>>> gstreamer-devel at lists.freedesktop.org
>>>>> <mailto:gstreamer-devel at lists.freedesktop.org>
>>>>> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>>>>> <https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel>
>>>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20180327/32dfd989/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20180327/32dfd989/attachment-0001.sig>
More information about the gstreamer-devel
mailing list