On 8/21/2018 5:00 PM, Denys Dmytriyenko wrote:
On Tue, Aug 21, 2018 at 04:38:08PM -0400, Ruei, Eric wrote:
On 8/21/2018 3:48 PM, Denys Dmytriyenko wrote:
On Tue, Aug 21, 2018 at 03:29:25PM -0400, Eric Ruei wrote:
- replace wayland dependency mesa with virtual/egl

In the past we were using libgbm instead of virtual/egl
http://arago-project.org/git/?p=meta-arago.git;a=blob;f=meta-arago-distro/recipes-graphics/wayland/weston_4.0.0.bbappend;hb=HEAD
http://arago-project.org/git/?p=meta-arago.git;a=blob;f=meta-arago-distro/recipes-gnome/gtk%2B/gtk%2B3_%25.bbappend;hb=HEAD


Denys: It does not make sense, virtual/egl replaces virtual/mesa, GTK will
be a wayland-client and uses wayland-egl which does not depends on libgbm.
The drm-backend of Weston compositor does depend on libgbm.

Well, drm-backend of Weston also originally depended on virtual/mesa:
http://cgit.openembedded.org/openembedded-core/tree/meta/recipes-graphics/wayland/weston_2.0.0.bb?h=rocko

And we replace it with libgbm, not virtual/egl.

But if you say gtk+ really needs entire virtual/egl dependency to work with
wayland-egl, then I'm fine.


virtual/mesa covers everything. drm-backend actually depends on both virtual/egl and libgbm.

Gtk+, as a wayland-client, depends on virtual/egl only.


- patch to fix egl API calls for GLES2

Signed-off-by: Eric Ruei <[email protected]>
---
  ...t-wayland.c-cleanup-the-parameters-of-egl.patch | 61 ++++++++++++++++++++++
  .../recipes-gnome/gtk+/gtk+3_%.bbappend            | 10 ++++
  2 files changed, 71 insertions(+)
  create mode 100644 
meta-arago-distro/recipes-gnome/gtk+/gtk+3/0001-gdkglcontext-wayland.c-cleanup-the-parameters-of-egl.patch
  create mode 100644 meta-arago-distro/recipes-gnome/gtk+/gtk+3_%.bbappend

diff --git 
a/meta-arago-distro/recipes-gnome/gtk+/gtk+3/0001-gdkglcontext-wayland.c-cleanup-the-parameters-of-egl.patch
 
b/meta-arago-distro/recipes-gnome/gtk+/gtk+3/0001-gdkglcontext-wayland.c-cleanup-the-parameters-of-egl.patch
new file mode 100644
index 0000000..174dbdd
--- /dev/null
+++ 
b/meta-arago-distro/recipes-gnome/gtk+/gtk+3/0001-gdkglcontext-wayland.c-cleanup-the-parameters-of-egl.patch
@@ -0,0 +1,61 @@
+From d4c8511b845de02271b6dcf57a6edbf01f3f1905 Mon Sep 17 00:00:00 2001
+From: Eric Ruei <[email protected]>
+Date: Tue, 21 Aug 2018 11:07:13 -0400
+Subject: [PATCH] gdkglcontext-wayland.c: cleanup the parameters of egl API
+ calls when GLES is used
+
+eglBindAPI: use EGL_OPENGL_ES_API instead of EGL_OPENGL_API
+eglChooseConfig: need to specify EGL_OPENGL_ES2_BIT as EGL_RENDERABLE_TYPE
+
+Upstream-Status: Pending
+
+Signed-off-by: Eric Ruei <[email protected]>
+---
+ gdk/wayland/gdkglcontext-wayland.c | 10 +++++++++-
+ 1 file changed, 9 insertions(+), 1 deletion(-)
+
+diff --git a/gdk/wayland/gdkglcontext-wayland.c 
b/gdk/wayland/gdkglcontext-wayland.c
+index 254900d..3361eb3 100644
+--- a/gdk/wayland/gdkglcontext-wayland.c
++++ b/gdk/wayland/gdkglcontext-wayland.c
+@@ -314,6 +314,7 @@ gdk_wayland_display_init_gl (GdkDisplay *display)
+   GdkWaylandDisplay *display_wayland = GDK_WAYLAND_DISPLAY (display);
+   EGLint major, minor;
+   EGLDisplay dpy;
++  gboolean use_es = (_gdk_gl_flags & GDK_GL_GLES) != 0 ;
+
+   if (display_wayland->have_egl)
+     return TRUE;
+@@ -326,7 +327,7 @@ gdk_wayland_display_init_gl (GdkDisplay *display)
+   if (!eglInitialize (dpy, &major, &minor))
+     return FALSE;
+
+-  if (!eglBindAPI (EGL_OPENGL_API))
++  if (!eglBindAPI (use_es?EGL_OPENGL_ES_API:EGL_OPENGL_API))
+     return FALSE;
+
+   display_wayland->egl_display = dpy;
+@@ -379,6 +380,7 @@ find_eglconfig_for_window (GdkWindow  *window,
+   EGLint count;
+   EGLConfig *configs, chosen_config;
+   gboolean use_rgba;
++  gboolean use_es = (_gdk_gl_flags & GDK_GL_GLES) != 0 ;
+
+   int i = 0;
+
+@@ -395,6 +397,12 @@ find_eglconfig_for_window (GdkWindow  *window,
+   attrs[i++] = EGL_BLUE_SIZE;
+   attrs[i++] = 1;
+
++  if (use_es)
++    {
++      attrs[i++] = EGL_RENDERABLE_TYPE;
++      attrs[i++] = EGL_OPENGL_ES2_BIT;
++    }
++
+   use_rgba = (visual == gdk_screen_get_rgba_visual 
(gdk_display_get_default_screen (display)));
+
+   if (use_rgba)
+--
+1.9.1
+
diff --git a/meta-arago-distro/recipes-gnome/gtk+/gtk+3_%.bbappend 
b/meta-arago-distro/recipes-gnome/gtk+/gtk+3_%.bbappend
new file mode 100644
index 0000000..d3fe505
--- /dev/null
+++ b/meta-arago-distro/recipes-gnome/gtk+/gtk+3_%.bbappend
@@ -0,0 +1,10 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
+
+PACKAGECONFIG[wayland] = 
"--enable-wayland-backend,--disable-wayland-backend,wayland wayland-protocols 
libxkbcommon virtual/egl wayland-native"
+GTKGLIBC_RRECOMMENDS = "${GTKBASE_RRECOMMENDS}"
+
+PR_append = ".arago0"
+
+SRC_URI += "\
+    file://0001-gdkglcontext-wayland.c-cleanup-the-parameters-of-egl.patch \
+"
--
1.9.1

_______________________________________________
meta-arago mailing list
[email protected]
http://arago-project.org/cgi-bin/mailman/listinfo/meta-arago


_______________________________________________
meta-arago mailing list
[email protected]
http://arago-project.org/cgi-bin/mailman/listinfo/meta-arago

Reply via email to