After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 778825 - gl: Add support for Vivante EGL FB windowing system
gl: Add support for Vivante EGL FB windowing system
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-bad
unspecified
Other All
: Normal enhancement
: 1.11.90
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2017-02-17 11:35 UTC by Sebastian Dröge (slomo)
Modified: 2017-03-04 09:18 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
gl: Add support for Vivante EGL FB windowing system (25.66 KB, patch)
2017-02-17 11:35 UTC, Sebastian Dröge (slomo)
none Details | Review
gl: Add support for Vivante EGL FB windowing system (25.65 KB, patch)
2017-02-17 12:38 UTC, Sebastian Dröge (slomo)
committed Details | Review
qml: Add support for Vivante EGL FS windowing system (3.42 KB, patch)
2017-02-17 12:38 UTC, Sebastian Dröge (slomo)
committed Details | Review
gl/viv-fb: Don't use deprecated symbols and make macros more consistent (3.11 KB, patch)
2017-03-04 09:10 UTC, Sebastian Dröge (slomo)
committed Details | Review

Description Sebastian Dröge (slomo) 2017-02-17 11:35:49 UTC
See commit message
Comment 1 Sebastian Dröge (slomo) 2017-02-17 11:35:55 UTC
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
Comment 2 Matthew Waters (ystreet00) 2017-02-17 11:54:12 UTC
Review of attachment 346056 [details] [review]:

Missing meson build files? :)

Everything else looks fine.
Comment 3 Sebastian Dröge (slomo) 2017-02-17 12:38:27 UTC
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
Comment 4 Sebastian Dröge (slomo) 2017-02-17 12:38:33 UTC
Created attachment 346065 [details] [review]
qml: Add support for Vivante EGL FS windowing system
Comment 5 Nicolas Dufresne (ndufresne) 2017-02-17 13:03:01 UTC
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).
Comment 6 Sebastian Dröge (slomo) 2017-02-17 13:08:11 UTC
(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.
Comment 7 Carlos Rafael Giani 2017-02-17 14:55:57 UTC
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.
Comment 8 Matthew Waters (ystreet00) 2017-02-22 03:55:25 UTC
Review of attachment 346064 [details] [review]:

Still no meson build?
Comment 9 Sebastian Dröge (slomo) 2017-02-23 16:29:34 UTC
(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 :)
Comment 10 Sebastian Dröge (slomo) 2017-02-27 08:42:31 UTC
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
Comment 11 Dmitry 2017-03-04 08:25:01 UTC
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
Comment 12 Sebastian Dröge (slomo) 2017-03-04 09:10:29 UTC
Created attachment 347192 [details] [review]
gl/viv-fb: Don't use deprecated symbols and make macros more consistent
Comment 13 Sebastian Dröge (slomo) 2017-03-04 09:11:20 UTC
Does this fix it for you or is there more broken? The problem here is that deprecated symbols were used