GNOME Bugzilla – Bug 778825
gl: Add support for Vivante EGL FB windowing system
Last modified: 2017-03-04 09:18:43 UTC
See commit message
Created attachment 346056 [details] [review] gl: Add support for Vivante EGL FB windowing system This is very similar to how dispmanx on the Raspberry Pi works. Based on a patch by Haihua Hu <b55597@freescale.com> from https://github.com/Freescale/meta-freescale/tree/master/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad
Review of attachment 346056 [details] [review]: Missing meson build files? :) Everything else looks fine.
Created attachment 346064 [details] [review] gl: Add support for Vivante EGL FB windowing system This is very similar to how dispmanx on the Raspberry Pi works. Based on a patch by Haihua Hu <b55597@freescale.com> from https://github.com/Freescale/meta-freescale/tree/master/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad
Created attachment 346065 [details] [review] qml: Add support for Vivante EGL FS windowing system
Review of attachment 346056 [details] [review]: How is this less legacy then Mesa FB which just got removed ? Their is Open Source Vivante driver in Mesa, and a proper DRM display driver (just like most MALI hardware these days).
(In reply to Nicolas Dufresne (stormer) from comment #5) > Review of attachment 346056 [details] [review] [review]: > > How is this less legacy then Mesa FB which just got removed ? Their is Open > Source Vivante driver in Mesa, and a proper DRM display driver (just like > most MALI hardware these days). The Mali FB support was never ported from eglglessink to libgstgl, what I removed was just the leftover in configure.ac. While there is a Open Source driver, it's reverse engineered and there are enough people who can't or don't want to use it. I'd rather have this one here upstream than having people use suboptimal patches from Freescale or not even finding them and then considering GStreamer's GL support broken and using imxeglvivsink (from gstreamer-imx) instead.
The etnaviv driver would be the ideal solution ... but the integration is far from production ready, unfortunately. So, in real-world scenarios, the Vivante drivers are still the only viable option.
Review of attachment 346064 [details] [review]: Still no meson build?
(In reply to Matthew Waters (ystreet00) from comment #8) > Review of attachment 346064 [details] [review] [review]: > > Still no meson build? I'm not sure how to do that, and testing it would seem non-trivial. Can happen at a later time when someone needs it :)
Attachment 346064 [details] pushed as e9327d4 - gl: Add support for Vivante EGL FB windowing system Attachment 346065 [details] pushed as 2132ba9 - qml: Add support for Vivante EGL FS windowing system
Hi. I try build it on Buildroot for IMX6 board and have no success. Making all in viv-fb CC libgstgl_viv_fb_la-gstgldisplay_viv_fb.lo CC libgstgl_viv_fb_la-gstglwindow_viv_fb_egl.lo CCLD libgstbadbase-1.0.la gstglwindow_viv_fb_egl.c: In function 'gst_gl_window_viv_fb_egl_get_type': gstglwindow_viv_fb_egl.c:32:1: error: 'GST_GL_TYPE_WINDOW' is deprecated (declared at ../../../../gst-libs/gst/gl/gstglwindow.h:39): Use 'GST_TYPE_GL_WINDOW' instead [-Werror=deprecated-declarations] G_DEFINE_TYPE (GstGLWindowVivFBEGL, gst_gl_window_viv_fb_egl, ^ In file included from /home/work/buildroot-aksion/output/host/usr/arm-buildroot-linux-gnueabihf/sysroot/usr/include/glib-2.0/gobject/gobject.h:24:0, from /home/work/buildroot-aksion/output/host/usr/arm-buildroot-linux-gnueabihf/sysroot/usr/include/glib-2.0/gobject/gbinding.h:29, from /home/work/buildroot-aksion/output/host/usr/arm-buildroot-linux-gnueabihf/sysroot/usr/include/glib-2.0/glib-object.h:23, from /home/work/buildroot-aksion/output/host/usr/arm-buildroot-linux-gnueabihf/sysroot/usr/include/gstreamer-1.0/gst/gstenumtypes.h:7, from /home/work/buildroot-aksion/output/host/usr/arm-buildroot-linux-gnueabihf/sysroot/usr/include/gstreamer-1.0/gst/gst.h:31, from ../gstgl_fwd.h:24, from gstglwindow_viv_fb_egl.c:24: gstglwindow_viv_fb_egl.c:33:5: error: passing argument 1 of 'g_type_register_static_simple' makes integer from pointer without a cast [-Werror] GST_GL_TYPE_WINDOW); ^ /home/work/buildroot-aksion/output/host/usr/arm-buildroot-linux-gnueabihf/sysroot/usr/include/glib-2.0/gobject/gtype.h:1964:40: note: in definition of macro '_G_DEFINE_TYPE_EXTENDED_BEGIN' g_type_register_static_simple (TYPE_PARENT, \ ^ /home/work/buildroot-aksion/output/host/usr/arm-buildroot-linux-gnueabihf/sysroot/usr/include/glib-2.0/gobject/gtype.h:1590:43: note: in expansion of macro 'G_DEFINE_TYPE_EXTENDED' #define G_DEFINE_TYPE(TN, t_n, T_P) G_DEFINE_TYPE_EXTENDED (TN, t_n, T_P, 0, {}) ^ gstglwindow_viv_fb_egl.c:32:1: note: in expansion of macro 'G_DEFINE_TYPE' G_DEFINE_TYPE (GstGLWindowVivFBEGL, gst_gl_window_viv_fb_egl, ^ /home/work/buildroot-aksion/output/host/usr/arm-buildroot-linux-gnueabihf/sysroot/usr/include/glib-2.0/gobject/gtype.h:1262:7: note: expected 'GType' but argument is of type 'GType (*)(void)' GType g_type_register_static_simple (GType parent_type, ^ CC libgstcodecparsers_1.0_la-gstmpeg4parser.lo cc1: all warnings being treated as errors make[7]: *** [libgstgl_viv_fb_la-gstglwindow_viv_fb_egl.lo] Error 1
Created attachment 347192 [details] [review] gl/viv-fb: Don't use deprecated symbols and make macros more consistent
Does this fix it for you or is there more broken? The problem here is that deprecated symbols were used